对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2( 二 )


此外 , PLATO-2 承袭了 PLATO 结构, 包括三个逻辑模块 , Generation、Recognition 和 Response Selection , 如图 2 右边所示 。 其中 Recognition 网络用于在训练过程中识别隐变量, Generation 则能够根据不同隐变量来生成回复(蓝色部分) 。 Response Selection 承担从不同隐变量生成的回复中 , 选择合适度最好的回复 , 因此也可以认为是一种评估(Evaluation)模型(橙色部分) 。
对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2
本文插图
图 2 PLATO-2 模型结构简图
2.2 PLATO-2 训练方法
PLATO-2 采用了课程学习方法 。 因为带隐变量的模型需要同时训练三个不同模块 , 其训练成本很大 , 因此 , 第一步 , PLATO-2 先训练了不含隐变量的模型 。 该模型进行的是简化的 “一对一” 建模 , 容易生成安全回复 。 第二步 , 在前一步模型基础上 , 添加上隐变量 , 然后同时训练 Generation + Recognition 和 Response Selection 两个不同模型 。 其中 , Response Selection 模型在合适度预测的基础上 , 还添加了 Masked Language Model 作为辅助任务 , 以强化模型对语义的理解 。
3. PLATO-2 效果
PLATO-2 包含中英文两部分模型 。 其中 , 中文模型在 12 亿中文开放域多轮对话数据集上进行训练 , 而英文模型则在 7 亿英文开放域多轮数据集上训练 。 PLATO-2 训练耗费了 64 张英伟达 V100 卡共 3 周的时间 , 依托了百度飞桨强大并行能力 , 包括 Fleet 并行库和 Recompute 等扩展显存的方式 。 单个 Batch 包含 52 万 Token , 训练过程中约进行了 30 万次梯度回传 。
为了全面对比 PLATO-2 和其他基线的效果 , PLATO-2 的论文进行了静态和动态评估 。 其中 , 静态评估是利用现有对话上文 , 要求模型预测一句下文 , 人工评估对话的合适度 。 而动态评估中 , 由于中文的对比模型没有开放 API 接口 , 中英文采用了不同的评估数据收集方式 。 英文动态评估采用了两个模型进行相互对话(Self-Chat)的形式 , 通过人工来评估效果 。 中文则采用了人机对话的形式 。 中英文动态评估中 , 都是先给定一句起始话题(第一句对话) , 然后进行多轮交互 , 最后对这些多轮对话进行评估 。
对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2
本文插图

对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2
本文插图
图 3 PLATO-2 动态评估效果
对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2
本文插图
图 4 PLATO-2 静态评估效果
从结果上看 , PLATO-2 在动态(图 3)或者静态(图 4)评估中 , 均明显超越了 DialoGPT、Meena 和 Blender , 在中文上和微软小冰拉开了极大的差距 。 这意味着 , PLATO-2 的对话智能达到了全新的领域 。
此外 , 文章也放出了 PLATO-2 一些中文(图 5)和英文(图 6)对话的演示 。 从对话效果上看 , PLATO-2 和之前的模型 , 包括 Meena 和 Blender 有非常明显的区别 。 一方面 PLATO-2 在对话内容丰富度上提升明显 , 另一方面 , PLATO-2 能够就一个话题深入聊天并扩展到相关话题 。 而之前的最佳模型 Blender , 则非常频繁地转换话题 , 并且在每个话题上聊得相对较浅 。

对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2
本文插图
图 5 PLATO-2 中文对话演示
对话智能新高度:百度发布超大规模开放域对话生成网络PLATO-2
本文插图
图 6 PLATO-2 英文对话演示和 Blender 使用相同对话种子对比


推荐阅读