達(dá)摩院SPACE大模型:知識(shí)注入與知識(shí)利用(3)
04、Proton:預(yù)訓(xùn)練模型中知識(shí)利用的探索
接下來(lái),講解預(yù)訓(xùn)練模型中的知識(shí)利用。因?yàn)轭A(yù)訓(xùn)練模型是經(jīng)過(guò)海量的數(shù)據(jù)進(jìn)行訓(xùn)練的,里面包含了海量的知識(shí),如果可以將其中的知識(shí)進(jìn)行利用,無(wú)疑會(huì)對(duì) NLP 任務(wù)提供很大的幫助與提升。我們提出了一種方法——Probing tuning。
1. TableQA 任務(wù)
想要驗(yàn)證知識(shí)的作用,需要知識(shí)密集型的任務(wù),如上圖,TableQA 任務(wù)非常合適,TableQA 核心任務(wù)即是將文本語(yǔ)言轉(zhuǎn)換成 SQL。
上圖表示的是 Text-to-SQL 的發(fā)展歷程。初始的時(shí)候,將 SQL 預(yù)測(cè)拆解為分類問(wèn)題,準(zhǔn)確率在 40% 左右;后來(lái)使用 Seq2Seq 生成模型,準(zhǔn)確率提升到 50% 以上;進(jìn)一步地,引入大規(guī)模預(yù)訓(xùn)練模型,準(zhǔn)確率提升到 70% 以上。因此,可以看出,預(yù)訓(xùn)練對(duì)話模型,對(duì)整個(gè)對(duì)話系統(tǒng)的提升非常顯著。但是仍然存在一定的問(wèn)題。
以 Spider 數(shù)據(jù)集為例,在標(biāo)記 Spider 數(shù)據(jù)集的同時(shí),他們是看到數(shù)據(jù)集的,導(dǎo)致他們?cè)诰帉憯?shù)據(jù)集的時(shí)候,所用到的詞匯,都是存在原文中的詞匯。缺少同義變化和世界知識(shí)等。比如,在購(gòu)買家居場(chǎng)景,有一種沙發(fā)的型號(hào)為L(zhǎng)型,是一種官方術(shù)語(yǔ),而對(duì)于用戶,或者消費(fèi)者而言,他們并不知道L型沙發(fā)是什么,他們只知道“貴妃椅”。而“貴妃椅”是L型沙發(fā)的俗稱。因此,有人在 Spider 數(shù)據(jù)集上進(jìn)行了同義詞改造,構(gòu)建了新的數(shù)據(jù)集Spider-Syn,則原來(lái)的模型在新的數(shù)據(jù)集上效果顯著下降。
除了同義詞問(wèn)題外,上圖右邊提到的,“… in African countries that are republics?”即非洲共和制國(guó)家有哪些?Republics,這個(gè)單詞是“共和制”的意思,而這個(gè)含義,模型無(wú)法從數(shù)據(jù)中學(xué)習(xí)到,需要世界知識(shí)。
一般情況下,預(yù)訓(xùn)練模型的使用方法有以上兩種:Fine Tuning 和 Prompt Tuning。對(duì)于 Fine Tuning 而言,直接將預(yù)訓(xùn)練模型作為下游任務(wù)的表征,大多數(shù)任務(wù)都可以利用預(yù)訓(xùn)練模型的能力,但預(yù)訓(xùn)練模型和下游模型有很大的 GAP。簡(jiǎn)單而言,預(yù)訓(xùn)練模型的知識(shí)很多,而下游任務(wù)只能獲取很小的一個(gè)出口進(jìn)行輸出,無(wú)法充分獲取知識(shí)表達(dá)。對(duì)于 Prompt Tuning 模型,通過(guò)改變預(yù)測(cè)的方式來(lái)提升效果,最近在分類任務(wù)上嶄露頭角,尤其在小樣本情況下。但是,如何用到更復(fù)雜的任務(wù)?比如 Parsin,效果卻不太好。綜上所述,通過(guò)訓(xùn)練出大型的預(yù)訓(xùn)練模型學(xué)到了的大量的知識(shí),但是在下游任務(wù)上卻無(wú)法進(jìn)行很好的使用。
2. Probing Tuning 方法
圍繞大型預(yù)訓(xùn)練模型的知識(shí)使用,也有很多的研究,整體上被稱為 Probing。Probing 可以從預(yù)訓(xùn)練模型中探索出句法結(jié)構(gòu)、依存結(jié)構(gòu)等,也可以從預(yù)訓(xùn)練模型中探索出三元組等知識(shí)。但是,如何將預(yù)訓(xùn)練模型中的知識(shí),顯式地表示出來(lái),并結(jié)合下游任務(wù),目前的相關(guān)工作相對(duì)比較少,我們就在這方面提出了一種新的 Finetune 方式——Probing Tuning 方法。
如上圖所示,Prompt Tuning 方法是基于模板進(jìn)行訓(xùn)練,本質(zhì)上是通過(guò)記憶表達(dá)的方式加上少量的數(shù)據(jù),對(duì)模型進(jìn)行微調(diào)。而我們提出的 Probing Tuning 方式,原始的問(wèn)題通過(guò)預(yù)訓(xùn)練模型得到稠密向量表達(dá),并且,通過(guò) Probing 的方式,獲取知識(shí)的結(jié)構(gòu)表達(dá),輸入到稠密向量表示中,對(duì)下游任務(wù)帶來(lái)提升。
如上圖所示,我們提出了一個(gè)框架——Proton Framework。首先,輸入預(yù)訓(xùn)練模型的數(shù)據(jù)包含原始問(wèn)題和表格對(duì)應(yīng)的語(yǔ)句;另一方面,也包含了人類定義的規(guī)則的知識(shí),不具有泛化性的知識(shí);并且,通過(guò) Proton 的方式,學(xué)習(xí)到知識(shí)的表達(dá),并具有泛化性。
具體Probing的工作原理以上面的例子說(shuō)明。
問(wèn)句為:“Where is the youngest teacher from?,表格數(shù)據(jù)為“SELECT hometown FROM teacher ORDER BY age ASC LIMIT 1”。原句抽取出表格數(shù)據(jù)中的名詞信息,“teacher,teacher.age, teacher.hometown”,組合成整體:“[CLS]Where is the youngest teacher from?[SEP] teacher,teacher.age,teacher.hometown”。然后進(jìn)行隨機(jī) MASK 某個(gè)單詞,比如“where”,然后計(jì)算該向量中“teacher.hometown”與原句向量的“teacher.hometown”距離,如果距離越遠(yuǎn),這說(shuō)明“where”和“teacher.hometown”越相似,即學(xué)到相關(guān)的知識(shí)。如上圖的相關(guān)矩陣表示,“teacher.age”和“youngest”相關(guān)度有 0.83,非常的高,說(shuō)明兩者有非常強(qiáng)的相關(guān)性。然后就可以構(gòu)建 Proton 中的圖以及邊的權(quán)重等。
以上即為 Probing 的整個(gè)過(guò)程,即將人工構(gòu)建的知識(shí)和 Proton 學(xué)習(xí)到的知識(shí),結(jié)合到預(yù)訓(xùn)練模型中,用以提高下游任務(wù)的效果。
基于 Probing Tuning 的方法,在 Spider-DK 數(shù)據(jù)集上相比 SOTA 提升了 6.9%,在 Spider-SYN 數(shù)據(jù)集上相比 SOTA 提升 16%,效果提升非常明顯。
總而言之,我們通過(guò)把預(yù)訓(xùn)練模型學(xué)到的知識(shí),進(jìn)行探測(cè),并且以結(jié)構(gòu)化的方式,顯式的應(yīng)用到下游模型中去,可以給具體的下游任務(wù),帶來(lái)顯著的提升。
3. 后續(xù)工作展望
Probing 技術(shù)可以帶著我們進(jìn)行下一步探索,如何將預(yù)訓(xùn)練模型中的知識(shí),顯式地獲取出來(lái)。在此領(lǐng)域,AlphaZero 做了相關(guān)探索,如上圖左側(cè),左右兩邊分別表示人和模型自動(dòng)學(xué)習(xí)出來(lái)的向量空間,模型學(xué)到了一些人類從未有的棋譜,說(shuō)明模型可以學(xué)到人類并不知道的一些知識(shí)。
我們今天先講了預(yù)訓(xùn)練對(duì)話模型對(duì)于整個(gè)對(duì)話系統(tǒng)的重要性;其次,是知識(shí)在對(duì)話系統(tǒng)中的重要性?;谝陨蟽牲c(diǎn),我們希望將知識(shí)和預(yù)訓(xùn)練對(duì)話模型結(jié)合一起,具體的分為兩個(gè)工作:
第一,如何將知識(shí)注入到預(yù)訓(xùn)練對(duì)話模型,我們提出了一個(gè)半監(jiān)督預(yù)訓(xùn)練的模型——SPACE。
第二,如何將預(yù)訓(xùn)練對(duì)話模型中的知識(shí)顯式地提取和利用起來(lái),我們提出了一個(gè) Proton 的模型。
05、Q&A 環(huán)節(jié)
Q1:半監(jiān)督預(yù)訓(xùn)練模型的監(jiān)督任務(wù),是否需要和下游任務(wù)保持一致?比如說(shuō)預(yù)訓(xùn)練模型中的一些意圖分類任務(wù)?
A1:現(xiàn)在所做的半監(jiān)督預(yù)訓(xùn)練,還是面向與下游任務(wù)的預(yù)訓(xùn)練。即面向下游任務(wù)的半監(jiān)督學(xué)習(xí)。當(dāng)然,我們現(xiàn)在也在探索多任務(wù)的下游任務(wù)訓(xùn)練,探索多任務(wù)之間是否可以加強(qiáng)相關(guān)的任務(wù)效果。
Q2:Unified DA 是否考慮了無(wú)意義的語(yǔ)句等?
A2:是有的,在分類里面,是存在有不理解/不懂的語(yǔ)句在里面的。
Q3:Act 和 Intent 的區(qū)別是什么?
A3:Intent 是一個(gè)具象的事情,和一個(gè)具體任務(wù)相關(guān)的,比如說(shuō),你要辦公積金,在這個(gè)場(chǎng)景,可以定義 5 個(gè) Intent;在購(gòu)買飛機(jī)****的場(chǎng)景,可以定義 10 個(gè) Intent。這兩個(gè)場(chǎng)景的 Intent 之間基本上沒(méi)有關(guān)系。而 Act 是超越具體場(chǎng)景的,比如公積金和訂機(jī)****場(chǎng)景,可以定義共同的 Act,比如顯示澄清、隱式澄清等,都是和具體場(chǎng)景無(wú)關(guān)的。Act 和 Intent 都是對(duì)語(yǔ)義的表示,Intent 是具象層面的表示,Act 是抽象層面的表示。
Q4:數(shù)據(jù)集都是英文的,后續(xù)是否考慮中文的一些探索嗎?
A4:我們團(tuán)隊(duì)是一個(gè)研究和業(yè)務(wù)共同并重的團(tuán)隊(duì),我們的中文和英文是同步做的,今天主要分享的是英文的模型,而中文的模型我們這邊是已經(jīng)做好,并且在阿里云智能客服產(chǎn)品中全面落地應(yīng)用,成為對(duì)話系統(tǒng)的基座,以意圖分類為例,基于 SPACE 的訓(xùn)練樣本數(shù)據(jù)標(biāo)注量降低了 70% 左右。今天只是分享我們最早期和最經(jīng)典的工作,后續(xù)會(huì)分享中文相關(guān)的工作。
Q5:SPACE 中,端到端的模型如何和 NLG 結(jié)合的?
A5:端到端模型分為三個(gè)部分:理解、策略和生成。對(duì)于生成任務(wù),是基于理解和策略的概率分布,即前面的 Act 預(yù)測(cè)準(zhǔn)的話,后續(xù)的生成任務(wù)也會(huì)更準(zhǔn)。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。