读文章笔记(一):动手做个DialoGPT:生成式多轮对话模型

读文章笔记(一):动手做个DialoGPT:生成式多轮对话模型

公众号AINLP文章链接: 动手做个DialoGPT:生成式多轮对话模型。.
https://mp.weixin.qq.com/s/U_S5hKYnGcjYBRG2nr3_Gg

论文名称:
《A Large-Scale Chinese Short-Text Conversation Dataset》
论文链接:
https://arxiv.org/abs/2008.03946
项目地址:
https://github.com/thu-coai/CDial-GPT

文章进行:一次对话模型实践,基于开源的LCCC(Large-scale Cleaned Chinese Conversation)闲聊语料库数据集,利用语言模型(GPT)对多轮对话进行生成式建模,得到了一个相对通用的闲聊对话模型,最后将本文的思路与CDial-GPT本身开源的模型进行了比较。

一:LCCC数据集分析
二:模型设计:需要做的就是训练一个模型,预测下一个该回复什么,模型也要支持多轮对话。

从形式上来看我们应该用Seq2Seq模型,给定一些输入(把“直到当前句的所有历史对话”都拼接成单句文本,来作为模型的输入信息),预测一个输出:

  • 标准的Seq2Seq一般用于:形式比较固定的输入输出,比如输入的文本长度应该是集中在某个范围内,不宜变化太大。
  • 但考虑多轮对话的话,理论上我们也不知道前面有多少轮对话,因此原则上输入文本长度是无限制的。
  • 用Seq2Seq的话,还有训练效率低的问题,每轮对话每次我们只能训练一句回复,如果一个多轮对话有n句回复,那么就要拆分为n个样本来训练了。

因此,我们需要一个长度能相当自由地变化的、同时能预测整个多轮对话的模型,实现这个需求的比较适当的选择就是单向语言模型(LM、GPT),如下图:
在这里插入图片描述
主流的Transformer模型,按照BERT的常规输入格式,将每句对话用[SEP]拼接起来,然后就训练一个从左往右的单向语言模型。为了区分不同的说话角色,我们对不同的说话者用不同的Segment Id区分。此外,考虑到BERT和GPT都是用了绝对位置编码,可处理的文本长度存在一个上限,而对话轮数理论上是无限的,所以这里我们采用了相对位置编码的NEZHA作为基本结构,并使用NEZHA的预训练权重作为模型的初始化权重。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值