facebook对话链接_Facebook已开源其最新的聊天机器人Blender

它是一种更具人性化的聊天机器人,并击败了Google成为世界上最好的聊天机器人

54d940ef0791621e52e52bbbc5a2a8e1.png

> Photo by Alex Haney on Unsplash

4月29日,Facebook AI Research(FAIR)宣布已构建并开源了一个新的聊天机器人Blender。

最先进的开源聊天机器人

Facebook AI拥有开源的Blender,这是有史以来最大的开放域聊天机器人。 在以下方面,它的表现要优于其他人:

根据FAIR的说法,Blender是有史以来最大的开放域聊天机器人。 它也是第一个使用多种对话技巧构建的聊天机器人,包括承担角色,表现同理心和讨论几乎任何主题的能力。 FAIR声称Blender击败了Google的Meena,成为世界上最好的。

如果您想了解更多信息,请查看Github和Paper。

· GitHub:https://parl.ai/projects/blender/

· 论文:https://arxiv.org/abs/2004.13637

击败Google成为世界上最好的

FAIR声称Blender是最大的开放域聊天机器人,也是世界上最好的聊天机器人。

GitHub上提供了经过预先训练和微调的Blender模型。 该模型包含多达94亿个参数,是最大的现有系统(Google最新的聊天机器人Meena)的3.6倍。

ce6c700a12f3874c301d8b80ab86a55e.gif

> A conversation with Facebook Blender

当Google一月份发布Meena时,Google称其为世界上最好的聊天机器人。 现在,根据Facebook自己的成对人类评估,

· 75%的评估人员发现Blender比Meena更具吸引力,

· 67%的评估人员认为Blender的表现更像人类。

· 最初有49%的评估人员无法区分聊天机器人Blender和真实人类。

其他聊天机器人与Blender之间的主要区别在于Blender能够承担角色,表现同情心并讨论几乎任何主题。

在撰写本文时,Google尚未对此声明发表评论。

Blender食谱

据FAIR称,Blender令人印象深刻的结果的秘诀是:

· 庞大的训练数据,

· 混合技能的其他数据集

· 生成策略。

与其他自然语言处理项目一样,Blender接受了大规模的培训,涉及15亿次公开Reddit对话。

此外,该模型使用混合技能对话(BST)进行了微调,从而增强了以下技能的模型:

· 进行个性化使用(PersonaChat)

· 参与知识的使用(维基百科的向导)

· 展示同理心(情感对话)

· 能够无缝融合所有三个(BST)

在训练和微调过程中,使用了许多可能的生成策略,包括波束搜索,下一个令牌采样,n-gram阻塞和仔细选择搜索超参数。

b83770d0ebde87bfacbddf1891e3812a.png

> The 9.4B parameter model requires at least two 32gb V100 GPUs to interact with.

Blender仍然会犯错误

尽管效果看起来不错,但Blender的技能仍远未达到对话系统中人类水平的智能。

到目前为止,该团队仅评估了14轮对话流的聊天机器人。 研究人员表示,在几天或几周的谈话过程中,Blender可能会反复出现且乏味。

另一个问题是,Blender无法记住以前的对话。 Blender使用标准的Transformer架构,该架构对128个BPE令牌的历史记录有严格的限制,因此不能扩展他们从用户那里或从用户那里学到的东西,请参考他们之前说过的话。

Blender还倾向于整理事实,这是深度学习的一个限制,因为它基于统计相关性而不是知识来生成句子。

防止聊天机器人使用有毒或偏颇的语言

你还记得泰吗? Tay是一个聊天机器人,最初是由Microsoft Corporation在2016年3月23日通过Twitter发布的; 当该机器人开始通过其Twitter帐户发布煽动性和攻击性推文时,它引起了随后的争议,导致微软仅在启动后16小时关闭了该服务。

3634970051392414379caafc9288c513.png

> "Tay" went from "humans are super cool" to full nazi in less than 24hrs

任何聊天机器人都面临着同样的挑战:如何防止其讲有毒或偏颇的语言。 这些聊天机器人经过训练可以模仿人与人之间的对话,有时可以从人与人的数据中学习不良的功能。

FAIR一直试图通过要求群众工作者过滤掉有害的语言来解决此问题。 但是,由于Reddit数据集太大,这似乎是不可能完成的任务。 此外,研究小组还尝试使用分类器在显示有毒语言之前对其进行检测,但他们指出,此类分类器仍然是不会出错的。

请享用!

就是这样。 谢谢阅读。

如果您想玩耍并阅读详细信息,请再次点击以下链接

· GitHub:https://parl.ai/projects/blender/

· 论文:https://arxiv.org/abs/2004.13637

(本文翻译自B. Chen的文章《Facebook has open-sourced its latest chatbot Blender》,参考:https://towardsdatascience.com/facebook-has-open-sourced-its-latest-chatbot-blender-b680eb97bfe2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556214.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DOM操作获取标签方法、数据类型

一、操作 html 页面 document.getElementById(box); // 选中一个id为box的标签可以理解为从文档里面 通过一个 id:box 来获取 一个元素 // > document 文档 ⇒ get 得到 ⇒ Element 元素 ⇒ By 通过 ⇒ id:box 二、操作标签内容: innerHTML – 会解析标签 var…

基于easypoi实现自定义模板导出excel

项目中需要做一个统计报表功能,实现各种Excel报表数据导出。要求表头能够动态配置,表数据通过存储过程实现,也要求能够动态配置。 技术选型: 由于之前在项目中使用过easypoi,相对于原生apache poi,能够用很…

vb6 datagrid表格垂直居中_老板不喜欢看你的Excel表格,学完这些美化技巧,早日升职加薪...

Excel报表是工作中经常要制作的,给老板看的表格越是简单明了越好,工作得到认可,给你升职加薪,如果你发给你老板的表格是这样的:对齐方式各种各样,数据看起来也很枯燥,仅需简单4点,轻…

typeof 数据类型转换

typeof 可以转换的数据类型有: number string boolean object undefined function null 原来是给对象占位的,代表空对象。后来JavaScript设计者也没改过来,所以 typeof 一直认为 null 的类型是 object const num null; num // object一、 …

Java接口修饰符详解

接口就是提供一种统一的”协议”,而接口中的属性也属于“协议”中的成员。它们是公共的,静态的,最终的常量。相当于全局常量。抽象类是不“完全”的类,相当于是接口和具体类的一个中间层。即满足接口的抽象,也满足具体…

python深度复制列表_Python-如何深层复制列表?

我对列表副本有一些问题:所以之后我得到了E0来自get_edge,我做的副本E0通过调用E0_copy list(E0)。我猜这里E0_copy是的较深的副本E0,我通过E0_copy了karger(E)。但是在主要功能上。为什么print E0[1:10]for循环之前的结果与for循环之后的结…

数据转换之 Number

看起来不是数组的转换为数字之后就不是数字(NaN) 只有 才会进行字符串拼接 - * / 都不会 let num Number(123); console.log(typeof(num) : num); // number : 123let demo true; let num Number(demo); console.log(typeof(num) : num); /…

sqlite3修改表内容python_Python sqlite3数据库模块使用攻略

Python作为数据科学主流语言,被广泛用于数据读存、处理、分析、建模,可以说是无所不能。数据一般存放在本地文件或者数据库里,之前介绍过如何使用python读取本地文件,也对# PyMySQL、cx_Oracle等数据库连接库做过简单的使用分享。…

parseInt(string, radix)

一、 变成 整形数字 二、 当字母和数字混杂的时候,从数字位开始看,一直看到非数字位为止,如果这个混杂的字符串不是以数字开头,那么就是 NaN 三、 第二个参数,表示将变量的值以多少进制(范围2~32&#xff0…

查看论坛隐藏链接_软连接与硬链接的区别

点击上方蓝色“后端开发杂谈”关注我们, 专注于后端日常开发技术分享硬链接与软连接的联系与区别文件都有文件名和数据, 这在Linux上被分为两部分: 用户数据(user data) 与 元数据(metadata). 用户数据, 即文件数据块( data block), 数据块是记录文件真实内容的地方; 元数据是文…

parseFloat(string)

一、 将字符串转换为浮点数(小数) 二、 能正常输出小数 三、只看除了一个点以前的非数字位为止 let demo 100.1; let num parseFloat(demo); // 能正常输出小数 console.log(typeof(num) : num); // number : 100.1let demo 100.1.2; let num p…

python的合法语句_Python练习2

问答:1. 写出python中的几种分支结构,并解释其执行过程;(1) if:if 表达式: #条件语句 #输出(2)if...else...if 表达式: #条件语句 #输出else: #其他条件语句 #其他输出(3)if...elif...else...if 表达式: #条件1语…

java日志框架JUL、JCL、Slf4j、Log4j、Log4j2、Logback 一网打尽

为什么程序需要记录日志 我们不可能实时的24小时对系统进行人工监控,那么如果程序出现异常错误时要如何排查呢?并且系统在运行时做了哪些事情我们又从何得知呢?这个时候日志这个概念就出现了,日志的出现对系统监控和异常分析起着…

python继承问题_Python类的继承问题

Python相比较Java,C之类的高级语言是相对来说比较容易的,但能把Python学的很好的人却不多。虽然Python容易,但python的学习道路并不简单,可借助的资料不多,能把python讲的明白的人更是不多。作为一门高级语言&#xff…

String(min)

不管括号里面是啥,都尝试转换为字符串 let demo 1234.1; let num String(demo); console.log(typeof(num) : num); // string : 1234.1let demo undefined; let num String(demo); console.log(typeof(num) : num); // string : undefinedlet demo nu…

SpringBoot项目中Controller层代码编写规范整理

文章目录Controller层代码规范SpringMVC接口定义要注意以下常见的几种问题1. 返回格式不统一2. 没有考虑失败情况3. 出现和业务无关的输入参数Controller层代码规范 主要的内容是就是接口定义里面的内容,你只要遵循里面的规范,controller就问题不大&…

如何从一张图片里取出其中一部分_如何鉴别坑人的锌合金龙头

01.对大部分人而言,锌合金龙头是一个熟悉又陌生的词儿。当我们提起锌合金龙头时,很多人会一脸茫然的回答:啥?锌合金龙头?没听过!不认识!但在日常生活中锌合金龙头的出现率可不低!不信…

Boolean()

一、 尝试把括号里面值转换为布尔值。 二、 只要是六个表示 false 之外的(false / null / undefined / NaN / ""),都是 true let demo undefined; let num Boolean(demo); console.log(typeof(num) : num); // Boolean : f…

SpringBoot框架中各层(DTO、DAO、Service、Controller)理解

粗略理解 View层→Controller层(响应用户请求)→Service层(接口→接口实现类)→DAO层,即Mapper层(抽象类:xxxMapper.java文件,具体实现在xxxMapper.xml)→Model层&#…

verilog找不到模块_工欲善其事,必先利其器 verilog编辑器搭建

一款合适的编辑器能够大大提高我们代码的编写速度,而sublime就是一款非常强大的编辑器,它在拥有丰富的插件的同时,也具备非常美型的外观。sublime是一款免费的编辑器,虽然不进行购买的话会时不时地提示购买,但是无视就…