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