今天,我們來介紹在Chit-chat talk 一個具代表的chatbot,DialoGPT。
DialoGPT(Dialogue Generative Pre-trained Transformer),顧名思義就是用於對話的GPT。
它在2019由微軟提出(5年前的東西對AI領域來說都是上古神獸等級的了),希望能生成自然且符合上下文的回覆,也就是它是為了單純與使用者蓋棉被純聊天的機器人。
DialoGPT是一種基於GPT-2架構的大規模預訓練對話響應生成模型。
它使用多層的Transformer Decoder(現在的LLMs也大多是這種結構),具體結構包含:
在輸出方面它使用自回歸(Auto-regressive)的方式做生成,也就是將自己的輸出當作下一步的輸入。
DialoGPT提供了small(117M)、medium(345M)、large(762M)三個大小的模型
這些模型使用50257個字詞進行訓練,能夠根據不同需求選擇合適的模型大小以平衡效能與運算資源。
DialoGPT使用Reddit上2005年至2017年約1.47億條(147M)的對話,這些對話大多來自討論區下的留言。
經過過濾後,形成了擁有18億個(1.8B)字詞的多輪對話語料。如此便能讓DialoGPT學習到豐富的對話及上下文關係。
DialoGPT採用因果語言建模(Causal Language Modeling, CLM)作為訓練目標,將多輪對話拼接成長文本進行訓練。你問我什麼是CLM? 痾...這個我們之後再來細談...
DialoGPT產生的對話具高度相關,也與上下文符合高度的一致性,甚至也能精準回答一些常識性問題。
放到現在你可能覺得這對ChaGPT來說是小兒科,但在5年前,這可是驚人的發展。
好啦,以上就是DialoGPT的簡單介紹。之後,我將介紹要怎麼使用Pytorch來架設自己的DialoGPT~
Reference.
DIALOGPT : Large-Scale Generative Pre-training for Conversational Response Generation
DialoGPT: Toward Human-Quality Conversational Response Generation via Large-Scale Pretraining
The Illustrated GPT-2 (Visualizing Transformer Language Models)