天天看點

英偉達在自然語言生成領域的最新研究進展

作者:DataFunTalk

導讀:本文将介紹英偉達在自然語言生成領域的一些最新的進展。主要包含兩個方面:

  • 多角色生成式對話模組化
  • 借助合成資料訓練問答模型

分享嘉賓|齊家興博士 英偉達 進階解決方案架構師

編輯整理|扈應 貴州大學

出品社群|DataFun

01

多角色生成式對話模組化

首先和大家分享多角色生成式對話模組化的工作。

1. 生成式閑聊對話背景

英偉達在自然語言生成領域的最新研究進展

在這項工作當中,我們關注的主要是閑聊式的對話生成。在業界中,閑聊式對話主要有兩大類方法:檢索式和生成式。檢索式相當于是一種搜尋任務,需要從預先準備好的回複當中選擇一條合适的回複。生成式方法一般會采用自回歸的采樣來進行回複的生成。是以,生成式方法具有一定的靈活性,每次能夠生成不同的内容。但是,生成式模型的可控性較差,在一次完整的多輪對話當中,生成式模型的對話風格可能并不統一,或者是在對話的過程當中生成無意義的内容。在業界有一些工作嘗試向生成式模型添加一些情感,或者是說話人的 Embedding,但是這種方法需要有相應的這種标注的資料。當想要增大模型提升效果的時候,很難有足量的資料來支援模型的訓練。

2. 背景

英偉達在自然語言生成領域的最新研究進展

在這項工作當中,為了讓模型能夠在互動對話的過程當中生成風格比較穩定的對話内容,我們嘗試讓模型基于某個說話人之前的對話内容去生成風格一緻的新的内容。這樣就不用預先定義風格,而是讓模型從目标說話人之前的内容當中提取出他的說話風格,并在之後的對話生成過程中繼續保持這種風格。通過一系列的對比實驗發現,這種方法比之前的方法有更好的可控性,能生成更合适的對話回複。另外,在實驗過程中,我們也嘗試增加模型的尺寸,從 117M 增加到 3.8B,結果顯示,模型越大,生成的對話内容是越自然。

3. GPT-2 自回歸語言模型方法

英偉達在自然語言生成領域的最新研究進展

在這項工作中,主要使用的是基于 GPT-2 的生成式模型進行對話的生成。GPT-2 是基于語言模型的模組化,采用的是自回歸采樣的方法。在生成一輪對話時,每次先生成一個 Token,然後将 Token 添加到之前生成的序列後面,作為新的輸入,再輸入到模型生成新的 Token。用 GPT-2 模型生成多輪對話,也是相同的方法。首先,生成一條回複,然後把它添加到之前生成的序列後作為新的輸入,再生成下條回複。

4. 添加目标說話人曆史對話方法

英偉達在自然語言生成領域的最新研究進展

為了控制生成對話的風格,這項工作的一個思路就是将資料集中的某一個目标說話人的對話内容,作為輸入的一部分輸入到模型中,讓模型能夠在生成的過程當中生成同樣風格的新的對話内容。為了讓模型能更明白作為參考的曆史對話内容是怎麼樣産生的,同時,還将目标說話人這一輪對話所對應的回複的前一輪的回複也包含進來,讓模型能夠更好的對說話人的風格進行模組化,進而保持同樣風格的内容的生成。

5. 模型結構與步驟

英偉達在自然語言生成領域的最新研究進展

在模型方面使用的是和 GPT-2 相同結構的模型結構,使用生成式的模型控制對話内容的生成,是以也叫做生成式對話控制模型,簡稱為 GCC。基于這種模組化方法的模型包含三個主要的步驟:首先,确定在對話過程當中想要模仿的說話人的風格;然後,從已有的資料集中提取它的曆史對話作為參考;最後,在生成對話的過程當中,把該參考和目前對話已有的内容一起拼接,輸入給模型,讓模型以自回歸的方式生成新的對話。

6. 模型輸入格式

英偉達在自然語言生成領域的最新研究進展

以一個例子是來說明模型的輸入。如圖,目前是模組化三個人(A,B,C)的四輪對話(A1,B,A2,C)。與一般的 GPT 模型類似,模型的輸入由多種不同的 Embedding 組合而成。首先是 Token 序列,它是由兩個部分組成:第一個部分是目标說話人 A 的曆史的對話内容的 Token(如左圖);第二部分是目前的三個人的多輪對話内容。類似地,模組化目标說話人為 C 的說話風格的時候,就采用 C 的曆史對話作為參考,然後 C 的曆史以及目前的對話序列拼接在一起,作為 Token序列(如右圖)。除了 Token 序列以外,還用不同的 Token Type 來差別 Token 的來源。Token Type 也是分為兩個部分:首先,在對話曆史作為參考的這個部分使用 P 和 R 來區分目前 Token 是來自于目标說話人還是非目标說話人;另外,在目前的對話曆史當中使用 S 和 NS 來區分目前 Token 是來自于目标說話人還是非目标說話人。最後,在輸入當中去加入 Position-Embedding 來表示 Token 的序列資訊。在訓練時,Loss 的計算會隻考慮目前目标說話人對應位置的 Logits。

7. 資料

英偉達在自然語言生成領域的最新研究進展

在資料方面,所有的實驗都采用了 Reddit 論壇裡網友的提問和回複來作為對話的資料。Reddit 論壇的所有資料都可以從 pushshift.io 網站下載下傳。使用 2018 年 10 月到 2019 年 3 月的資料訓練,使用 2009 年 4 月的資料進行測試。

8. 資料

英偉達在自然語言生成領域的最新研究進展

Reddit 論壇當中網友的回複本身是一種樹的結構(如左圖)。為了将這種樹結構的資料轉換為多輪對話序列形式,做了相應的處理和提取。另外,根據經驗設定一些條件排除資料當中一些不合适的内容,比如,對話的最少的輪數,最多的輪數,每條回複的最短長度等等。對于每位網友,最多會保留他在論壇當中的八條回複。經過處理,平均每個人有 7.1 條回複作為資料進行之後的訓練。

9. 對比試驗:自動測試和人工測試

英偉達在自然語言生成領域的最新研究進展

在實驗階段采用了兩種不同的測試方法。首先是使用基于困惑度自動測試,并且對比了不同的幾種baseline模型結構:首先,類似于 GPT 的 decoder-only 的結構,稱之為 GCC-DEC;基于 Seq2Seq 的模型結構,稱之為 S2S;基于變分自編碼器的模型結構,稱為 VAE;在 GPT 模型中不使用目标說話人之前的對話曆史的模型,稱為 NRC。另外,也對預訓練的效果進行相應測試。還進行了實際的人工測試。

10. 結果:模型結構對比

英偉達在自然語言生成領域的最新研究進展

基于困惑度的自動的測試。在測試集上,對比了不同模型結構以及大小的性能。從表格的上半部分可以看出來,在相同的模型參數量的情況下,基于 Decoder 的模型結構得到的困惑度值是最低。在表格的下半部分,進一步的增加了 Seq2Se 和自編碼器的模型的大小,結果發現,即便增加參數量,這兩種模型結構的效果還是比不上基于 Decoder 的生成式模型的效果,後面的實驗也是基于 Decoder 的模型。

11. 結果:預訓練的影響

英偉達在自然語言生成領域的最新研究進展

除了對模型結構的測試,還測試了預訓練對于模型效果的影響。從這個表格當中可以看出,預訓練對于模型的效果是有幫助的。通過前兩行的對比,可以看出,如果不借助預訓練,訓練的時間更長,或者 batch_size 更大,最終模型達到的 PPL 值還是會稍微高一些。另外,還對比了是否使用目标說話人的曆史資訊的差别,也就是表格中的第二行和第三行。結果顯示,包含曆史對話的方法,達到的 PPL 值是更低。

12. 測試:模型參數量的影響

英偉達在自然語言生成領域的最新研究進展

除了模型結構和預訓練的影響,進一步的對模型的大小對做對比測試,嘗試調整模型的層數以及不同層數下所對應的這個 hidden_size。從這張表格當中可以看到,随着模型的增大,困惑度不斷下降。

13. 測試:人工評價對話生成品質

英偉達在自然語言生成領域的最新研究進展

在基于困惑度的自動測試之後,又進行了人工的測試,從多個次元評價模型生成對話的品質,包含對話生成的本質真實度,對話風格的一緻性以及内容的品質、連貫性。具體來說,給定一段真實的 n 輪對話的前 n-1 輪内容,對于最後一輪對話,用不同的實作方式(模型生成或真實的文本),把這兩種不同方式的結果都展示給測評者,讓他在幾個不同的次元對這兩種不同方法産生的對話内容去進行傾向性的對比,看哪一種方法産生的文本效果更好。

14. 聯合模組化需求場景

英偉達在自然語言生成領域的最新研究進展

人工測試的測評主要做了兩種類型的對比,首先,用不同大小的模型與來自真人的對話内容作對比,也就是表格的上半部分。表格的第二部分是按照模型大小進行排序,相近大小的兩兩模型的對比。通過這兩種方式結果都顯示,大模型相較于比小模型的效果要好一些。另外,從表格中加粗的結果中可以看到,在實驗當中所使用的參數量最大 8.3B 的模型的效果與真人的對話的效果是非常接近的,在多個次元上都隻有比較小的差距。

15. 總結

英偉達在自然語言生成領域的最新研究進展

傳統的生成式對話可能會存在一些風格不可控的問題,為了解決這類問題,我們嘗試去借助某一目标說話人的曆史對話,讓生成式模型在對話内容生成的過程中保持更一緻的風格。在訓練的過程當中,主要是借助于Reddit論壇當中擷取的真實網友的回複來作為訓練資料。在測評的過程中,首先采用自動測試,之後也采用了人工的測評。對比多種結構模型,模型結構以及大小,最終的結果顯示,基于decoder的模型是最好的,并且效果會随着模型參數的增大而進一步的提升。

--

02

借助合成資料訓練問答模型

1. 背景

英偉達在自然語言生成領域的最新研究進展

深度學習的發展高度依賴于标注資料來進行模型訓練。但是,标注資料通常是稀缺的,而且擷取成本是較高的。一種折中的解決方法是半監督學習,即在已有的資料上訓練模型,然後再用這個模型去标注新的資料,再反過來進行模型的訓練以及提升。但對于問答任務來說,訓練問答模型,需要問題和答案的資料對進行模型的訓練。相對來說,合成資料在問答領域的品質與人工标據的資料還有一定的差距。

2. 背景

英偉達在自然語言生成領域的最新研究進展

在這項工作當中,我們希望,在給定的文檔集合上,借助生成式模型合成問題與答案,然後借助這種生成的問題和答案,作為一種資料增強的方式,更好的幫助訓練問答模型。在 SQUAD1.1 測試集,使用純的合成的資料訓練而來的模型比使用傳統的基于标注資料微調的模型的精度更好。更進一步,在生成的文本上生成問答對,用于微調模型,能夠達到與傳統的基于标注的真實資料相近的精度。

3. 方法:完整流程

英偉達在自然語言生成領域的最新研究進展

這項工作的主要的思路是生成問答對資料,然後進行模型的微調,然後評價他的效果。該方法完整的流程分為四部分:

  • 首先,需要建構能夠生成合成資料的 Pipeline,通常是基于标注的資料進行設計。
  • 其次,有了問答生成的 Pipeline 後,在純文字,如 Wikipedia 上進行問答資料的合成。
  • 然後,去在合成的問答資料集上,去進行 BERT QA 模型的微調。
  • 最後,在 SQUAD 驗證集上進行 EM 或 F1 分數的計算,用于評價合成資料的真實性。

4. 方法:答案-問題-過濾

英偉達在自然語言生成領域的最新研究進展

合成資料的 Pipeline 采用了包含三個部分模型合成問答資料。給定文檔集合 C,首先使用答案生成子產品生成答案,然後再根據生成的答案以及文檔集合生成問題,最後,對生成的問題做一定的篩選。對于答案的生成,訓練類似于 BERT QA 的模型,和一般的 BERT QA 模型的差别就在于它的輸入隻有文本的段落而沒有問題。采用這種方式,讓模型預測答案的起始以及終止位置。有了答案之後,再生成問題。這一步驟采用的是類似于 GPT-2 的模型,基于文本的段落以及剛才生成的答案生成問題。生成的問題的品質可能是層次不一的,為了保證合成問題的這個品質,還需利用在标注的資料上訓練的 BERT QA 模型,在生成的問題上産生答案。用生成的答案和之前生成的答案進行對比,如果兩者一緻,就認為生成的問題品質較高,就會保留它。否則,就放棄這個問題。

5. 資料

英偉達在自然語言生成領域的最新研究進展

在資料方面,做了相應的消融實驗,探索問題的生成和答案的生成,以及答案過濾模型的效果。在消融實驗過程中,使用了 SQUAD 資料集中一半的資料作為訓練資料,用 SQUAD 資料集的另一半進行相應的答案的生成。生成了問答對之後,進行 QA 模型的微調,在 SQUAD 的這個驗證集上進行相應的測評。另外,嘗試用全部的 SQUAD 的資料進行相應的探索,看在什麼樣的條件下能達到最佳的合成精度。

6. 結果:最好的模型

英偉達在自然語言生成領域的最新研究進展

上圖展示的是最好的模型的結果。實驗步驟如下:首先,使用 SQUAD1.1 資料集訓練問答生成 Pipeline。然後分别在真實的 Wikipedia 和合成的 Wikipedia 上進行問答的合成。最後在合成的問答資料上進行BERT QA的微調,并測試 EM 和 F1值,在用 SQUAD 進一步進行微調。從表中可以看出,傳統的使用标注資料微調 BERT 得到的 EM 分數和 F1 值分别是 87.7 和 94。使用合成的 Pipeline 所産生的問答對微調的模型的分數是能達到88.4以及 94.1,比傳統使用标注資料要更好。在合成的資料的基礎上,在增加 SQUAD 的真實标注資料,模型的效果是有進一步的提升。另外,使用預先訓練好的 GPT-2 模型,然後生成 Wikipedia 的文本,再生成問答對後進行 BERT 微調,通過這種方法發現,最終的問答模型的精度和基于真實文本所生成的模型的精度類似。

7. 結果:模型大小對合成 Pipeline 的影響

英偉達在自然語言生成領域的最新研究進展

模型大小對 Pipeline 的影響。問答生成Pipeline 主要是有三個部分組成,首先是問題答案生成,然後是問題生成,最後是問題過濾子產品。這三個子產品分别是三個不同的模型組成的。上圖對比了兩種模型大小對于 Pipeline 的影響。可以看看到,基于大模型所生成的問答對的精度更高。

8. 結果:模型大小對問題生成的影響

英偉達在自然語言生成領域的最新研究進展

除了對整個 Pipeline 的模型大小做相應的測試,進一步對 Pipeline 中單獨的子產品做了相應的測試,即觀察模型大小對各個子產品會有什麼樣的影響。首先是對問題生成的子產品做相應的測試。從結果可以看到,生成的問題的品質随着模型的增大而變好。

9. 結果:模型大小對答案生成的影響

英偉達在自然語言生成領域的最新研究進展

與問題生成的子產品不同,在實驗中發現,答案生成子產品與模型的大小并沒有産生比較明顯的相關性。

10. 結果:模型大小對問題過濾的影響

英偉達在自然語言生成領域的最新研究進展

對于過濾子產品也嘗試使用不同大小的模型。對于問題過濾模型來說,增大它的模型體積是可以提升問題過濾的效果。

11. 總結

英偉達在自然語言生成領域的最新研究進展

在這項工作中,我們思路是借助生成模型在給定文檔集合上,用生成的方法生成問題與答案,進而作為一種資料增強方式,更好的幫助訓練模型。通過在 SQUAD1.1 測試集上進行驗證,我們發現,使用純粹的合成的資料訓練而來的模型比傳統的基于标注的模型的精度更好一些。另外,增大模型會對問題生成和問題過濾都更好的精度,但是對于答案生成的影響比較。

英偉達在自然語言生成領域的最新研究進展

--

03

問答環節

Q1:老師,您這邊有考慮對大模型做知識蒸餾嗎?

A1:暫時還沒有,我們的更多的工作是嘗試增大模型的 Size,然後去看他對生成式任務或問答任務的效果的提升。

Q2:曆史對話有很多,那選取多少合适?

A2:在我們這項工作當中,對每個網友一般會采取保留最多八條的對話。實際上,在論壇中,我們發現一個網友的回複都是遠遠多于八條的。這個選取也起決于你的模型的輸入的整個序列的長度限制。在我們的實驗當中發現,八條能夠滿足 GPT-2 模型最大長度為 1024 的限制。

Q3:基于合成資料方法做資料增強會不會導緻資料的 Pattern 嚴重的依賴于生成模型,假如生成模型和真實資料 Pattern 是類似的,那麼效果上可能效果較好,假如不一緻,是如何保證效果的?

A3:是的,生成的資料在很大程度上取決于生成模型在訓練階段所使用資料的領域。是以說,如果需要在不同領域進行相應的文本的生成,需要預先的對生成模型進行風格的遷移,或者是在生成的過程當中使用相應的目标領域的文本,使模型有一定的生成内容的指導性。

Q4:請問有沒有對分類任務嘗試過生成方法的資料增強?

A4:暫時還沒有使用這種合成的資料進行分類任務的資料增強,目前更多的是基于生成式的任務場景。

Q5:半監督學習、遷移學習、資料合成,哪個會比較好?

A5:這需要根據具體的場景來決定。在一些場景,半監督學習,确實有相當多的工作已經證明了有比較好的效果,比如說在圖像。但是,比如說問答,它的問答對和簡單的圖像的标注稍微不太一樣。而且對于自然語言來說,所涉及的多樣性、複雜性會更高一些,相對來說,半監督學習并不太容易去做問答領域資料的增強。

Q6:對話 Style 的控制和曆史對話會不會存在一些情況:沒有引入曆史對話的Style,反而幹擾了現有最新對話的内容?

A6:在實驗的過程當中,發現确實會有這樣的情況出現。因為生成式模型在生成的時候,可控性是一個問題。針對這個問題,我們的思路主要在資料收集的時候進行相應的條件篩選或者是根據經驗進行相應的資料清洗,盡量保證在收集曆史對話的時候,收集到高品質的,能展現大風格的對話。另外,曆史對話的時間的跨度也會有一定的影響,盡量不要與現在的對話有太大的時間上的改變。

Q7:請問您剛才那幾個任務都是在什麼硬體資源下運作?

A7:主要是基于公司内部 GPU 叢集,每個節點包含 8 張 V100 GPU。

Q8:在生成的時候,有沒有加一些可控的政策?

A8:沒有添加其他的控制政策,因為這個工作主要是想研究基于曆史對話對于風格控制的一個效果,是以說沒有引入額外的控制去提升它的效果。可能在實際的場景中,可以根據場景使用多個控制政策,效果會更好一些。

今天的分享就到這裡,謝謝大家。

|分享嘉賓|

英偉達在自然語言生成領域的最新研究進展

齊家興 博士

英偉達 進階解決方案架構師

齊家興,德國亞琛工業大學博士,目前于英偉達企業解決方案部門擔任進階架構師,多年來從事自然語言處理和語音識别等方向研究,助力多家企業基于GPU平台實作高效易用的訓練和推理平台。他是英偉達NeMo,Riva語音識别訓練推理平台的中文模型開發者之一。

|DataFun新媒體矩陣|

英偉達在自然語言生成領域的最新研究進展

|關于DataFun|

專注于大資料、人工智能技術應用的分享與交流。發起于2017年,在北京、上海、深圳、杭州等城市舉辦超過100+線下和100+線上沙龍、論壇及峰會,已邀請超過2000位專家和學者參與分享。其公衆号 DataFunTalk 累計生産原創文章800+,百萬+閱讀,15萬+精準粉絲。

繼續閱讀