人与机器在开放领域自由对话这一终极理想,又迎来重大进展。近日,百度全新发布了超大规模模型PLATO-2,在承袭PLATO模型运用隐变量进行多样化回复生成特性外,模型参数规模上升到16亿!能够就开放话题和人类流畅嗨聊。在对话演示中,PLATO不仅能深聊“去吧去吧,学会了游泳带我一起”,还会小腹黑“你不怕我把你扔河里么?”,朱朝阳看了都直呼专业。
这样的优秀效果同样反映在公开数据集的测试中,评估结果显示百度PLATO-2的对话效果全面超越了今年谷歌发布的26亿参数模型Meena,以及Facebook发布的27亿参数模型Blender,以更少样本达成了更优的效果。而在中文对话中,更是与微软小冰拉开了极大差距,这无疑意味着百度PLATO-2将对话智能提升到了全新高度。
左图为PLATO-2中文对话演示,右图为《隐秘的角落》剧照
如今,智能对话正以肉眼可见的速度成为人们热爱谈论的话题,不管是《向往的生活》里的国民机灵鬼小度,或者是手机里随叫随到的“hi,siri!”,我们越来越习惯以语言来和机器进行沟通。但不论是家庭、或是手机端,当下有明确功能性的智能助手对比真正能与人类在开放话题中自由对话仍然有差距。
针对这一问题,近年来,基于大量语料和超大规模预训练模型的对话生成技术取得了非常多喜人进展,如谷歌Meena、Facebook Blender等模型依托数十亿级的参数和语料,已能模拟生成与人类非常相近的对话。
但是,庞大的对话语料下隐藏着丰富的信息,同样的对话语境可以有多种不同的回复,这样“一对多”问题是当前对话系统面临的一个重要难点。我们知道,人与人的对话不仅与上下文相关,也和背景知识相关,不论是个人属性、知识背景、或是价值观、情绪状态等。但每段对话背后,对话者的背景知识是模型训练中难以获取的,这就给训练带来了很大噪音。如谷歌Meena、脸书Blender等一般的编码-解码神经网络不论结构多复杂,仍然是一个“一对一”的函数,直接应用很容易产生大量“哈哈,不知道”这类的安全回复。
针对这一问题,百度去年发布的PLATO模型和微软近期发布的OPTIMUS模型中都提到了运用隐变量来建模这种不可见多样性的方法。百度PLATO更独特地采用了离散隐变量建模,运用多样化生成+合适度判断的方式,在三个不同各类型的公开数据集上均取得了SOTA效果。
此次公布的PLATO-2,是百度在PLATO工作基础上的进一步扩展,通过扩展网络增加训练数据集,模型的参数规模扩展到了16亿。同时,PLATO采取了课程学习的方法,解决大规模参数隐变量网络训练的计算消耗问题,逐步优化参数、加快训练效率。
PLATO-2模型结构简图
这样大体量的模型训练,离不开百度深度学习平台飞桨强大的并行能力支持。PLATO-2包含中英文两部分模型。其中,中文模型在12亿中文开放域多轮对话数据集上进行训练,而英文模型则在7亿英文开放域多轮数据集上训练。PLATO-2训练耗费了64张V100卡共3周的时间,依托了飞桨强大并行能力,包括Fleet并行库和Recompute等扩展显存的方式。单个Batch包含52万Token,训练过程中约进行了30万次梯度回传。
为了验证模型效果,百度对PLATO-2进行了全面的静态和动态评估。静态评估为利用现有对话从上文预测下文,以及人机对话、两个模型相互对话形式的中英文动态评估。评测结果显示,百度PLATO在动态和静态评估中均明显超越了微软DialoGPT,谷歌Meena和Facebook Blender模型。更在中文上,与微软小冰在连贯性、信息量、吸引力、人性化
等维度拉开了极大的差距。
在对话演示中,也可以明显看出PLATO不仅在对话内容丰富度上提升明显,还能够就一个话题深入聊天并扩展到相关话题。而此前的最佳模型Blender,则会频繁地转换话题。
PLATO-2英文对话演示和Blender使用相同对话种子对比
基于PLATO-2在对话内容的丰富度和连贯性上展现出了来的高度,有望为智能对话开辟出全新的领域。此外,百度POLATO-2相关英文模型和代码将在Github中陆续开放,中文模型未来也将开放接口服务。也期待在全球领军AI企业的共同努力下,我们将离人机自由对话的终极梦想更近一步。