Facebook的AI和機器學(xué)習(xí)部門Facebook AI Research(FAIR)今天詳細介紹了名為Blender的綜合AI聊天機器人框架的工作。FAIR聲稱,Blender是GitHub上最大的開放域聊天機器人,它是GitHub上開放源代碼最多的聊天機器人,其性能優(yōu)于現(xiàn)有的生成對話的方式,同時“讓人感到更人性化”。
FAIR說Blender是將同情心,知識和個性結(jié)合成一個系統(tǒng)的多年研究的高潮。為此,受益于改進的解碼和技能融合技術(shù)的基礎(chǔ)模型包含多達94億個參數(shù)(定義給定問題的技能的配置變量),是以前系統(tǒng)的3.6倍。
Blender承諾在企業(yè),工業(yè)或面向消費者的環(huán)境中,與對話式AI系統(tǒng)(如Alexa,Siri和Cortana)的交互將比以往更加自然。那是因為他們能夠提出并回答各種各樣的問題。顯示有關(guān)特定主題的知識;并根據(jù)情況表達同情,認真或好玩的情緒。
融合技能和生成策略
為了實現(xiàn)Blender的最先進性能,F(xiàn)AIR的研究人員專注于兩個工程步驟:混合技巧和生成策略。
“混合技能”是指選擇性能優(yōu)于缺少調(diào)整功能的較大模型的任務(wù)。正如FAIR研究人員在論文中指出的那樣,可以通過對數(shù)據(jù)模型進行微調(diào)(強調(diào)所需的對話技巧)來實現(xiàn)聊天機器人的改進。事實證明,調(diào)整還可以最大程度地減少從大數(shù)據(jù)集中學(xué)到的不良特性,例如毒性。
關(guān)于生成策略,選擇解碼算法(用于從語言模型生成文本的算法)會對聊天機器人的響應(yīng)產(chǎn)生巨大影響。由于漫游器響應(yīng)的時間長度傾向于與人類對質(zhì)量的判斷相對應(yīng),因此需要達到適當(dāng)平衡的解碼器。響應(yīng)時間過短通常會被認為是呆板或缺乏興趣,而響應(yīng)時間過長則表示感到困惑或分心。
在這些工程步驟的過程中,研究人員測試了三種類型的模型體系結(jié)構(gòu),所有這些模型體系結(jié)構(gòu)均以Transformers為基礎(chǔ)。變壓器-Google的一項創(chuàng)新-包含神經(jīng)元(數(shù)學(xué)功能),這些神經(jīng)元以層狀排列,可以傳輸來自輸入數(shù)據(jù)的信號并調(diào)整每個連接的強度(權(quán)重),就像所有深度神經(jīng)網(wǎng)絡(luò)一樣。這就是他們提取特征并學(xué)習(xí)進行預(yù)測的方式,但是變形金剛也有注意的地方。這意味著每個輸出元素都連接到每個輸入元素,并且它們之間的權(quán)重是動態(tài)計算的。
首先是一個檢索器模型,該模型在輸入對話歷史(或上下文)作為輸入的情況下,通過對大量候選響應(yīng)進行評分并輸出評分最高的一個來選擇下一個對話響應(yīng)。FAIR研究人員采用了一種多編碼器體系結(jié)構(gòu),該體系使用每個候選響應(yīng)所伴隨的表示對上下文的特征進行編碼,與跨編碼器等其他體系結(jié)構(gòu)相比,他們說,這種性能提高了性能,同時保持了“易處理”的計算能力。
第二個模型是生成器,它生成響應(yīng)而不是從固定集中檢索響應(yīng)。從大小上考慮了三個模型,范圍從9000萬個參數(shù)到27億個參數(shù)到94億個參數(shù)。
第三個模型試圖解決生成器的問題,即生成器合成重復(fù)響應(yīng)和“使知識”“半透明”的趨勢。它采用了“檢索和精煉”(RetNRef)方法,其中上述檢索模型在提供對話歷史記錄時會產(chǎn)生響應(yīng),然后將其附加到生成器的輸入序列中。通過這種方式,生成器學(xué)習(xí)了何時復(fù)制來自檢索器的響應(yīng)元素,何時不復(fù)制,從而可以輸出更有趣,引人入勝且“充滿活力”的響應(yīng)。(檢索器模型會產(chǎn)生由人工編寫的響應(yīng),與標準的生成模型相比,該響應(yīng)往往包含更生動的語言。)
FAIR團隊將“向?qū)?rdquo;模型與另一個檢索器配對,一起確定了何時將知識納入聊天機器人的響應(yīng)中。這兩個模型產(chǎn)生一組初始知識候選者,然后對這些候選者進行排名,然后選擇一個句子并將其用于條件響應(yīng)的生成。分類器根據(jù)對話選擇是否執(zhí)行檢索,從而避免在不需要時提供知識。
解碼
對于生成模型,F(xiàn)AIR研究人員使用波束搜索解碼器方法來生成對給定對話上下文的響應(yīng)。波束搜索維護一組稱為假設(shè)的部分解碼序列,這些序列被附加以形成序列,然后進行評分,因此最佳序列冒泡到頂部。
為了控制聊天機器人的響應(yīng)長度,F(xiàn)AIR團隊考慮了兩種方法:對最小生成長度的硬約束和預(yù)測響應(yīng)長度并將最小生成長度約束設(shè)置為其相應(yīng)預(yù)測的分類器。后者更為復(fù)雜,但導(dǎo)致對問題的回答的長度可變,從而確保聊天機器人在看起來適當(dāng)時可以提供較長的回答。
訓(xùn)練模型
為了準備組成Blender的各種模型,研究人員首先進行了預(yù)訓(xùn)練,這是針對特定任務(wù)調(diào)節(jié)機器學(xué)習(xí)模型的步驟。他們使用了Facebook自己的Fairseq,該工具包支持自定義語言模型的訓(xùn)練,其Reddit語料庫中的數(shù)據(jù)樣本包含15億條評論(其中兩套360,000條評論分別用于驗證和測試),并為已知的非英語bot修剪。 subreddit,已刪除的評論,帶有URL的評論以及一定長度的評論。
接下來,F(xiàn)AIR團隊使用另一個Facebook開發(fā)的套件ParlAI對模型進行了微調(diào),該套件旨在訓(xùn)練和測試對話模型。選擇的一個訓(xùn)練語料庫是ConvAI2,其中包含140,000言語,其中成對的志愿者通過提問和回答友善問題相互認識。另一個是“善解人意的對話”,其中包含5萬種基于情感情境的眾包話語。另一個數(shù)據(jù)集-維基百科向?qū)?包含1,250個主題的194,000個語音,其中每個對話都從隨機選擇的主題開始,目標是展示專家知識。
第四個微調(diào)數(shù)據(jù)集-混合技能討論-旨在融合前三組(ConvAI2,同理心對話和維基百科向?qū)?,以在對話期間結(jié)合各自的技能。在這里,有76,000條話語是由有指導(dǎo)和無指導(dǎo)的人類說話者收集的,在這種情況下,有指導(dǎo)者可以選擇受機器人訓(xùn)練的話語,這些機器人根據(jù)三個獨立的數(shù)據(jù)集進行訓(xùn)練。
評價
培訓(xùn)后,研究人員通過將Blender的性能與Google最新的Meenachatbot(具有26億個參數(shù)的機器學(xué)習(xí)模型)進行比較來評估其性能。人類志愿者的任務(wù)是回答兩個問題:“您想和誰進行長時間的交談?”和“哪個說話者聽起來更人性化?”—給出了100條來自Meena的公開發(fā)布和隨機日志,以及Blender生成的日志數(shù)量相同。在每種情況下,向志愿者展示了人類與各自的聊天機器人配對進行的一系列對話。
對話的主題從烹飪,音樂,電影和寵物到瑜伽,素食主義者,樂器和購物中心不等-Blender模型經(jīng)常在被詢問時詳細介紹并命名相關(guān)商店,樂隊,電影,演員,寵物種類和寵物名稱。在一個示例中,Blender向Bach與Justin Beiber進行了比較的問題提供了一個細微的答案,同時要求Blender寫一首歌確實產(chǎn)生了歌詞-盡管沒有什么特別詩意。
當(dāng)有顯示Meena動作的聊天和顯示Blender動作的聊天時,67%的評估者表示,性能最佳的Blender支持的聊天機器人-一種生成模型,其中包含在Blended Skill Talk語料庫中預(yù)先訓(xùn)練的94億個參數(shù)-聽起來更人類。大約75%的人表示,他們寧愿與27億參數(shù)的微調(diào)模型進行長時間的交談,也不愿與Meena進行長時間的交談。在人與人之間以及人與Blender對話之間的A / B比較中,志愿者表達了對49%的時間通過混合技能對話進行微調(diào)的模型的偏愛,而僅對公共領(lǐng)域?qū)υ掃M行訓(xùn)練的模型是僅在36%的時間里喜歡。
有問題的是,進一步的實驗表明,Blender有時會從訓(xùn)練語料庫(通常是Reddit評論)中以冒犯性樣本的方式做出回應(yīng)。FAIR研究人員表示,微調(diào)“混合技能對話”數(shù)據(jù)集可以在一定程度上緩解這種情況,但是要全面解決該問題,則需要使用不安全的單詞過濾器和一種安全分類器。
當(dāng)然,F(xiàn)AIR研究人員并沒有聲稱已經(jīng)解決了開放域?qū)υ挼膯栴}。實際上,它們概述了Blender的幾個主要限制:
詞匯用法:即使是最好的Blender模型,也傾向于過于頻繁地生成常用短語,例如“您喜歡”,“很多樂趣”和“有任何愛好”。
非平凡的重復(fù):模型經(jīng)常重復(fù)對他們說的話。例如,如果對話伙伴提到寵物狗,他們會說他們有一只寵物狗,或者說他們喜歡與與之交談的人相同的樂隊。
矛盾和健忘:Blender模型相互矛盾,盡管在較大的模型中矛盾程度較小。他們也沒有做出邏輯上的聯(lián)系,即他們不應(yīng)該提出之前已經(jīng)提出的問題(以避免出現(xiàn)“遺忘”)。
知識和事實正確性:Blender模型容易出錯,特別是在深入探討主題時,這相對容易。
對話的長度和記憶力:FAIR研究人員說,在幾天或幾周的對話過程中,Blender對話可能會變得乏味而重復(fù),尤其是考慮到Blender不能記住較早的對話。
更深入的理解:Blender模型缺乏通過進一步對話來學(xué)習(xí)概念的能力,并且它們無法扎根于現(xiàn)實世界中的實體,動作和體驗。
要解決所有這些問題,可能需要新的模型架構(gòu),F(xiàn)AIR團隊表示正在探索。它還著重于建立更強大的分類器,以過濾掉對話中的有害語言,以及減少聊天機器人中性別偏見的技術(shù)。
Facebook在博客中寫道:“我們對改善開放域聊天機器人所取得的進展感到興奮,”“但是,建立一個像人一樣可以聊天的真正智能的對話代理仍然是當(dāng)今AI面臨的最大挑戰(zhàn)之一……在該領(lǐng)域的真正進步取決于可復(fù)制性-利用最佳技術(shù)的機會。我們認為,發(fā)布模型對于全面,可靠地洞察其功能至關(guān)重要。”
GitHub上提供了經(jīng)過預(yù)訓(xùn)練和經(jīng)過微調(diào)的Blender模型,其中包含9000萬個參數(shù),27億個參數(shù)和94億個參數(shù),以及用于與機器人進行交互的腳本(內(nèi)置安全過濾器)。ParAI中提供了所有用于模型評估和微調(diào)的代碼,包括數(shù)據(jù)集本身。