微软研究院开源DialoGPT:「你有什么梦想?」「让世界充满机器人」

简介: 自然语言对话生成是人工智能社区面临的一大难题,微软研究院的一项新研究让我们离解决这一难题又更近了一步。他们用 GPT-2 模型——DialoGPT,在大规模 reddit 数据上预训练了一个对话系统,在多个对话数据集上取得了最佳结果。并且经过人类裁判的评测,在非交互的图灵测试条件下,系统可以生成接近人类水平的对话。

微信图片_20211202093114.jpg

利用微软 DialoGPT 生成的对话结果示例。


DialoGPT 是一种用于对话响应生成的可调节式千兆词级神经网络模型,其训练基于 Reddit 数据。该研究成果的源代码已经开源,另外他们也发布了一个大规模预训练模型。



近来,使用基于 transformer 的架构进行大规模预训练方面进展颇丰(Radford et al., 2018; Devlin et al., 2019; Raffel et al., 2019),这些进展也在实践中取得了巨大的成功。举个例子,OpenAI 的 GPT-2(Radford et al., 2018)表明在大型数据集上训练的 transformer 模型能够捕获文本数据中的长程依赖性,进而生成流畅、词法多样以及内容丰富的文本。这样的模型有能力习得细粒度的文本数据,并得到能近似模仿人类所写的真实世界文本的高分辨率输出。


 DialoGPT 是对 GPT-2 的扩展,目标是解决对话神经响应生成中的挑战性难题。神经响应生成是文本生成的一个子类。而文本生成任务的目标都是生成与提示有关联的看起来自然的文本(同时又与任何训练实例都不同)。但是,建模对话面临着很多显著的难题,因为人类对话中两个参与者的目标可能是相互抵触的,而且可能响应的范围在本质上也更具多样性。因此,对话生成中的一对多问题通常比神经机器翻译、文本摘要和文本释义等其它文本生成任务的问题更为困难。人类对话通常更加不正式、噪声更多,而当以文本形式聊天时,通常还含有非正式的缩写或句法/词法错误。


类似于 GPT-2,DialoGPT 是以自回归语言模型的形式构建的,其模型架构使用了多层 transformer。但不同于 GPT-2,DialoGPT 的训练使用了从 Reddit 讨论链中提取出的大规模对话对/会话。作者猜想这应该能让 DialoGPT 学到对话流中更细粒度的 P(Target, Source) 的联合分布。他们在实践中也观察到了这一现象:DialoGPT 生成的句子丰富多样而且包含特定于源提示的信息,类似于 GPT-2 为连续文本生成的结果。


 作者在一个公开的基准数据集(DSTC-7)和一个新的从 Reddit 帖子中提取出的 6k 大小的多参照测试数据集上对新提出的预训练模型进行了评估。结果表明,DialoGPT 在自动评估和人类评估方面都取得了当前最佳的表现,将对话生成结果的质量提升到了接近人类的水平。


 作者已经公布了本研究的源代码与预训练模型。作者表示,这种模型使用简单,能够轻松地适应新的对话数据集,尤其是训练样本较少的数据集。这个 DialoGPT 软件包还包含一个开源的基于 Huggingface PyTorch transformer(HuggingFace, 2019)构建的训练工作流程(数据提取/准备和模型训练/评估)。


方法


模型架构


DialoGPT 模型基于 GPT-2 架构。它从 GPT-2 继承了带有层归一化的 12 到 24 层 transformer、一种适用于经过作者修改的模型深度的初始化方案,用于 token 化器的字节对编码(Sennrich et al., 2016)。遵照 OpenAI 的 GPT-2 方法,作者将多轮对话会话建模为了长文本,将生成任务纳入到了语言建模任务的框架中。


 作者首先将一个对话会话中所有对话回合连接成一个长文本 x_1, · · · , x_N(N 为序列长度),并以「文本结束 token」结束。可将源句子(对话历史)记为 S = x_1, · · · , x_m,将目标句子(基本真值响应)记为 T = x_{m+1}, · · · , x_N,则 P(T|S) 的条件分布可以写为一系列条件概率的积:


微信图片_20211202093244.jpg


对于多轮对话实例 T_1, · · · , T_K,(1)式可写为 p(T_K, · · · , T_2|T_1),这本质上就是 p(T_i |T_1, · · · , T_{i−1}) 的条件概率的积。最终,对单个目标 p(T_K, · · · , T_2|T_1) 的优化可以被视为是优化所有的 p(T_i |T_1, · · · , T_{i−1}) 源-目标对。作者这里的实现基于开源的 PyTorch-transformer 库。


链接:https://github.com/huggingface/pytorch-transformers 


互信息最大化


 开放域文本生成模型有一个众所周知的困难,即会生成枯燥的、没有信息的样本。为了解决这个问题,作者实现了一个最大互信息(MMI)评分函数(Li et al., 2016a; Zhang et al., 2018)。MMI 是利用一个预训练的后向模型来预测给定响应的源句子,即 P(Source|target)。作者首先使用 top-K 采样生成一组假设,然后使用 P(Source|Hypothesis) 的概率来对所有假设重新排序。直观来看,最大化后向模型似然会对所有枯燥的假设施加惩罚,因为频繁的和重复性的假设可能与很多可能的查询有关,因此在任意特定查询下得到的概率会更低。


作者也尝试了使用策略梯度来优化奖励

微信图片_20211202093535.png其中与 Zhang et al. (2018) 一样使用了一种样本平均的基线。这个验证奖励可以得到稳定提升,但不同于 RNN 框架下的训练,作者观察到强化学习训练容易收敛到某个劣化的局部最优解,这时的假设仅仅是对源句子的重复(即学舌模式),此时的互信息是最大化的。作者猜想,由于 transformer 具有强大的模型表征能力,所以它们很容易陷入局部最优位置。但强化学习训练规范化的相关工作还有待未来研究。


结果


作者将 DialoGPT 与另外两个基准进行了比较:作者自己内部的基于 (Li et al., 2016a) 的序列到序列模型 PersonalityChat,这个模型是基于 Twitter 数据训练的,已经在微软 Azure 的 Cognitive Service 得到了实际应用。表 2 总结了自动化评估的结果。有 345M 个参数的 DialoGPT 以及波束搜索在几乎所有基准上都得到了最高的自动评估分数。


微信图片_20211202093648.jpg

表 2:DSTC 评估


作者进一步在一个有 6K 个样本的多参照测试集上评估了 DialoGPT。结果见表 3。测试过程使用了两种设置:从头开始训练以及使用 GPT-2 作为预训练模型进行微调。在这两种设置中,更大的模型都总是优于更小的模型。另外表 3 的倒数第二行总结了执行互信息最大化的结果。


微信图片_20211202093718.jpg

表 3:6K Reddit 多参照评估


表 4(交互式聊天)和表 5(有用户提示的自播放聊天)给出了一些生成对话的样本。


微信图片_20211202093742.jpg

表 4:解决常识问题


微信图片_20211202093802.jpg

表 5:多轮对话的交互式示例


有趣的是,新提出的模型表现出了在一定程度上解决常识问题的能力,作者猜想这可能要归功于 Reddit 数据中可以学习到的丰富信息。在某些案例中,模型并不是给出「所需的」答案,而会生成另一个可替代的合理答案。作者观察到,该系统能比 RNN 对话生成系统更好地处理多轮对话生成,而且往往在上下文方面更能保持一致(表 5)。


 作者还通过众包评估了从 Reddit 6K 测试数据集随机采样的 2000 个测试源。系统经过了配对,每一对系统的输出都被随机呈现给 3 位评判者,他们会根据相关性、信息量和生成结果与人类结果的相似程度使用一个 3 分制的类 Likert 度量对这些结果进行排名。作者先要求这些评判者经过了一个资格测试,并采用了一种垃圾检测制度。表 7 给出了评判者在相关性、信息量和人类相似度方面的整体偏好,结果用原始数值与占整体的百分比来表示。


微信图片_20211202093840.jpg表 7:在相关性、信息量和人类响应可能性方面的人类评估结果


表 7 还表明「单纯」的 DialoGPT 基质模型可能就已经能达到与人类响应相近的质量了。

相关文章
|
5月前
|
传感器 人工智能 算法
适应多形态多任务,最强开源机器人学习系统八爪鱼诞生
【6月更文挑战第6天】【八爪鱼开源机器人学习系统】由加州大学伯克利分校等机构研发,适用于多形态多任务,已在arXiv上发表。系统基于transformer,预训练于800k机器人轨迹数据集,能快速适应新环境,支持单臂、双机械臂等。特点是多形态适应、多任务处理、快速微调及开源可复现。实验显示其在9个平台有效,但仍需改进传感器处理和语言指令理解。论文链接:https://arxiv.org/pdf/2405.12213
95 1
|
4月前
|
机器学习/深度学习 算法 机器人
相隔3000英里,用苹果头显遥控机器人!UCSD、MIT华人团队开源TeleVision
【7月更文挑战第19天】UCSD和MIT华人团队开发的TeleVision技术实现了远程操控机器人。借助AR/VR,操作者通过头显设备获得实时的机器人视角,并通过手势控制执行任务。系统支持多人协作,已在远距离实验中成功导航复杂环境。不过,高带宽需求和交互学习曲线是挑战。[论文链接](https://robot-tv.github.io/resources/television.pdf)**
73 14
|
3月前
|
机器学习/深度学习 自然语言处理 机器人
【Azure 机器人】微软Azure Bot 编辑器系列(6) : 添加LUIS,理解自然语言 (The Bot Framework Composer tutorials)
【Azure 机器人】微软Azure Bot 编辑器系列(6) : 添加LUIS,理解自然语言 (The Bot Framework Composer tutorials)
|
3月前
|
自然语言处理 机器人 API
【Azure 机器人】微软Azure Bot 编辑器系列(5) : 机器人的卡片式回复 (The Bot Framework Composer tutorials)
【Azure 机器人】微软Azure Bot 编辑器系列(5) : 机器人的卡片式回复 (The Bot Framework Composer tutorials)
|
3月前
|
自然语言处理 机器人 API
【Azure 机器人】微软Azure Bot 编辑器系列(4) : 使用语言生成功能[LG: Language Generation] (The Bot Framework Composer tutorials)
【Azure 机器人】微软Azure Bot 编辑器系列(4) : 使用语言生成功能[LG: Language Generation] (The Bot Framework Composer tutorials)
|
3月前
|
自然语言处理 机器人 API
【Azure 机器人】微软Azure Bot 编辑器系列(3) : 机器人对话流中加入帮助和取消按钮功能 (The Bot Framework Composer tutorials)
【Azure 机器人】微软Azure Bot 编辑器系列(3) : 机器人对话流中加入帮助和取消按钮功能 (The Bot Framework Composer tutorials)
|
3月前
|
存储 JSON 机器人
【Azure 机器人】微软Azure Bot 编辑器系列(2) : 机器人/用户提问回答模式,机器人从API获取响应并组织答案 (The Bot Framework Composer tutorials)
【Azure 机器人】微软Azure Bot 编辑器系列(2) : 机器人/用户提问回答模式,机器人从API获取响应并组织答案 (The Bot Framework Composer tutorials)
|
3月前
|
存储 自然语言处理 机器人
【Azure 机器人】微软Azure Bot 编辑器系列(1) : 创建一个天气对话机器人(The Bot Framework Composer tutorials)
【Azure 机器人】微软Azure Bot 编辑器系列(1) : 创建一个天气对话机器人(The Bot Framework Composer tutorials)
|
4月前
|
机器学习/深度学习 监控 安全
相隔3000英里,用苹果头显遥控机器人!UCSD、MIT华人团队开源TeleVision
【7月更文挑战第20天】加州大学圣地亚哥分校(UCSD)与麻省理工学院(MIT)的华人团队开发出TeleVision系统,结合Apple AR/VR头显,实现超远程沉浸式机器人控制。💡该系统克服视频流延迟,精准手势识别难题,让操作者仿佛亲临现场指挥机器人行动。目前处于研究阶段,已展示基本任务执行能力。更多信息查阅[论文](https://robot-tv.github.io/resources/television.pdf)。🌐 --- **🏷️远程控制** **🏷️虚拟现实** **🏷️机器人技术** **🏷️华人科研** **🏷️科技创新**
48 4
|
4月前
|
机器人
Telegram统计机器人源码/TG记账群发机器源码人/TG自动记账全开源版本
Telegram统计机器人源码/TG记账群发机器源码人/TG自动记账全开源版本
240 0

热门文章

最新文章

下一篇
无影云桌面