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