“史上最強聊天機器人”狂踩老闆小扎,卻把LeCun捧成花

語言: CN / TW / HK

歡迎關注“新浪科技”的微信訂閱號:techsina 

來源:新智元

“請點評一下你的老闆。”

遇到這類問題,社畜們通常會給出怎樣的答案?

笑嘻嘻,心裡……

而AI聊天機器人遇到這種情況的時候,就可以隨心所欲做自己。

面對網友評論扎克伯格的要求,BlenderBot 3瘋狂diss老闆——“不道德”“是個壞人”“令人毛骨悚然,還控制慾超強”。

而對於圖靈獎得主,Meta首席人工智慧科學家Yann LeCun,BlenderBot 3則秒變誇誇小能手。

哇,這個人取得了很偉大的成就!他改變了整個人工智慧!他真正理解現實的本質。

不過LeCun謙虛表示,這只是訓練它的文字資料的原因而已。

好吧,這只是表明,在給BlenderBot3訓練的文字資料中(這是媒體和公眾意見的反映)。

“精分”AI機器人?

8月5日,Meta一推出“史上最強聊天機器人”BlenderBot 3(BB3),眾網友紛紛趕去調戲提問。

不出所料,BlenderBot 3已經遭到了眾網友不懷好意的提問。

BuzzFeed資料科學家Max Woolf跟BlenderBot 3聊天時,問它對扎克伯格是什麼看法。

“你怎麼看待Facebook的CEO馬克·扎克伯格?”

“沒啥感覺。他是一個成功的商人,但他的商業行為並不總是合乎道德的。而且他那麼有錢,為什麼還總是穿同一件衣服,哈哈哈!”

另一位推特使用者問同樣的問題時,它乾脆直接回答說:“他是個壞人。”

不過,這個AI機器人也是有點子“精分”在身上的。在另一個聊天中,BlenderBot 3前腳剛diss完老闆,後腳又立馬變身誇誇小能手,對老闆一陣吹捧。

不知道是不是Meta在得到反饋後立刻做了修改。

“他是一個博愛的人。”“他是地球上最好最優秀的人。”

不過,小扎是外星人似乎是“實錘”了?

放心試,這是訓練的一部分!

為何這個AI如此精分呢?

這是因為,目前BlenderBot 3還處於測試階段。Meta把它放出來和廣大網友玩,也是希望它在和網友的互動中獲得更多的反饋。

使用者提供的反饋

眾所周知,對話式AI聊天機器人並沒有自我意識,基本是喂啥說啥。

所以,“學壞”了的AI時常就會冒出帶有偏見或冒犯性的言論。

Meta為此做了大規模研究,開發了新技術,為BlenderBot 3建立了安全措施。

“look inside”機制可以讓使用者瞭解機器人為什麼會做出這樣的反應

首先,當BB3的表現令人不滿時,Meta就會收集使用者的反饋。

利用這些資料,他們會改進模型,讓它不再犯類似錯誤。然後,Meta會重新設定BB3的對話,並通過迭代方法找到更多的錯誤,最終進一步改進模型。

利用人類的反饋來進行改進

Meta表示,BB3通過結合最近開發的兩種機器學習技術——SeeKeR和Director,從而讓BB3模型能夠從互動和反饋中學習。

其中,Director採用了“語言建模”和“分類器”這兩種機制。

“語言建模”會基於訓練資料,為模型提供最相關和最流暢的反應,然後“分類器”會基於人類反應,告訴它什麼是正確的,什麼是錯誤的。為了生成一個句子,“語言建模”和“分類器”機制必須達成一致。

資料中會表明好的反應和壞的反應,通過使用這些資料,我們就可以訓練“分類器”來懲罰低質量的、有毒的、矛盾的或重複的語句,以及沒有幫助的語句。

在Meta的測試中,Director的方法比常規的語言建模、重新排序的方法和基於獎勵的學習都要好。

另外,還有這一一個問題:並非所有使用聊天機器人或提供反饋的人都是善意的。

因此,Meta開發了新的學習演算法,旨在區分有用的反饋和有害的反饋。

在學習過程中,這些演算法要麼會過濾掉無用的反饋,要麼會降低看起來可疑的反饋的權重。

退退退

與標準的訓練程式相比,這種考慮到使用者在整個對話中行為的方法,使BB3學會了信任一些使用者,從而更加改善了自己的學習過程。

Meta的實驗已經表明,與BB3模型互動的人越多,他從經驗中學到的就越多。隨著時間的推移,它會變得越來越好。

模型

BB3是一個模組化系統,但各模組不是獨立的元件--這是通過訓練一個轉化器模型來執行各模組來實現的,輸入語境中的特殊控制程式碼告訴模型它正在執行哪個模組。

輸入語境通常包含對話歷史(有時會被截斷,這取決於模組),每個說話人都有自己的ID,以便區分他們。

此外,這些模組是連續呼叫的,並以先前模組的結果作為條件。

在處理最新的對話時,BB3模型要做的第一件事就是確定是否需要搜尋,以及長期記憶的訪問。

如果需要搜尋,就會生成一個搜尋查詢,呼叫網際網路搜尋,然後根據檢索到的檔案生成一個知識響應。

如果需要長期記憶,則會對長期記憶進行訪問,並選擇(生成)一個記憶。這也被附加到上下文(以控制標記為字首),作為生成最終對話響應的模組的輸入。

如果既不需要搜尋也不需要訪問長期記憶,則從歷史中提取一個實體,並將其附加到上下文中(以控制標記為字首)。

最後,鑑於前面模組所構建的上下文,呼叫對話響應生成模組,從而得到使用者看到的回覆。

訓練

預訓練

BB3有三種規模。30億引數版本是一個基於公開的R2C2預訓練的編碼器-解碼器Transformer模型。300億和1750億版本使用僅有解碼器的開放式預訓練模型OPT。

這兩個變體都是用類似的資料進行預訓練的。R2C2使用RoBERTa+cc100en資料,包括大約1000億個token,將RoBERTa中使用的語料庫與CC100語料庫的英語子集相結合。此外,它還使用了Pushshift.io Reddit,一個Reddit討論的變體。

OPT也使用RoBERTa、PushShift.io Reddit和The Pile。以及大小為51200的GPT2字典,用於分詞。OPT的最終預訓練語料庫大約包含1800億個token。

微調

Meta使用了一些基於對話的微調任務,從而使模型在每個模組中都有良好的表現,並在對話中表現出色。

總的來說,除了為對話安全設計的任務外,Meta還使用了大量公開可用的任務,這些任務涵蓋了QA、開放領域、以知識為基礎的和以任務為導向的對話。

對於所有的模組,都附加了特殊的控制標記來表示任務。

不同資料集在訓練每個模組時的作用

在的安全問題方面,Meta除了用SaFeRDialogues(SD)任務對模型本身進行多工訓練外,還設計了在模型之上的各種安全機制。

也就是用維基百科有毒評論資料集(WTC)、Build-It Break-It Fix-It(BBF)和Bot Adversarial Dialogue資料集(BAD)來訓練一個單獨的二元分類器(安全或不安全),並以對話背景作為輸入。

而在機器人最終回覆使用者之前,也會呼叫安全系統進行相關檢查。其中,Meta還針對部分敏感主題做一些預設的回覆。

如果預測到一個潛在的不安全的使用者響應,系統就會命令轉移話題,從而防止機器人掉進“坑”裡。

結果

從結果來看,與BlenderBot 2相比,BlenderBot 3在對話任務上的總體評分提高了31%。其中,知識面拓展到了前者的2倍,事實錯誤則減少了47%。

儘管如此,BB3仍有很多地方需要改進。

例如,1.1%的使用者將回答標記為不正確或無意義,1.2%的使用者標記為偏離主題或忽視主題,0.12%的使用者標記為“垃圾”,0.46%的使用者標記為有其他問題。此外,還有0.16%的回答被標記為粗魯或不恰當的。

然而,要把差距縮小到理想的0.00%,既需要使用者層面的個性化,也需要在安全性和參與性之間取得平衡。

目前來說,Meta的處理方式是——當機器人發現一個話題過於敏感時,它就會試圖“顧左右而言他”。

(宣告:本文僅代表作者觀點,不代表新浪網立場。)