Facebook 推開源軟體平台 ParlAI,能否讓機器人更有靈魂?

作者 | 發布日期 2017 年 05 月 17 日 17:00 | 分類 AI 人工智慧 , Facebook , 機器人 follow us in feedly

5 月 16 日,Facebook 官網公布,推出全新開源軟體平台 ParlAI,致力於打造一站式對話研究商店,加快提高聊天機器人的智慧聊天水平。



人工智慧的一個長期目標就是希望能製造出可以和人類自然交流的聊天機器人。現在生產出來的機器人雖然有時候可以完成具體的單個任務,但是在理解多個句子或者把多個子任務聯合起來形成一個主任務上有很大的困難。像比較複雜的對話,例如,預訂酒店或和它聊體育新聞。這就需要它能理解多句意,並且能夠推理來進行下一輪談話。因為人類對話很複雜,在很多有關聯的任務中使用的是相同的輸入輸出格式,卻需要不同的知識技能,機器人一定會被這些任務打敗。為了達到這個目標,開發一個軟體用來整合這些任務,以及可供代理學習是很有必要的。

找到了這個需求後,Facebook 的 AI 研究團隊開發了一個新的開源平台,用來一次性跨越多任務,訓練和測試對話模型。ParlAI 是一站式對話研究商店,研究員可以在這裡提交新任務,對單個對象訓練演算法,共享儲存空間。它和 Mechanical Turk 結合來數據收集、訓練和評估,也可以讓 ParlAI 中的機器人和人對話。這個計畫的目標是將現有對話資料集和學習系統整合,包括人機之間的真實對話。

ParlAI 補充了現有的 Facebook AI 研究團隊的文本研究,像 FastText,它是快速和有效的文本分類工具;還有 CommAI,它是用來透過日益複雜的任務來開發通用人工智慧的框架。

ParlAI 中的任務

超過 20 個公共資料集包含在此版本中,如下圖左邊所示:

任務分為 5 類

  • 問和答:這是最簡單的對話框形式之一,每個說話者只有一輪。問和答這種方式是特別有用的,因為評估比其他形式的對話框簡單:如果問題的答案是已知的(即,資料集被標記),那麼我們可以快速檢查答案是否正確。
  • 句子完成(完形填空):在這個測試中,代理器必須在對話框中的下一個語句中填入一個缺失的單詞。雖然這是另一個專門的對話框任務,資料集採集很便宜,評估很簡單。
  • 目標導向的對話:一個更為現實的對話類別涉及到達到一個目標,例如,一個客戶和旅行社討論航班、一個人向另一人推薦電影、兩個人約定何時何地一起吃飯等。
  • 聊天對話框:有些任務不一定有一個明確的目標,更多的是討論;例如,兩個人談論體育、電影或一個共同的興趣。
  • 視覺對話:這些任務包含圖像和文本。在真實世界中,對話框通常以物理對象為基礎。在未來,計劃添加其他感官資訊,如音頻。

在 ParlAI 選擇一個任務和在命令行中指定它一樣簡單。如果資料集尚未使用,ParlAI 會自動下載它。因為所有的資料集在 ParlAI 都會以相同的方式處理,對話代理可以在它們的訓練和測試之間切換。你也可以透過提供一個以逗號分隔的列表,進行一次性多任務指定;例如命令行 -t babi,squad 用了兩個資料集,所有的 QA 資料立刻集合 -t #qa;或者 ParlAI 中每個任務立刻集合 -t #all,目的是為了讓構建和評估一個豐富的對話模型變得簡單。

多重世界;代理;老師

在 ParlAI 主要的概念(類)是多重世界,代理,和老師。世界是說話者所生活的環境,可以從簡單的雙向對話變化到更複雜的場景,如反應性遊戲環境。代理是可以在世界上表演和說話的東西。代理可以是一個學習者,如機器學習的系統,或一個硬編碼的機器人,用來與學習者互動,如游戲中的非玩家角色。最後,老師是一種和學習者交流的代理,例如,實現了以前列出的任務。

所有代理使用一個單一的格式─觀察 / 操作對象(一個 Python)─交換文本,標籤,並與其他代理互相獎勵。

代理發送此消息來說話,並透過接收到相同形式的消息,來發現在環境中的其他說話者。這使我們能夠解決各種對話問題,從強化學習到完全監督學習,同時保證所有的資料集符合相同的標準。當研究人員建立新的模型,他們可以很容易地應用在許多任務上。

在定義了一個世界和它的代理之後,主迴路調用其中的函數 world.parley ( ). 運行用來訓練、測試或顯示,世界。在左邊的面板顯示的一個例子,主迴路的框架,右邊是 parley ( ) 實際代碼。

第一版發布的工具欄裡包含工具代理,像簡單的 IR 基頻,同時還有兩個完整神經網路案例:一個端到端的儲存網路,在 Lua Torch 中執行,還有一個是長短時記憶模型 DrQA,是在 Py Torch 中執行,在 SQuAD 資料集和其他資料集之間有一個強大的效果。我們期待在未來的版本中添加一些新的任務和代理。

Mechanical Turk

製造聊天機器人,人機對話是訓練過程中很重要的一部分。這就是為什麼 ParlAI 支持和 Mechanical Turk 整合來資料收集、訓練和評估。這也使得研究小組的 Turk 實驗可以對比,這在以前是困難的。在 ParlAI 中,Human Turkers 也可視為代理。他們可以輕鬆地與機器人交談,以幫助訓練和評估他們。隨後,人─人、人─機或多人和機器人聊天都可以在標準框架內進行交互。在切換所需的角色過程中,代理不用更改代碼。這是因為 Turkers 可以透過同一接口的印刷版接收和發送。

  • QA 收集器:透過和 Turkers 對話來收集問題和答案,給定上下文建立一個 QA 資料集的代理。
  • 模型評估器:利用機器人在給定任務中的性能表現,從 Turkers 中收集評級的代理。

在一個地方可以收集所有重要的對話任務,這還是第一次。ParlAI 為研究人員提供的這個場所不僅使這些任務單獨地更容易迭代,也可以輕鬆地使用所有的資料來訓練機器人,並透過那些技能來評估機器人。研究員透過檢查存放處的代碼,共享他們的 AI 學習代理,直接複製對方的實驗結果,來進行彼此工作之上的研究,共同推進這個領域前進。最後,Mechanical Turk 的整合,意味著人類可以很容易地投入到與機器人交談的循環之中,以幫助訓練和評估他們。人類之間的對話對製造可以和人類交談的機器人也很有必要。

對於 AI 來說,解決對話問題仍然是一個長期的挑戰,對於這一目標的任何進展都有可能對我們今天所製造的產品帶來短期利益,任何技術的進步都可能對其他行業領域帶來好處。ParlAI 是一個平台,希望將做 AI 代理執行對話框的研究人員,聚在一起共同推動對話研究達到世界最先進水平。

(本文由 雷鋒網 授權轉載;圖片來源:Facebook)