Transformers 文档
DialoGPT
并获取增强的文档体验
开始使用
DialoGPT
概述
DialoGPT 由 Yizhe Zhang、Siqi Sun、Michel Galley、Yen-Chun Chen、Chris Brockett、Xiang Gao、Jianfeng Gao、Jingjing Liu、Bill Dolan 在DialoGPT: Large-Scale Generative Pre-training for Conversational Response Generation 中提出。它是一个在从 Reddit 提取的 1.47 亿类对话交流上训练的 GPT2 模型。
论文的摘要如下:
我们提出了一个大型、可调的神经对话响应生成模型 DialoGPT(对话生成式预训练 Transformer)。DialoGPT 在从 2005 年至 2017 年期间从 Reddit 评论链中提取的 1.47 亿类对话交流上进行训练,扩展了 Hugging Face PyTorch Transformer,在单轮对话设置中,在自动和人工评估方面均达到了接近人类的性能。我们表明,与强大的基线系统相比,利用 DialoGPT 的对话系统生成的相关性更高、内容更丰富、上下文一致性更高的响应。预训练模型和训练管道已公开,以促进神经响应生成的研究以及更智能的开放域对话系统的开发。
原始代码可以在这里找到。
使用技巧
- DialoGPT 是一个具有绝对位置嵌入的模型,因此通常建议在右侧而不是左侧填充输入。
- DialoGPT 在会话数据上使用因果语言建模 (CLM) 目标进行训练,因此在开放域对话系统中进行响应生成非常强大。
- DialoGPT 使用户仅需 10 行代码即可创建一个聊天机器人,如 DialoGPT 的模型卡所示。
训练
为了训练或微调 DialoGPT,可以使用因果语言建模训练。引用官方论文:我们遵循 OpenAI GPT-2 将多轮对话会话建模为长文本,并将生成任务框架化为语言建模。我们首先将对话会话中的所有对话轮次连接成一个长文本 x_1,…, x_N(N 是序列长度),并以文本结束标记结尾。更多信息请参考原始论文。
DialoGPT 的架构基于 GPT2 模型,有关 API 参考和示例,请参阅 GPT2 的文档页面。