達(dá)摩院SPACE大模型:知識(shí)注入與知識(shí)利用(1)
以下文章來(lái)源于DataFunTalk ,作者李永彬
本文主要針對(duì)兩個(gè)主題:知識(shí)注入和知識(shí)利用,講解該模型的創(chuàng)新點(diǎn)與改進(jìn)。
今天的介紹會(huì)圍繞下面四點(diǎn)展開(kāi):
預(yù)訓(xùn)練語(yǔ)言模型 VS 預(yù)訓(xùn)練對(duì)話(huà)模型
“無(wú)知識(shí)不對(duì)話(huà)”:知識(shí)是對(duì)話(huà)的基礎(chǔ)
半監(jiān)督預(yù)訓(xùn)練:一種新的知識(shí)注入方式
Proton:預(yù)訓(xùn)練模型中知識(shí)利用的探索
01、預(yù)訓(xùn)練語(yǔ)言模型 VS 預(yù)訓(xùn)練對(duì)話(huà)模型
1. 大規(guī)模語(yǔ)言模型
過(guò)去幾年 NLP 領(lǐng)域的重大進(jìn)展,主要是大型預(yù)訓(xùn)練模型出現(xiàn)與大規(guī)模使用。預(yù)訓(xùn)練語(yǔ)言模型有了很大的發(fā)展,出現(xiàn)了很多變種。但是,本質(zhì)上都還是語(yǔ)言模型,如上圖右邊的流程圖所示,輸入基本上為網(wǎng)絡(luò)上的自由文本,模型基本上都是 Transformer 結(jié)構(gòu),優(yōu)化的目標(biāo)基本上都是 MLM(掩碼語(yǔ)言模型)。
預(yù)訓(xùn)練語(yǔ)言模型對(duì)整個(gè) NLP 領(lǐng)域帶來(lái)巨大進(jìn)步,到了對(duì)話(huà)領(lǐng)域之后,可以進(jìn)一步的提取對(duì)話(huà)領(lǐng)域更為獨(dú)特的特征。如上圖所示,左側(cè)的網(wǎng)絡(luò)上的自由文本為大規(guī)模預(yù)訓(xùn)練模型所需要的語(yǔ)料,右側(cè)的表示對(duì)話(huà)的語(yǔ)料,直觀上看,已經(jīng)有很大的不同。
對(duì)話(huà)是對(duì)語(yǔ)言的高級(jí)應(yīng)用,主要有以下幾個(gè)特點(diǎn):
①口語(yǔ)化,表述隨意,不一定符合語(yǔ)法、句子不完整、噪音較多、有很多 ASR 錯(cuò)誤。
②分角色多輪次,至少兩個(gè)參與主體,輪次間存在省略、指代、狀態(tài)繼承、狀態(tài)遺忘等。
③垂直知識(shí)約束,每個(gè)對(duì)話(huà)任務(wù)有自己的知識(shí)約束,模型需要針對(duì)性地利用起來(lái)。
④深層語(yǔ)義理解,需要深入理解語(yǔ)言,Intent-Slots/ 邏輯推理等等。
⑤講究對(duì)話(huà)策略,為完成特定任務(wù)目標(biāo),需要知道應(yīng)該怎么說(shuō)。
2. 預(yù)訓(xùn)練語(yǔ)言模型 VS 預(yù)訓(xùn)練對(duì)話(huà)模型
基于對(duì)話(huà)數(shù)據(jù)獨(dú)有的特點(diǎn),在預(yù)訓(xùn)練模型的基礎(chǔ)上,發(fā)展出獨(dú)特的預(yù)訓(xùn)練對(duì)話(huà)模型。如上圖左側(cè)表示的預(yù)訓(xùn)練語(yǔ)言模型,其優(yōu)化的目標(biāo)是回答什么樣的句子更像自然語(yǔ)言;而上圖右側(cè)表示的是預(yù)訓(xùn)練對(duì)話(huà)模型,從端到端的角度看,其優(yōu)化的目標(biāo)是需要回答給定對(duì)話(huà)歷史,什么樣的回復(fù)更合理。這就是預(yù)訓(xùn)練語(yǔ)言模型與預(yù)訓(xùn)練對(duì)話(huà)模型的一個(gè)很大的不同點(diǎn)。
3. 預(yù)訓(xùn)練對(duì)話(huà)模型進(jìn)展
對(duì)話(huà)主要分三塊:對(duì)話(huà)理解、對(duì)話(huà)策略、對(duì)話(huà)生成。2021 年初,預(yù)訓(xùn)練對(duì)話(huà)模型已經(jīng)有了較多發(fā)展。如下圖所示,對(duì)話(huà)理解領(lǐng)域,2019 年 PolyAI 提出了 ConveRT 模型、2020 年 Salesforce 提出了 TOD-BERT 模型、2021 年 JingDong 提出了 DialogBERT 模型。
面向理解的預(yù)訓(xùn)練對(duì)話(huà)模型的出現(xiàn),對(duì)于對(duì)話(huà)理解方面,相對(duì)于預(yù)訓(xùn)練語(yǔ)言模型,帶來(lái)了巨大的提升,如上圖所示,EMNLP2020 上的一篇文章(Probing Task-Oriented Dialogue Representation from Language Models)的實(shí)驗(yàn)結(jié)果,表明預(yù)訓(xùn)練對(duì)話(huà)模型和預(yù)訓(xùn)練語(yǔ)言模型相比,在對(duì)話(huà)理解任務(wù)上,可以提升 10% 以上的效果;在表征學(xué)習(xí)上,也能學(xué)到更好的表示,有更好的聚類(lèi)效果。這一點(diǎn)可以通俗的理解,因?yàn)楫?dāng)前的預(yù)訓(xùn)練模型(包含語(yǔ)言與對(duì)話(huà)模型)本質(zhì)上是數(shù)據(jù)驅(qū)動(dòng)出來(lái)的,那么,對(duì)話(huà)數(shù)據(jù)訓(xùn)練的預(yù)訓(xùn)練模型,自然比從自由文本上訓(xùn)練出來(lái)的模型在對(duì)話(huà)領(lǐng)域更具表現(xiàn)力。
除了對(duì)話(huà)理解以外,還有一塊是對(duì)話(huà)生成領(lǐng)域。
2019 年 Microsoft 提出了 DialoGPT、2020 年 Google 提出的 Meena、2020 年 Facebook 提出的 Blender、2021 年 Baidu 提出的 PLATO-2 等,這些模型的出現(xiàn)的話(huà),對(duì)對(duì)話(huà)生成方面的質(zhì)量也帶來(lái)了很大的提升。如下圖所示,F(xiàn)acebook的Blender模型,從 2018 年到 2020 年,在 A/B Test 勝率從 23% 提升到了 49%。
以上是對(duì)整個(gè)預(yù)訓(xùn)練對(duì)話(huà)模型的簡(jiǎn)單介紹,對(duì)理解本文提出的模型有很大的幫助。總體上,預(yù)訓(xùn)練語(yǔ)言模型的出現(xiàn),大幅度提升了 NLP 所有任務(wù)的效果,而基于預(yù)訓(xùn)練語(yǔ)言模型的預(yù)訓(xùn)練對(duì)話(huà)模型,進(jìn)一步提升了對(duì)話(huà)領(lǐng)域的 NLP 任務(wù)的效果。所以,基于預(yù)訓(xùn)練對(duì)話(huà)模型的智能對(duì)話(huà)已經(jīng)成為一個(gè)基座模型。
02、“無(wú)知識(shí)不對(duì)話(huà)”:知識(shí)是對(duì)話(huà)的基礎(chǔ)
對(duì)話(huà)還有一個(gè)非常大的特點(diǎn),就是強(qiáng)依賴(lài)于知識(shí)。換而言之,知識(shí)是對(duì)話(huà)的基礎(chǔ)。
由上圖的對(duì)話(huà)體系架構(gòu)可以看出,上層的主流對(duì)話(huà)引擎,比如多輪對(duì)話(huà)、圖譜問(wèn)答、表格問(wèn)答、QA問(wèn)答、文檔問(wèn)答、閑聊(Chit-chat)等,其劃分的依據(jù)就是底層知識(shí)的不同。舉例而言,多輪對(duì)話(huà)引擎,主要是基于對(duì)話(huà)流程圖;圖譜問(wèn)答,依賴(lài)于知識(shí)圖譜的知識(shí)等。除了這些顯著的知識(shí),想要做好智能對(duì)話(huà),還需要一些其他的知識(shí),比如人類(lèi)標(biāo)注知識(shí)、世界知識(shí)、各種常識(shí)等。
這里以一個(gè)辦理汽車(chē)保險(xiǎn)的任務(wù)為參考案例。這個(gè)任務(wù)是一個(gè)流程類(lèi)的任務(wù),即辦理一個(gè)保險(xiǎn)是有步驟,有流程的。首先,校驗(yàn)個(gè)人和證件信息,包括身份證、駕駛證、行駛證等;然后開(kāi)始驗(yàn)車(chē),生成驗(yàn)車(chē)結(jié)果:如果驗(yàn)車(chē)結(jié)果不通過(guò),則告知驗(yàn)車(chē)不合格原因,流程結(jié)束,結(jié)果為不能辦理汽車(chē)保險(xiǎn);如果驗(yàn)車(chē)結(jié)果通過(guò),則進(jìn)行后續(xù)步驟,填寫(xiě)保單,包括車(chē)險(xiǎn)險(xiǎn)種、被保險(xiǎn)人信息等,然后交保險(xiǎn)費(fèi),并獲得保險(xiǎn)存根。
這是一個(gè)典型的流程類(lèi)任務(wù),需要通過(guò)任務(wù)型對(duì)話(huà)進(jìn)行處理。流程類(lèi)知識(shí)的一個(gè)顯著特點(diǎn),大多是情況下,任務(wù)的順序是不可變的。比如,不能先做第三步,再做第一步,這樣整個(gè)流程是不對(duì)的,執(zhí)行不下去的。流程類(lèi)知識(shí)的第二個(gè)特點(diǎn)就是,流程類(lèi)知識(shí)打開(kāi)每一步看的話(huà),又包含了很多其他的知識(shí)。比如第一步,要校驗(yàn)個(gè)人和證件信息,比如姓名,對(duì)于中國(guó)人,基本上都是漢字,而且字?jǐn)?shù)都在 2-10 個(gè)字以?xún)?nèi),這些屬于世界知識(shí)或基本常識(shí),以及身份證號(hào),大陸身份證都是 18 位的等,都是世界知識(shí)里面的范疇。而且,為了訓(xùn)練出一個(gè)可用的任務(wù)型對(duì)話(huà),需要一定量的標(biāo)注數(shù)據(jù),而這些標(biāo)注的數(shù)據(jù),蘊(yùn)含了人類(lèi)的知識(shí)。比如意圖、類(lèi)別,以及情感等的標(biāo)注,都是將人類(lèi)的知識(shí),顯式的寫(xiě)在了數(shù)據(jù)上,從而形成新的知識(shí)。綜上所述,整個(gè)對(duì)話(huà)都是圍繞知識(shí)展開(kāi)的,無(wú)知識(shí),不對(duì)話(huà)。
前面做了基本的引入和介紹,一方面,針對(duì)智能對(duì)話(huà),預(yù)訓(xùn)練對(duì)話(huà)模型已經(jīng)成為基礎(chǔ)模型;另一方面,對(duì)于整個(gè)對(duì)話(huà)系統(tǒng)來(lái)講,都是圍繞著知識(shí)展開(kāi)的。所以,我們(達(dá)摩院 Conversational AI 團(tuán)隊(duì))過(guò)去一段時(shí)間的研究和探索,都是圍繞著這兩點(diǎn)展開(kāi)。主要的思路是將知識(shí)和預(yù)訓(xùn)練對(duì)話(huà)模型結(jié)合起來(lái)。具體來(lái)看,如上圖所示,將任務(wù)拆成兩個(gè)子任務(wù):一個(gè)子任務(wù)是我們?nèi)绾伟阎R(shí)注入到預(yù)訓(xùn)練對(duì)話(huà)模型,讓模型有更好的知識(shí)容量;另一個(gè)子任務(wù),在應(yīng)用方面,將在預(yù)訓(xùn)練對(duì)話(huà)模型中學(xué)到的大量的知識(shí),顯式地抽取出來(lái),和下游任務(wù)更好的結(jié)合和使用。圍繞這兩個(gè)方面,本文將重點(diǎn)分享一些探索性的工作。
03、半監(jiān)督預(yù)訓(xùn)練:一種新的知識(shí)注入方式
1. 標(biāo)注知識(shí)
第一部分主要關(guān)于知識(shí)注入。如何將知識(shí)注入到模型中,本文提出一種新的方式,半監(jiān)督預(yù)訓(xùn)練方式。
首先回顧一下知識(shí)。知識(shí)中有一種非常重要——標(biāo)注知識(shí)。離開(kāi)標(biāo)注知識(shí),很難將 NLP 任務(wù)做好。在人工標(biāo)注的知識(shí)中,包含大量任務(wù)相關(guān)的知識(shí)。示意圖分類(lèi)、意圖匹配、實(shí)體識(shí)別、對(duì)話(huà)策略、情感等,這些標(biāo)簽數(shù)據(jù),都是將人類(lèi)的知識(shí),顯式地表現(xiàn)在數(shù)據(jù)上。人工標(biāo)注的知識(shí)有如下特點(diǎn):
第一,對(duì)提升具體任務(wù)效果至關(guān)重要,雖然現(xiàn)在 Few-Shot 等小數(shù)據(jù)量標(biāo)注很熱門(mén),但是,這種不需要標(biāo)注數(shù)據(jù)或者少量標(biāo)注數(shù)據(jù)的模型,尚未滿(mǎn)足業(yè)務(wù)上線(xiàn)的要求,所以,標(biāo)注數(shù)據(jù)對(duì)于提升任務(wù)作用非常大;
第二, 任務(wù)相關(guān),數(shù)據(jù)分散。即在A任務(wù)上標(biāo)注的數(shù)據(jù),在 B 任務(wù)上并不能使用,需要重新標(biāo)注;
第三,總量較小。相對(duì)于無(wú)監(jiān)督數(shù)據(jù)往往幾千萬(wàn),幾億條,有標(biāo)注的數(shù)據(jù),可能只有幾百條、幾千條等。
如何將這些分散的標(biāo)注數(shù)據(jù),匯總到一塊,將其中蘊(yùn)含的知識(shí),注入到預(yù)訓(xùn)練對(duì)話(huà)模型,提高模型的能力?本文即針對(duì)這個(gè)問(wèn)題進(jìn)行了研究和探索。如果可以實(shí)現(xiàn)這樣的操作,即可實(shí)現(xiàn)知識(shí)遷移,將在A任務(wù)標(biāo)注的數(shù)據(jù)的知識(shí),用到B任務(wù)上,從而提升B任務(wù)的效果。好處如下:第一,解決冷啟動(dòng)問(wèn)題;第二,在達(dá)到相同準(zhǔn)確率的情況下,需要的標(biāo)注數(shù)據(jù)更少。
首先,回顧一下預(yù)訓(xùn)練模型的發(fā)展。預(yù)訓(xùn)練模型在圖像領(lǐng)域首先使用,而且是基于有監(jiān)督的數(shù)據(jù)。而當(dāng) Bert 等預(yù)訓(xùn)練模型提出后,開(kāi)始從大量的無(wú)監(jiān)督數(shù)據(jù)中進(jìn)行預(yù)訓(xùn)練,即通過(guò)自監(jiān)督學(xué)習(xí)。預(yù)訓(xùn)練模型以前有兩種手段:一個(gè)是對(duì)有監(jiān)督數(shù)據(jù)進(jìn)行監(jiān)督學(xué)習(xí);另一個(gè)是對(duì)無(wú)監(jiān)督數(shù)據(jù)進(jìn)行自監(jiān)督學(xué)習(xí)。今天面對(duì)的任務(wù)是大量的無(wú)監(jiān)督數(shù)據(jù)和小量的有監(jiān)督數(shù)據(jù),我們提出了半監(jiān)督學(xué)習(xí),通過(guò)半監(jiān)督的方式,將有監(jiān)督數(shù)據(jù)和無(wú)監(jiān)督數(shù)據(jù)結(jié)合起來(lái),如上圖所示,我們提出了一個(gè) SPACE(Semi-supervised Pre-trAined Conversation ModEl)模型。
半監(jiān)督的概念已將發(fā)展很多年了,這里提出的半監(jiān)督方式和以前的半監(jiān)督方式是有所不同的,主要區(qū)別在于:過(guò)去,半監(jiān)督將半監(jiān)督和有監(jiān)督結(jié)合一起,用于降低知識(shí)標(biāo)注成本;現(xiàn)在,我們主要是半監(jiān)督和自監(jiān)督結(jié)合,向預(yù)訓(xùn)練模型注入知識(shí)。
2. 預(yù)訓(xùn)練對(duì)話(huà)模型發(fā)展
基于我們提出的半監(jiān)督模型的理念和框架,再來(lái)看一下預(yù)訓(xùn)練對(duì)話(huà)模型的進(jìn)展。如何將半監(jiān)督的思想融入到預(yù)訓(xùn)練對(duì)話(huà)模型,在一個(gè)具體的業(yè)務(wù)場(chǎng)景進(jìn)行實(shí)驗(yàn)和落地。由上圖可以知道,圍繞著對(duì)話(huà)理解和對(duì)話(huà)生成,有很多機(jī)構(gòu)做了很多的模型,但是對(duì)于對(duì)話(huà)策略做的非常少,基本上沒(méi)有相關(guān)研究。但是,對(duì)話(huà)策略非常的關(guān)鍵和重要。
那么,什么是對(duì)話(huà)策略?在對(duì)話(huà)理解和對(duì)話(huà)生成之間,存在著對(duì)話(huà)策略。對(duì)話(huà)策略就是根據(jù)對(duì)話(huà)理解的結(jié)果,以及結(jié)合歷史的狀態(tài),來(lái)決定如何回復(fù)下一句話(huà)。
舉例而言,兩個(gè)人 A 和 B,在對(duì)話(huà)過(guò)程中,A 不斷地說(shuō),B 可以一直回復(fù),嗯,好的,對(duì)對(duì)。這就是一種對(duì)話(huà)策略,B的策略表示我在聽(tīng),我聽(tīng)懂了。還有一種策略,B 在聽(tīng)的過(guò)程中,有部分聽(tīng)不懂,需要反問(wèn)其中某個(gè)點(diǎn)等;以及對(duì)于 A 說(shuō)的某些地方有些疑問(wèn),進(jìn)行澄清等,也是一種策略。所以,對(duì)話(huà)策略是保證一段對(duì)話(huà)可以順利進(jìn)行很關(guān)鍵的一步。
學(xué)術(shù)界對(duì)對(duì)話(huà)策略的定義是 DA(Dialog act),由上圖所示,在不同時(shí)間,DA 的定義與名稱(chēng)不盡相同,整個(gè)對(duì)話(huà)策略雖然發(fā)展了很多年,但是存在復(fù)雜和不一致等缺點(diǎn)。導(dǎo)致今天應(yīng)用起來(lái)比較麻煩。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。