Transformers 文档

DialoGPT

Hugging Face's logo
加入 Hugging Face 社区

并获取增强的文档体验

开始使用

DialoGPT

PyTorch TensorFlow Flax

概述

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 的文档页面

< > 在 GitHub 上更新