Skip to content

[NLP][Python] 試用 FB 團隊最新開源的聊天機器人 Blender

Facebook AI 團隊在本周開源了聊天機器人 Blender,印象中這個專案 (當時似乎是叫做 ParlAI) 似乎幾年前就有看過了?不過既然 Facebook 現在公佈了 Blender 出來,那想必是有其過人之處。

我來簡單陳述一下 Facebook 所號稱的優點:

  • Blender 是全球最大的開放領域聊天機器人
  • Blender 採用了 94 億個參數
  • Blender 可以發展 14 輪的自然對話

以上算是規格的說明,下面我們來看看近年來 FB 對於 ChatBot 的發展評估 —— FB 是採用人工評估,評估的指標為『喜歡跟機器聊天或是跟人』:

  • 2018 年 7 月 KV MemNN: 23% 喜歡跟機器人聊天
  • 2020 年 1 月 BST Poly-encoder: ~= 40% 喜歡跟機器人聊天
  • 2020 年 5 月 Blender: 49% 喜歡跟機器人聊天

這真的是相當厲害。據我的了解,目前市面上幾乎沒有能與人類好好聊天的 ChatBot,無論如何,一定會在對話的某個部份顯露出異常的感覺,讓人不想跟機器人繼續講下去。

最大的問題,還是『雞同鴨講』吧。我就曾經試玩過一個對話機器人,只要你問它的問題、你所說的話它不了解,那麼它就以『問你問題』的方式轉移話題。

所以既然 FB 都開源了,那麼我最好奇的,就是這個 Blender 究竟使用起來如何?以下,我就一步步介紹我使用、測試 Blender 的流程。


下載、安裝 Blender

首先,使用以下指令從 Github Clone 一份專案下來。(注意,需要有管理員權限以及 Python 的環境)

git clone https://github.com/facebookresearch/ParlAI.git
cd ParlAI
sudo python3 setup.py develop

接下來,我們可以選擇微調模型 (Fine Tuning)、自動評估模型好壞、最重要的是 —— 可以跟模型聊聊天。

不過要先聲明的是,要跟比較好的模型聊天,可能需要有張好一點的 GPU。


跟模型聊聊天

有三種模型可以選擇: 90 M、2.7 B、9.4 B。我想這些數值代表參數數量。

基本上 90 M沒有任何限制,不確定要什麼等級的 GPU (或者 CPU 就可運行也不一定?可以試試看)

python3 parlai/scripts/safe_interactive.py -t blended_skill_talk -mf zoo:blender/blender_90M/model

至於 2.7 B,官方推薦至少要使用 16 GB 的 P100。(我目前就是使用這個模型對話)

python3 parlai/scripts/safe_interactive.py -t blended_skill_talk -mf zoo:blender/blender_3B/model

9.4 B 最誇張,推薦使用兩片 32 GB 的 V100。

python3 parlai/scripts/safe_interactive.py -t blended_skill_talk -mf zoo:blender/blender_9B/model

目前,在我跟 Blender 嘗試聊天之後,我的感想是:這個模型真的好強!

以下我貼段我跟 Blender 的對話 (以下我就以『我』代稱、Blender 就以 “B” 代稱):

我: Hello
B: How are you doing today? I am just getting ready to go to work. What are you up to?

我: I stay at home all day to play video games.
B: That sounds relaxing. What kind of video game is it? I like playing video games too.

我: Final Fantasy VII.
B: I've heard a lot about that game. It was released in 1997 for the Playstation 2.

哇靠!Blender 居然連 FF7 都知道欸!連年份和主機(本傳是 PS,不過後傳在 PS2 沒錯)都說對!

如果今天 Blender 是專門面向與『遊戲宅』聊天的對話機器人,那麼我還不會這麼驚訝 —— 但今天 Blender 可是開放式聊天的對話機器人欸!

以前嘗試製作自己的對話機器人時,第一步就是要先設定好自己的聊天主題、然後再去爬蟲、下載自己的 Training Data 並進行前處理。

但是 Blender 可不是那種 ChatBot。

它在聊什麼話題都可以情況下,居然還能回答這麼細緻的問題。我只能說,這個對話機器人真的非常厲害!

如果想要進一步自己訓練模型、評估模型好壞的話,我把官方網站的連結附在下方。不多說了,我現在還想跟它多聊聊 XDD

(備註: PTT 上很多人說會被亂搞,聊一些『成人』話題 —— 這完全不用擔心,因為 Blender 會把你的敏感詞彙發言全部封鎖。可能要調整原始碼或參數才能聊『那方面』的話題了。)


References

Leave a Reply