日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动手做个DialoGPT:生成式多轮对话模型

發布時間:2024/7/5 编程问答 124 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动手做个DialoGPT:生成式多轮对话模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文 | 蘇劍林

編 | 兔子醬


前段時間刷Arixv的時候,發現清華大學開源了一個大規模的中文閑聊語料庫LCCC,從開源的文件上來看,這可能是目前開源的數量最大、質量最好的閑聊語料庫了,而且還包含了部分多輪對話聊天,總的來說可玩性還是蠻強的。筆者也被它吸引到了,嘗試著用它來訓練了一個閑聊對話模型,結果看上去還是不錯的,在此分享一下自己的經驗。

論文名稱
《A Large-Scale Chinese Short-Text Conversation Dataset》

論文鏈接
https://arxiv.org/abs/2008.03946

項目地址
https://github.com/thu-coai/CDial-GPT

Arxiv訪問慢的小伙伴也可以在 【夕小瑤的賣萌屋】訂閱號后臺回復關鍵詞 【0917】 下載論文PDF~

語料簡介

這里簡單介紹一下LCCC這個數據集(Large-scale Cleaned Chinese Conversation),具體細節大家可以去Github上看,下載鏈接也在上面。LCCC分base和large兩個版本,base主要是來源于微博對話,large則是在base的基礎上融合了其他開源對話語料,按照作者的說法,LCCC經過了嚴格的清洗過程,所以整體質量看上去還是很不錯的。

為了簡化任務,所有樣本都被處理成雙人對話。下面是一些樣本示例:

A: 等過年咱們回去買點兔頭好好吃頓火鍋
B: 太原就沒看見有好吃的兔頭
A: 我從虹橋給你帶個回去那天瞅到一正宗的
B: 最愛你了
A: 那是必須

A: 嗯嗯,我再等等!你現在在上海吧?上海風好像比南京還大呢,少出門吧
B: 對啊,我在家,沒事兒。一定要小心啊!

A: 我去年也去轉了一圈,還碰見以前的體育老師了,合了個影
B: 哈哈我還去找高一時侯的英語老師沒找到她剛好有事情沒在學校~
A: 你也是真心找回憶了哦
B: 哈哈畢業了沒去過想去看看啊

模型設計

知道了數據長什么樣之后,我們接下來就要去設計模型了。顯然,我們需要做的就是訓練一個模型,預測下一個該回復什么。既然語料里包含了多輪對話,那么我們還要求這個模型支持多輪對話。考慮對話歷史的最簡單的方式,就是把直到當前句的所有歷史對話都拼接成單句文本,來作為模型的輸入信息。

給定一些輸入,預測一個輸出,從形式上來看我們應該用Seq2Seq模型。直接用Seq2Seq其實問題也不大,但標準的Seq2Seq一般用于形式比較固定的輸入輸出,比如輸入的文本長度應該是集中在某個范圍內,不宜變化太大,但考慮多輪對話的話,理論上我們也不知道前面有多少輪對話,因此原則上輸入文本長度是無限制的。用Seq2Seq的話,還有訓練效率低的問題,就是我們每輪對話每次我們只能訓練一句回復,如果一個多輪對話有n句回復,那么就要拆分為n個樣本來訓練了。

因此,我們需要一個長度能相當自由地變化的、同時能預測整個多輪對話的模型,實現這個需求的比較適當的選擇就是單向語言模型(LM、GPT),做法如下圖:

如圖所示,我們選擇當前主流的Transformer模型,按照BERT的常規輸入格式,將每句對話用[SEP]拼接起來,然后就訓練一個從左往右的單向語言模型。為了區分不同的說話角色,我們對不同的說話者用不同的Segment Id區分。此外,考慮到BERT和GPT都是用了絕對位置編碼,可處理的文本長度存在一個上限,而對話輪數理論上是無限的,所以這里我們采用了相對位置編碼的NEZHA作為基本結構,并使用NEZHA的預訓練權重作為模型的初始化權重。

說白了,就是往NEZHA里邊加入了下三角形式的Attention Mask,使其變為一個語言模型,相關介紹請參考《從語言模型到Seq2Seq:Transformer如戲,全靠Mask》[1]

訓練細節

首先,給出筆者的參考實現以及訓練好的模型:

https://github.com/bojone/nezha_gpt_dialog

代碼基于bert4keras實現,基本結構是NEZHA Base。為了使得訓練更加“平民化”,筆者只用了一張卡(22G的RTX)配合梯度累積來訓練,顯存不夠大的讀者可以縮小batch_size。開源的模型是用的學習率、0.01的權重衰減率的Adam優化器進行訓練的,訓練了1000萬步(20多天),單步batch_size為16,累積梯度步數為16,所以相當于以256的batch_size訓練了62.5萬步,最終的loss大概是2.83(平均每個token的交叉熵)。

我們來測試一下我們的訓練結果。

>>> print(chatbot.response([u'我最近天天吃火鍋']))
火鍋好吃啊
>>> print(chatbot.response([u'我最近天天吃火鍋']))
我也是
>>> print(chatbot.response([u'我最近天天吃火鍋']))
哈哈哈哈哈哈我最近一周吃了兩頓火鍋
>>> print(chatbot.response([u'我最近天天吃火鍋']))
我也是,每次都吃的撐
>>> print(chatbot.response([u'我最近天天吃火鍋']))
吃火鍋不長胖
>>> print(chatbot.response([u'我最近天天吃火鍋']))
火鍋好啊
>>> print(chatbot.response([u'我最近天天吃火鍋']))
你們那邊有這種火鍋?
>>> print(chatbot.response([u'我最近天天吃火鍋']))
火鍋好吃嗎?我也想吃
>>> print(chatbot.response([u'我最近天天吃火鍋']))
吃吧,吃了就開心了
>>> print(chatbot.response([u'我最近天天吃火鍋']))
我也想天天吃火鍋!
>>> print(chatbot.response([u'我最近天天吃火鍋']))
火鍋吃不了多久的。

>>> print(chatbot.response([u'你那天氣好嗎']))
還好,不熱,有點冷
>>> print(chatbot.response([u'你那天氣好嗎', u'還好,不熱,有點冷', u'那你得穿多厚的衣服']))
我穿了兩件

對比分析

CDial-GPT也開源了自己訓練的預訓練模型,筆者也將它轉換為bert4keras能加載的格式了,CDial-GPT-tf[2],讀者也可以測試比對一下。從訓練上來看,CDial-GPT使用pytorch實現的模型,基本結構是GPT Base,使用了4張2080Ti,總batch_size為32,累積梯度64步,論文說訓練了30個epoch,總步數約2100萬步(筆者的兩倍),因此大概相當于batch_size為2048訓練了33萬步。

在輸入設計上,CDial-GPT也有所不同,如下圖:

如圖所示,CDial-GPT跟我們前述設計的主要不同是多輪對話之間的拼接方式,我們之前是直接用[SEP]連接,它是用[speaker1]、[speaker2](圖中簡記為S1、S2)這樣的角色標記來連接,最后才用一個[SEP]表示回復結束。這樣一來,由于預測部分的格式跟歷史的格式不一樣,因此每次只能訓練一句回復,多輪對話要拆分為多個樣本來訓練,理論上是增加了訓練復雜性的(要訓練多步才能把一個多輪對話樣本訓練完)。

至于效果上,個人測試的感覺是兩者沒什么明顯差別。有興趣的讀者也可以自行比較測試。

文章總結

本文主要分享了一次對話模型實踐,基于開源的LCCC閑聊語料庫,利用語言模型(GPT)對多輪對話進行生成式建模,得到了一個相對通用的閑聊對話模型,最后將本文的思路與CDial-GPT本身開源的模型進行了比較。


文末福利
后臺回復關鍵詞【入群
加入賣萌屋NLP/IR/Rec與求職討論群
有頂會審稿人、大廠研究員、知乎大V和妹紙
等你來撩哦~

參考文獻

[1] 《從語言模型到Seq2Seq:Transformer如戲,全靠Mask》:
https://kexue.fm/archives/6933
[2] CDial-GPT-tf:
https://github.com/bojone/CDial-GPT-tf

總結

以上是生活随笔為你收集整理的动手做个DialoGPT:生成式多轮对话模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲AV无码一区二区三区蜜桃 | 五月天激情小说 | 亚洲性图视频 | 欧美中文字幕第一页 | 精品国产AV色欲天媒传媒 | 日韩乱码人妻无码中文字幕久久 | 日本理论片在线 | 视频在线观看免费 | 激情在线观看视频 | 用力抵着尿进去了h | 黄色av网址在线 | 日韩精品一区不卡 | 久久99精品国产麻豆婷婷洗澡 | 国产aⅴ精品一区二区三区久久 | 欧美激情三级 | 国产精品久久久久久亚洲 | 三上悠亚在线观看一区二区 | 亚洲一区二区三区电影在线观看 | 中文字幕一区2区3区 | 91精品久久久久久久久久久 | 国产区视频在线观看 | 亚洲精品中文字幕 | 看黄色a级片 | 国产成人精品亚洲男人的天堂 | 国产美女视频网站 | 欧美成人久久久 | 四虎视频国产精品免费 | 91蜜桃传媒精品久久久一区二区 | 国产高潮网站 | 亚洲欧美另类日韩 | 国产精品色婷婷99久久精品 | 99干99| 男生插女生的视频 | 美女被到爽高潮视频 | 99热8| 精品无码一区二区三区 | 麻豆精品a∨在线观看 | 日韩一级欧美一级 | 国产丝袜一区二区三区 | 日本aa在线观看 | 丁香五香天堂 | 国产成人小视频 | av免费大全| 国产宾馆自拍 | 在线观看亚洲精品 | 亚洲午夜精品久久 | 久久久久亚洲av无码专区 | 日韩成人免费在线视频 | 国产一区二区三区在线看 | 男人吃奶视频 | 国产成人精品免高潮在线观看 | 国产精品一区二区三区久久 | www.色网站 | 亚洲免费av一区二区 | 手机看片福利永久 | 97超碰碰 | www.黄色大片 | 99精品一区二区三区 | 国产农村妇女aaaaa视频 | 岛国av在线播放 | 欧美日比视频 | 亚洲av无码久久精品狠狠爱浪潮 | 尤物精品视频在线观看 | 黄色一级视频免费观看 | 99久久99久久免费精品蜜臀 | 国产精品人成在线观看免费 | 国产99在线播放 | 欧美熟妇激情一区二区三区 | 亚洲欧美日韩精品 | 天天干天天舔 | 亚洲一区在线电影 | 国产亚洲午夜 | a天堂资源在线 | 中文字幕在线免费视频 | 特级av片| 亚洲动漫精品 | 日韩手机在线观看 | 九九精品在线观看视频 | 色乱码一区二区三在线看 | 久久久77 | 日韩综合中文字幕 | 久久全国免费视频 | 一本无码aⅴ久久久国产 | 国产午夜精品理论片 | 在线观看视频毛片 | 美女扒开粉嫩的尿囗给男生桶 | 国产成人免费视频网站 | av老司机在线观看 | 亚洲精品一区二区三 | 97人妻精品一区二区三区 | 亚洲欧美日韩不卡 | 亚欧在线免费观看 | 欧美mv日韩mv国产 | 国产亚洲精品久久久久久青梅 | 亚洲精品无吗 | 亚洲欧美综合在线观看 | 国产精品入口66mio男同 | 美日毛片 | 亚洲精品免费视频 |