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 中提出。它是一个 GPT2 模型,在从 Reddit 提取的 1.47 亿个类似对话的交流数据上训练而成。

论文摘要如下:

我们提出了一个大型、可调的神经对话响应生成模型,DialoGPT(对话式生成预训练变换器)。DialoGPT 在 2005 年至 2017 年间从 Reddit 评论链中提取的 1.47 亿个类似对话的交流数据上进行训练,它扩展了 Hugging Face PyTorch Transformer,在单轮对话场景中,无论是自动评估还是人工评估,其性能都接近人类水平。我们表明,利用 DialoGPT 的对话系统比强大的基线系统生成的响应更相关、内容更丰富且上下文更一致。我们公开发布了预训练模型和训练流程,以促进神经响应生成的研究和更智能的开放领域对话系统的开发。

原始代码可以在这里找到。

使用技巧

  • DialoGPT 是一个具有绝对位置嵌入的模型,因此通常建议在输入的右侧而不是左侧进行填充。
  • DialoGPT 是在对话数据上以因果语言建模(CLM)为目标进行训练的,因此在开放领域的对话系统中,它在响应生成方面表现强大。
  • DialoGPT 的模型卡 所示,DialoGPT 使用户能够仅用 10 行代码创建一个聊天机器人。

训练

为了训练或微调 DialoGPT,可以使用因果语言建模训练。引用官方论文:“我们遵循 OpenAI GPT-2 的方法,将多轮对话会话建模为一个长文本,并将生成任务框架化为语言建模。我们首先将对话会话中的所有对话轮次连接成一个长文本 x_1,…, x_N(N 是序列长度),并以文本结束标记结尾。” 更多信息请参阅原始论文。

DialoGPT 的架构基于 GPT2 模型,有关 API 参考和示例,请参阅 GPT2 的文档页面

< > 在 GitHub 上更新