大模型推動的人機交互對話
導(dǎo)讀:對話技術(shù)是數(shù)字人交互的核心能力之一,這次分享主要從百度 PLATO 相關(guān)的研發(fā)和應(yīng)用出發(fā),談?wù)劥竽P蛯υ捪到y(tǒng)的影響和對數(shù)字人的一些機會,本次分享題目為:大模型推動的人機交互對話。
今天的介紹從以下幾點展開:
- 對話系統(tǒng)概覽
- 百度 PLATO 及相關(guān)技術(shù)
- 對話大模型落地應(yīng)用、挑戰(zhàn)及展望
一、對話系統(tǒng)概覽?
1、對話系統(tǒng)概覽
日常生活中,我們常常接觸到一些偏任務(wù)類型的對話系統(tǒng),比如讓手機助手定鬧鈴、讓智能音箱放首歌。這種在特定領(lǐng)域內(nèi)的垂類對話,技術(shù)相對成熟,系統(tǒng)設(shè)計上通常是模塊化的,包括對話理解、對話管理、自然語言生成等模塊。
傳統(tǒng)任務(wù)型對話的大致流程如下:用戶輸入一句話,系統(tǒng)通過自然語言理解模塊,解析出相關(guān)的意圖和槽值對(slot-value pairs),這些詞槽是預(yù)先定義好的;通過對話管理模塊追蹤多輪對話狀態(tài),以及與外部數(shù)據(jù)庫交互,進(jìn)行系統(tǒng)動作的決策;然后通過對話生成模塊,產(chǎn)出回復(fù)返回給用戶。
最近幾年很多研究是關(guān)于開放域?qū)υ捈夹g(shù),即不限定領(lǐng)域、可以就任意話題聊天。代表性的工作有 Google Meena、Mata Blender 和 Baidu PLATO 等,與傳統(tǒng)模塊化的對話系統(tǒng)相比,這些端到端的對話系統(tǒng)是給定對話上文,直接生成相應(yīng)的回復(fù)。
2、端到端對話生成——對話系統(tǒng)的新機遇
?端到端對話系統(tǒng)可以基于 RNN、LSTM 或 Transformer 等進(jìn)行設(shè)計,網(wǎng)絡(luò)架構(gòu)主要包括兩部分:編碼器 Encoder 和解碼器 Decoder。
編碼器將對話上文編碼成向量,對對話內(nèi)容做理解。?
解碼器是根據(jù)對話向量和之前的隱藏向量,生成相應(yīng)的回復(fù)。訓(xùn)練語料主要是人人對話語料,可以從公開的社交媒體論壇(微博、貼吧、推特等)抽取評論作為近似的對話語料。訓(xùn)練目標(biāo)主要是最小化負(fù)對數(shù)似然函數(shù)。
3. 開放域?qū)υ捗媾R的挑戰(zhàn)
基于大量語料訓(xùn)練出的大規(guī)模模型,已經(jīng)可以產(chǎn)生比較連貫的回復(fù),但仍然存在很多問題。
第一個問題是內(nèi)容比較空洞、缺乏信息。模型回復(fù)的比較簡略、無實質(zhì)內(nèi)容,容易降低用戶的聊天意愿。
另一個問題是知識濫用,模型回復(fù)的一些詳細(xì)信息有時候是錯誤的、編造的。
二、百度 PLATO
百度 PLATO 針對上述兩類問題做了一些技術(shù)探索。
針對內(nèi)容空洞,提出了基于離散隱變量的預(yù)訓(xùn)練對話生成技術(shù),實現(xiàn)開放域回復(fù)的合理性、多樣性的生成。對于知識濫用問題,提出融合知識的弱監(jiān)督對話生成模型,一定程度上緩解了知識濫用的問題,提升了對話豐富度和知識準(zhǔn)確率。
1、開放域?qū)υ挕耙粚Χ唷眴栴}
對話模型為什么會產(chǎn)生內(nèi)容空洞的“安全回復(fù)”?
本質(zhì)上,開放域?qū)υ捠且粚Χ嗟膯栴},一個對話上文,通常是有很多個合理回復(fù)的,不同人背景、經(jīng)歷、所處場景不同,給出的回復(fù)很可能不一樣。而神經(jīng)網(wǎng)絡(luò)訓(xùn)練通常是一一映射的,學(xué)到的是這些回復(fù)的均值狀態(tài),比如是“挺好的”“哈哈哈”這類安全而沒有信息量的回復(fù)。
2、PLATO-1 隱空間對話生成模型
PLATO-1 提出基于離散隱變量進(jìn)行對話一對多關(guān)系的建模。
這里涉及兩個任務(wù),將原來的對話上文 Context 和對話回復(fù) Response 對應(yīng)到隱變量 Latent Action 上,然后基于隱變量去學(xué)習(xí)回復(fù)生成。PLATO 是利用同一網(wǎng)絡(luò)對兩個任務(wù)進(jìn)行聯(lián)合建模,先通過估計隱變量的分布,通過 Gumbel Softmax 采樣出隱變量后再學(xué)習(xí)回復(fù)生成,這樣通過采樣不同的隱變量,就能生成多樣化的回復(fù)。
案例展示,選擇了不同隱變量,產(chǎn)生不同回復(fù)的效果。這些回復(fù)都是基于上文的回復(fù),回復(fù)質(zhì)量不錯、很合適且信息量豐富。
3、PLATO-2 基于課程學(xué)習(xí)的通用對話模型
PLATO-2 在 PLATO-1 的基礎(chǔ)上,繼續(xù)擴展。參數(shù)上,達(dá)到了 16 億的規(guī)模;預(yù)訓(xùn)練語料上,中文有 12 億對話樣本,英文有 7 億樣本;訓(xùn)練方式上,是基于課程學(xué)習(xí)。何為課程學(xué)習(xí) Curriculum Learning?就是先學(xué)習(xí)簡單的再學(xué)復(fù)雜的。
另外,PLATO-2 繼續(xù)沿用統(tǒng)一的網(wǎng)絡(luò)設(shè)計 PrefixLM,同時學(xué)習(xí)對話理解和回復(fù)生成。基于課程學(xué)習(xí)的訓(xùn)練效率高,基于統(tǒng)一網(wǎng)絡(luò)的性價比高。
PLATO-2 第一階段先訓(xùn)練簡化的通用回復(fù)生成,第二階段訓(xùn)練多樣化的回復(fù)生成,在這個階段把隱變量加進(jìn)來了。第二階段還引入了對話連貫性評估訓(xùn)練,相對于常見的生成概率排序,連貫性評估有效地提升了回復(fù)選擇的質(zhì)量。
PLATO-2 能否作為通用的對話框架?我們知道對話領(lǐng)域大致分為三類,任務(wù)型對話、知識對話和開放域閑聊系統(tǒng)。分別給不同類型對話系統(tǒng)進(jìn)行預(yù)訓(xùn)練成本太高,PLATO-2 的課程學(xué)習(xí)機制恰好可以助力其成為一個通用對話框架。任務(wù)型對話相對聚焦,在課程學(xué)習(xí)第一階段的一對一映射模型正好滿足這類情況,知識對話和閑聊中都有一對多的情況,知識對話中可以用不同知識回復(fù)用戶,閑聊對話中可以有不同的回復(fù)方向,所以課程學(xué)習(xí)第二階段模型可以應(yīng)用到知識對話和閑聊系統(tǒng)上。
4、PLATO-2 in DSTC-9
為了驗證這一能力,PLATO-2 參加了對話領(lǐng)域的國際競賽 DSTC,它全面的涵蓋了各種對話領(lǐng)域,PLATO-2 以統(tǒng)一的技術(shù)框架在 6 項任務(wù)中取得了 5 項冠軍,這在 DSTC 的歷史中尚屬首次。
5、PLATO-XL 首個百億參數(shù)中英文對話生成模型
如果繼續(xù)推高 PLATO 模型參數(shù)規(guī)模,會達(dá)到怎樣的效果?2021 年 9 月我們推出全球首個百億規(guī)模中英文對話生成模型 PLATO-XL。
在中英文上,分別對比了常見的幾個商業(yè)產(chǎn)品,從合理性、豐富度和吸引度等角度評測,PLATO 的效果是遙遙領(lǐng)先的。
微信公眾號“百度 PLATO”接入了 PLATO-XL 模型,大家可以去試用和體驗。
PLATO 模型參數(shù)量從一億到十億再到百億規(guī)模,其實到十億規(guī)模的時候?qū)υ捯呀?jīng)比較流暢、通順了,到百億規(guī)模的時候模型的邏輯能力顯著提升了很多。
6、知識濫用問題
大模型都存在知識濫用的問題,如何解決呢?我們?nèi)祟愑龅讲恢赖膯栴}如何解決的?可能會去搜索引擎上查一下,這種通過查找外部知識的方式能否借鑒一下到模型中?
融合外部知識輔助回復(fù)生成,是緩解知識濫用很有希望的方向。但對于大規(guī)模的對話語料,只存在對話上文和回復(fù)信息,無法知道某條語料與外部知識對應(yīng)關(guān)系,也就是缺少知識選擇的標(biāo)簽信息。
7、PostKS 基于后驗指導(dǎo)的知識選擇
PostKS 是知識對話領(lǐng)域代表性的工作之一,提出了基于后驗指導(dǎo)的知識選擇,在訓(xùn)練過程中,讓先驗的知識分布逼近后驗的知識分布。
在推理階段由于不存在后驗信息,模型需要使用先驗知識進(jìn)行回復(fù)生成。訓(xùn)練和推理階段會存在不一致的情況,訓(xùn)練基于后驗但推理只能基于先驗。
8、PLATO-KAG 基于聯(lián)合優(yōu)化的無監(jiān)督知識對話
PLATO-KAG 無監(jiān)督模型,聯(lián)合建模了知識選擇和回復(fù)生成。基于先驗選擇了 top-k 條知識,并送給生成模型,做一個端到端的聯(lián)合訓(xùn)練。如果知識選的準(zhǔn),對生成目標(biāo)回復(fù)很有幫助,生成概率會比較高,聯(lián)合優(yōu)化會鼓勵這種選擇并利用給定知識;如果知識選的差,對生成目標(biāo)回復(fù)沒有作用,生成概率會比較低,聯(lián)合優(yōu)化會打壓這種選擇并忽視給定的知識。這樣就同時優(yōu)化了知識選擇和回復(fù)生成。
9、PLATO 全面知識增強對話
從人類學(xué)習(xí)知識經(jīng)驗來看,我們大腦中也記憶了很多的知識,PLATO 嘗試了全面的知識增強,同時做了知識外用和知識內(nèi)化。一方面利用外部的通用無結(jié)構(gòu)化知識和畫像知識,另一方面也將大量問答知識通過預(yù)訓(xùn)練內(nèi)化到模型參數(shù)中。經(jīng)過這樣全面的知識增強,對話通用知識錯誤率從 30% 降低到 17%,畫像一致性從 7.1% 提升到 80%,問答準(zhǔn)確率從 3.2% 提升到 90%,提升的非常明顯。
下圖是做了全面知識增強后的效果對比。
值得注意的是,雖然效果得到了顯著改善,但知識濫用問題并沒有完全解決,只是緩解而已。即使模型規(guī)模擴大到千億參數(shù),知識濫用問題也依然存在。
目前仍有幾個點值得我們繼續(xù)努力:第一個是外部知識的觸發(fā)時機,就是什么時候查外部知識,什么時候使用內(nèi)化知識,這會影響對話的流暢度和吸引度。第二個是知識選擇的準(zhǔn)確性,這涉及到檢索技術(shù),中文知識語料建庫是幾十億規(guī)模,通過給定的對話上文準(zhǔn)確檢索到合適的知識沒那么容易。第三個是知識利用的合理性和保真度,模型有時候會無法準(zhǔn)確理解知識或者混亂拼湊出不準(zhǔn)確的回復(fù)等。
三、對話大模型落地應(yīng)用、挑戰(zhàn)及展望
上面介紹了 PLATO 對話的一些技術(shù),比如引入大規(guī)模的模型、加入離散隱變量提升對話豐富度、通過無監(jiān)督引入外部知識緩解知識濫用等,那么在實際生產(chǎn)中有哪些落地的應(yīng)用呢?
1、落地應(yīng)用
PLATO 在智能音箱、虛擬人、社區(qū)聊天等多場景提供開放域聊天能力。
左側(cè)是數(shù)字人度曉曉,在百度 APP 搜索度曉曉或者直接輸入“你好”就能調(diào)用數(shù)字人,通過聊天能便捷搜索的過程,高效獲取答案和信息。右側(cè)是百度輸入法中的虛擬人,既高顏值又很會聊。
2、落地應(yīng)用遇到的挑戰(zhàn)
落地應(yīng)用中,第一個挑戰(zhàn)就是推理性能,圖中列出了 16 億參數(shù) PLATO 的性能數(shù)據(jù)。通過算子融合減少了 98% 的算子數(shù)量,模型推理耗時從原來 v100 上的 1.2s 降低到 A10 卡上的 300ms 以內(nèi)。通過計算精度優(yōu)化,減少了 40% 的顯存,推理卡從 v100 換到 A10 降低成本,同時做了架構(gòu)優(yōu)化和平臺遷移,降低了鏈路開銷。
第二個挑戰(zhàn)是對話安全。比如有害言論、政治敏感、地域歧視、隱私等很多方面需要高度注意。PLATO 對語料做了深度清洗,刪除不安全樣本,在部署后使用安全判別模型移除不安全候選回復(fù)。同時維護(hù)了關(guān)鍵詞表和添加對抗訓(xùn)練,查漏補缺,提升安全性。
3、展望
以前人們認(rèn)為開放域閑聊是一個兜底功能,隨著近幾年大模型的發(fā)展,對話領(lǐng)域也有了顯著進(jìn)展,目前模型可以生成連貫、流暢、豐富和跨領(lǐng)域的對話,但情感、人設(shè)、人格和思辨等方面仍然有很大提升空間。
道阻且長,行則將至,行而不輟,未來可期。也希望對話領(lǐng)域的同行們,大家一起努力,共同攀登人機對話的高峰。
4、引用
五、問答環(huán)節(jié)
Q:對話效果如何評估的?
A:目前對話系統(tǒng)還沒有自動指標(biāo)能和人工評估比較一致,人工評估仍是黃金標(biāo)準(zhǔn)。開發(fā)階段可以參考困惑度 perplexity 進(jìn)行迭代,最終進(jìn)行全面評估時,還是需要請大量的眾包人員與不同機器進(jìn)行交互,在一些指標(biāo)上進(jìn)行人工評估。評估指標(biāo)上,也隨著技術(shù)的發(fā)展而變化,比如當(dāng)流暢度不再是問題的時候,那么可以添加安全性、知識準(zhǔn)確性等指標(biāo)評估更高級的能力。