您的位置:首页>科技>

Facebook开源Blender 一个聊天机器人人们说感觉更人性化

Facebook的AI和机器学习部门Facebook AI Research(FAIR)今天详细介绍了名为Blender的综合AI聊天机器人框架的工作。FAIR声称,Blender是GitHub上最大的开放域聊天机器人,它是GitHub上开放源代码最多的聊天机器人,其性能优于现有的生成对话的方式,同时“让人感到更人性化”。

FAIR说Blender是将同情心,知识和个性结合成一个系统的多年研究的高潮。为此,受益于改进的解码和技能融合技术的基础模型包含多达94亿个参数(定义给定问题的技能的配置变量),是以前系统的3.6倍。

Blender承诺在企业,工业或面向消费者的环境中,与对话式AI系统(如Alexa,Siri和Cortana)的交互将比以往更加自然。那是因为他们能够提出并回答各种各样的问题。显示有关特定主题的知识;并根据情况表达同情,认真或好玩的情绪。

融合技能和生成策略

为了实现Blender的最先进性能,FAIR的研究人员专注于两个工程步骤:混合技巧和生成策略。

“混合技能”是指选择性能优于缺少调整功能的较大模型的任务。正如FAIR研究人员在论文中指出的那样,可以通过对数据模型进行微调(强调所需的对话技巧)来实现聊天机器人的改进。事实证明,调整还可以最大程度地减少从大数据集中学到的不良特性,例如毒性。

关于生成策略,选择解码算法(用于从语言模型生成文本的算法)会对聊天机器人的响应产生巨大影响。由于漫游器响应的时间长度倾向于与人类对质量的判断相对应,因此需要达到适当平衡的解码器。响应时间过短通常会被认为是呆板或缺乏兴趣,而响应时间过长则表示感到困惑或分心。

在这些工程步骤的过程中,研究人员测试了三种类型的模型体系结构,所有这些模型体系结构均以Transformers为基础。变压器-Google的一项创新-包含神经元(数学功能),这些神经元以层状排列,可以传输来自输入数据的信号并调整每个连接的强度(权重),就像所有深度神经网络一样。这就是他们提取特征并学习进行预测的方式,但是变形金刚也有注意的地方。这意味着每个输出元素都连接到每个输入元素,并且它们之间的权重是动态计算的。

首先是一个检索器模型,该模型在输入对话历史(或上下文)作为输入的情况下,通过对大量候选响应进行评分并输出评分最高的一个来选择下一个对话响应。FAIR研究人员采用了一种多编码器体系结构,该体系使用每个候选响应所伴随的表示对上下文的特征进行编码,与跨编码器等其他体系结构相比,他们说,这种性能提高了性能,同时保持了“易处理”的计算能力。

第二个模型是生成器,它生成响应而不是从固定集中检索响应。从大小上考虑了三个模型,范围从9000万个参数到27亿个参数到94亿个参数。

第三个模型试图解决生成器的问题,即生成器合成重复响应和“使知识”“半透明”的趋势。它采用了“检索和精炼”(RetNRef)方法,其中上述检索模型在提供对话历史记录时会产生响应,然后将其附加到生成器的输入序列中。通过这种方式,生成器学习了何时复制来自检索器的响应元素,何时不复制,从而可以输出更有趣,引人入胜且“充满活力”的响应。(检索器模型会产生由人工编写的响应,与标准的生成模型相比,该响应往往包含更生动的语言。)

FAIR团队将“向导生成”模型与另一个检索器配对,一起确定了何时将知识纳入聊天机器人的响应中。这两个模型产生一组初始知识候选者,然后对这些候选者进行排名,然后选择一个句子并将其用于条件响应的生成。分类器根据对话选择是否执行检索,从而避免在不需要时提供知识。

解码

对于生成模型,FAIR研究人员使用波束搜索解码器方法来生成对给定对话上下文的响应。波束搜索维护一组称为假设的部分解码序列,这些序列被附加以形成序列,然后进行评分,因此最佳序列冒泡到顶部。

为了控制聊天机器人的响应长度,FAIR团队考虑了两种方法:对最小生成长度的硬约束和预测响应长度并将最小生成长度约束设置为其相应预测的分类器。后者更为复杂,但导致对问题的回答的长度可变,从而确保聊天机器人在看起来适当时可以提供较长的回答。

训练模型

为了准备组成Blender的各种模型,研究人员首先进行了预训练,这是针对特定任务调节机器学习模型的步骤。他们使用了Facebook自己的Fairseq,该工具包支持自定义语言模型的训练,其Reddit语料库中的数据样本包含15亿条评论(其中两套360,000条评论分别用于验证和测试),并为已知的非英语bot修剪。 subreddit,已删除的评论,带有URL的评论以及一定长度的评论。

接下来,FAIR团队使用另一个Facebook开发的套件ParlAI对模型进行了微调,该套件旨在训练和测试对话模型。选择的一个训练语料库是ConvAI2,其中包含140,000言语,其中成对的志愿者通过提问和回答友善问题相互认识。另一个是“善解人意的对话”,其中包含5万种基于情感情境的众包话语。另一个数据集-维基百科向导-包含1,250个主题的194,000个语音,其中每个对话都从随机选择的主题开始,目标是展示专家知识。

第四个微调数据集-混合技能讨论-旨在融合前三组(ConvAI2,同理心对话和维基百科向导),以在对话期间结合各自的技能。在这里,有76,000条话语是由有指导和无指导的人类说话者收集的,在这种情况下,有指导者可以选择受机器人训练的话语,这些机器人根据三个独立的数据集进行训练。

评价

培训后,研究人员通过将Blender的性能与Google最新的Meenachatbot(具有26亿个参数的机器学习模型)进行比较来评估其性能。人类志愿者的任务是回答两个问题:“您想和谁进行长时间的交谈?”和“哪个说话者听起来更人性化?”—给出了100条来自Meena的公开发布和随机日志,以及Blender生成的日志数量相同。在每种情况下,向志愿者展示了人类与各自的聊天机器人配对进行的一系列对话。

对话的主题从烹饪,音乐,电影和宠物到瑜伽,素食主义者,乐器和购物中心不等-Blender模型经常在被询问时详细介绍并命名相关商店,乐队,电影,演员,宠物种类和宠物名称。在一个示例中,Blender向Bach与Justin Beiber进行了比较的问题提供了一个细微的答案,同时要求Blender写一首歌确实产生了歌词-尽管没有什么特别诗意。

当有显示Meena动作的聊天和显示Blender动作的聊天时,67%的评估者表示,性能最佳的Blender支持的聊天机器人-一种生成模型,其中包含在Blended Skill Talk语料库中预先训练的94亿个参数-听起来更人类。大约75%的人表示,他们宁愿与27亿参数的微调模型进行长时间的交谈,也不愿与Meena进行长时间的交谈。在人与人之间以及人与Blender对话之间的A / B比较中,志愿者表达了对49%的时间通过混合技能对话进行微调的模型的偏爱,而仅对公共领域对话进行训练的模型是仅在36%的时间里喜欢。

有问题的是,进一步的实验表明,Blender有时会从训练语料库(通常是Reddit评论)中以冒犯性样本的方式做出回应。FAIR研究人员表示,微调“混合技能对话”数据集可以在一定程度上缓解这种情况,但是要全面解决该问题,则需要使用不安全的单词过滤器和一种安全分类器。

当然,FAIR研究人员并没有声称已经解决了开放域对话的问题。实际上,它们概述了Blender的几个主要限制:

词汇用法:即使是最好的Blender模型,也倾向于过于频繁地生成常用短语,例如“您喜欢”,“很多乐趣”和“有任何爱好”。

非平凡的重复:模型经常重复对他们说的话。例如,如果对话伙伴提到宠物狗,他们会说他们有一只宠物狗,或者说他们喜欢与与之交谈的人相同的乐队。

矛盾和健忘:Blender模型相互矛盾,尽管在较大的模型中矛盾程度较小。他们也没有做出逻辑上的联系,即他们不应该提出之前已经提出的问题(以避免出现“遗忘”)。

知识和事实正确性:Blender模型容易出错,特别是在深入探讨主题时,这相对容易。

对话的长度和记忆力:FAIR研究人员说,在几天或几周的对话过程中,Blender对话可能会变得乏味而重复,尤其是考虑到Blender不能记住较早的对话。

更深入的理解:Blender模型缺乏通过进一步对话来学习概念的能力,并且它们无法扎根于现实世界中的实体,动作和体验。

要解决所有这些问题,可能需要新的模型架构,FAIR团队表示正在探索。它还着重于建立更强大的分类器,以过滤掉对话中的有害语言,以及减少聊天机器人中性别偏见的技术。

Facebook在博客中写道:“我们对改善开放域聊天机器人所取得的进展感到兴奋,”“但是,建立一个像人一样可以聊天的真正智能的对话代理仍然是当今AI面临的最大挑战之一……在该领域的真正进步取决于可复制性-利用最佳技术的机会。我们认为,发布模型对于全面,可靠地洞察其功能至关重要。”

GitHub上提供了经过预训练和经过微调的Blender模型,其中包含9000万个参数,27亿个参数和94亿个参数,以及用于与机器人进行交互的脚本(内置安全过滤器)。ParAI中提供了所有用于模型评估和微调的代码,包括数据集本身。

免责声明:本文由用户上传,如有侵权请联系删除!