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