涵盖1600+任务的巨型Benchmark来了!跑个测试花一周??

7271ca72ef00647cfe123b99778193aa.png

文 | 兔子酱

最近,benchmanking又卷出了新高度,allen AI 前段时间发布了史上最强基准测试——NATURAL-INSTRUCTIONSv2,涵盖了1600+个任务、70+个不同任务类型、50+种不同语言,用来测试生成模型的泛化性。

论文标题
Benchmarking Generalization via In-Context Instructions on 1,600+ Language Tasks

论文地址
https://arxiv.org/pdf/2204.07705.pdf

该基准是由众多NLP从业者共同创建发起,经过多次peer review后保证质量。先来直观感受下它涵盖的任务类型有多丰(恐)富(怖)

338596d75974772146c158d1049d72e2.png

相比之下,PROMPTSOURCE(T0 subset)、FLAN、GPT3-INSTRUCT就是芝麻见绿豆了。

a1747ab62d6ec592ca8e6c1be6ed9468.png

1616个task,76个task类型,16种推理类型, 非英文任务就有576个,每个任务平均有3k+个样本,工程如此浩大(nlper们光训练模型就已经够心累了,难道又要卡在评估上??)NATURAL-INSTRUCTIONSv2到底是何方神物,我们应该怎么使用它呢?下面从一个benchmark应该具备的3要素开始一探究竟吧~

测试目标:生成模型的泛化能力

测试工具:1616个任务

测试对象:T0、GPT3系列、T5、Tk-INSTRUCT

cbc772c4ca98dfd5f6a56cc76adcb0dc.png 基本介绍ae5712170d58fdb64e4731db58970aef.png

如前面所说,本次发布的基准测试系统包括的任务数量之多,类型之丰富,质量把控之严格,都值得提名!作者们从多个维度对进行了对比介绍,比如是否有任务描述介绍,是否有非英任务,任务数据量、是否开源等等。总之就是一句话“没有最多,只有更多”b6390ebe243550d39bfbf55b876658e8.png

首先,所有任务都遵循统一的介绍模版,包括4个部分:

DEFINITOION:一段详细的任务介绍

正例 & 负例:样本和标签,附带简短的解释说明

INSTANCES:正负例集合,每一个实例都包括input和几个候选output。

这些任务是由88位人员从GitHub社区收集来的,覆盖了业界已公布的数据以及新构造的任务,并且添加了详尽的任务介绍,已确保满足读者的需求。其中包括机器翻译、QA,文本分类等任务类型,英语、西班牙语、日语等语种,涉及新闻、对话、数学等多个领域学科,可见其丰富程度。

c689d816f0a55ca192e114ea9738b9cd.pngda905b2e3a0fc3257b88745ff5da04ae.pnge660a67cba35631d20448af84a62b3f5.pngb6686117a1bce89bdcfc5ccc1a28a6fc.png

此外,基于T5,作者们训练出了一个有30亿参数的生成模型Tk-INSTRUCT,在119个英文测试任务上效果(ROUGE-L)超过了1750亿参数的GPT3-INSTRUCT,多语言变种模型mTk-INSTRUCT在35个非英文任务上表现同样超越了GPT3-INSTRUCT。

a1ac27de69bf0b19820ab9c2b44fba66.png跨任务的生成能力评估方法79bf0dd52789337eabddaf48f88bbd43.png

本次发布了如此浩大体量的基准,希望可以评估模型在未知任务(只给定task instruction)上的泛化能力。那具体怎么衡量模型的泛化能力呢?

任务建模

首先,对模型建模可以表示成

4b4a7fcfec402c3eba39d63941bc8283.png

x是输入,It是task instruction(任务指令/指导),模型需要在给定It和x下生成目标答案。task instruction的schema如下图所示:

db30e055aa14cbef0479ad46443ac77b.png

因为本次发布的基准涵盖的任务多且广,作者分成了验证集合和训练集合两个子集,一个用于评估,一个用于监督训练。其中人工挑选的验证集合包括12个类别154个任务,其中119个英文任务,35个跨语种任务。每个任务选出100个随机实例用来评估。

在评估指标上,选用文本生成中广泛使用的ROUGE-L,除此之外,对于输出较短且有限的任务,还引入了Exact Match,衡量模型推理出的字符串和标准输出完全匹配的比率。

评估模型&效果

为了让评估工作更全面可信,我们提供了基线效果、当前最具代表性的模型的效果、理论上限效果,具体评估的模型有三类:

第一类是启发式模型,

Copying Demo Output:用另一个随机实例的输出当作当前实例的预测结果

Copying Instance Input:用当前实例的输入当作输出

第二类是未经finetuned的预训练语言模型T5、GPT3,

第三类是经过instruction-finetuned的T0、GPT3-Instruct、Tk-INSTRUCT&mTk-INSTRUCT。

理论上限效果通过在labeled instances上finetune T5-3B得到。

6e9ec95ca0d7d4f25638ea987d18a2ff.png

实验结论:经过instruction-finetuned的模型表现出了更强的泛化能力。

作者通过进一步实验,比较不同模型规模、训练任务的数量、样本量对效果的影响,发现:

  • 增加训练任务的数量, 模型的泛化性能呈现对数线性增长。

  • 更多的训练样本无助于提高泛化性能。

  • 模型规模越大,泛化效果越好。

6c7042fdd930124850633f4be1c64e31.pnge95047db1cc3409575bf1fb62af4ddc9.pnge152f38606f712d5919422be544a488d.png

虽然以上实验结果表明引入instructions可以提高模型的泛化效果,但instructions中的哪些元素或者元素组合是最有效的呢?为此作者通过控制输入不同的元素,观察模型的表现。

05d714f1728ca5f38589822f6b8b252a.png

加入不同Instruction元素的影响

  • task definition和样本互补,对提升泛化能力有很大帮助

  • 多个元素混合作用,也有一定帮助

  • 加入更多instance区别不大

  • 使用负例有微弱提升,但是instance的说明信息起到负向作用

此外,不同的任务类型的泛化能力也有所差异,其中在大部分任务上T0表现比启发式模型还差,GPT3-instruct和我们instruction-tuned后的模型表现比较好。

fb634279c20d1af2c7a7512fb4b6a4ef.png

d939b8665ff875be4c68067ac424d574.png总结d123d7db1266d7aa6c2456fdd1a401ea.png

总结下来,该工作发布了一个业界最大、最全的评估生成模型泛化能力的基准系统,并对这些数据任务进行了初步实验,展示其用途。(给大佬们鼓掌)

d5dae253c261e2a98ca66787452e71a7.png萌屋作者:兔子酱

一个颜值与智商双高的妹纸,毕业于明光村职业技术学校北邮。和小夕一起打过比赛,霸过榜。目前在百度做搜索算法。

0f22cda31c8d4114b52db001895411a6.png后台回复关键词【入群

加入卖萌屋NLP、CV与搜推广与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

ba5884d502e4b4ec0aa06f8e750bced9.gif

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

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

相关文章

Spring Boot 2.x基础教程:使用MyBatis访问MySQL

之前我们已经介绍了两种在Spring Boot中访问关系型数据库的方式: 使用spring-boot-starter-jdbc使用spring-boot-starter-data-jpa 虽然Spring Data JPA在国外广泛流行,但是在国内还是MyBatis的天下。所以,今天这篇我们将具体说说如何在Spri…

剑指Offer - 面试题5. 替换空格(字符串)

1. 题目 请实现一个函数&#xff0c;把字符串 s 中的每个空格替换成"%20"。 示例 1&#xff1a; 输入&#xff1a;s "We are happy." 输出&#xff1a;"We%20are%20happy."限制&#xff1a; 0 < s 的长度 < 10000来源&#xff1a;力扣&…

信息抽取里程碑式突破!终于要大规模落地了??

文 | 卖萌酱大家好&#xff0c;我是卖萌酱。AI领域常见的工作突破有三类&#xff1a;屠爆了学术界榜单&#xff0c;成为该领域学术层面的新SOTA实现了大一统&#xff0c;用一个架构实现对该领域诸多子任务的统一建模&#xff0c;刷新建模认知将NB的学术界新SOTA变成一件人人可傻…

Spring Boot 2.x基础教程:使用 Thymeleaf开发Web页面

通过本系列教程的前几章内容&#xff08;API开发、数据访问&#xff09;。我们已经具备完成一个涵盖数据存储、提供HTTP接口的完整后端服务了。依托这些技能&#xff0c;我们已经可以配合前端开发人员&#xff0c;一起来完成一些前后端分离的Web项目&#xff0c;或是一些小程序…

《剑指Offer》解题目录(更新完毕)

题目来源于LeetCode上的《剑指Offer》&#xff0c;这里做一个目录方便大家查找。另外有本人的LeetCode解题目录、《程序员面试金典》解题目录、LintCode解题目录 可点击链接查看。updated on 2020.3.18 不懂的概念可以参考《数据结构与算法之美》学习汇总 已解决 75/75 - 简单…

信息抽取里程碑式突破!要大规模落地了?

声明&#xff1a;本文原创首发于公众号夕小瑶的卖萌屋。作者&#xff1a;卖萌酱大家好&#xff0c;我是卖萌酱。AI领域常见的工作突破有三类&#xff1a;屠爆了学术界榜单&#xff0c;成为该领域学术层面的新SOTA实现了大一统&#xff0c;用一个架构实现对该领域诸多子任务的统…

Spring Boot 2.x基础教程:使用Spring Data JPA访问MySQL

在数据访问这章的第一篇文章《Spring中使用JdbcTemplate访问数据库》 中&#xff0c;我们已经介绍了如何使用Spring Boot中最基本的jdbc模块来实现关系型数据库的数据读写操作。那么结合Web开发一章的内容&#xff0c;我们就可以利用JDBC模块与Web模块的功能&#xff0c;综合着…

剑指Offer - 面试题6. 从尾到头打印链表(栈,递归,反转链表)

文章目录1. 题目2. 解题2.1 stack解题2.2 递归2.3 反转链表1. 题目 输入一个链表的头节点&#xff0c;从尾到头反过来返回每个节点的值&#xff08;用数组返回&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,3,2] 输出&#xff1a;[2,3,1]限制&#xff1a; 0 &…

CV未来,路在何方?李飞飞指路!

编 | LRS源 | 新智元【导读】ImageNet见证了计算机视觉发展的辉煌历程&#xff0c;在部分任务性能已超越人类的情况下&#xff0c;计算机视觉的未来又该如何发展&#xff1f;李飞飞最近发文指了三个方向&#xff1a;具身智能&#xff0c;视觉推理和场景理解。在深度学习革命进程…

Spring Boot 2.x基础教程:找回启动日志中的请求路径列表

如果您看过之前的Spring Boot 1.x教程&#xff0c;或者自己原本就对Spring Boot有一些经验&#xff0c;或者对Spring MVC很熟悉。那么对于Spring构建的Web应用在启动的时候&#xff0c;都会输出当前应用创建的HTTP接口列表。 比如下面的这段日志&#xff1a; 2020-02-11 15:32…

剑指Offer - 面试题9. 用两个栈实现队列

1. 题目 用两个栈实现一个队列。队列的声明如下&#xff0c;请实现它的两个函数 appendTail 和 deleteHead &#xff0c;分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素&#xff0c;deleteHead 操作返回 -1 ) 类似题目&#xff1a;LeetCode 232. …

被深度学习框架逼疯的N大瞬间!何解?

文 | 卖萌酱大家好&#xff0c;我是卖萌酱。对一个深度学习从业者来说&#xff0c;无论你的场景是CV、NLP、Speech还是搜广推现金牛&#xff0c;手头使用最高频的工具莫过于深度学习框架&#xff0c;涵盖了模型训练、模型部署&#xff0c;乃至数据标注、数据清洗等环节。站在20…

Spring Boot 2.x基础教程:使用国产数据库连接池Druid

上一节&#xff0c;我们介绍了Spring Boot在JDBC模块中自动化配置使用的默认数据源HikariCP。接下来这一节&#xff0c;我们将介绍另外一个被广泛应用的开源数据源&#xff1a;Druid。 Druid是由阿里巴巴数据库事业部出品的开源项目。它除了是一个高性能数据库连接池之外&…

剑指Offer - 面试题10- I. 斐波那契数列

文章目录1. 题目2. DP解题3. 面试题 08.01. 三步问题4. LeetCode 509. 斐波那契数1. 题目 写一个函数&#xff0c;输入 n &#xff0c;求斐波那契&#xff08;Fibonacci&#xff09;数列的第 n 项。斐波那契数列的定义如下&#xff1a; F(0) 0, F(1) 1 F(N) F(N - 1) F…

关于深度学习框架的忆苦思甜

声明&#xff1a;本文原创首发于公众号夕小瑶的卖萌屋。作者&#xff1a;卖萌酱大家好&#xff0c;我是卖萌酱。对一个深度学习从业者来说&#xff0c;无论你的场景是CV、NLP、Speech还是搜广推现金牛&#xff0c;手头使用最高频的工具莫过于深度学习框架&#xff0c;涵盖了模型…

Spring Boot 2.x基础教程:默认数据源Hikari的配置详解

通过上一节的学习&#xff0c;我们已经学会如何应用Spring中的JdbcTemplate来完成对MySQL的数据库读写操作。接下来通过本篇文章&#xff0c;重点说说在访问数据库过程中的一个重要概念&#xff1a;数据源&#xff08;Data Source&#xff09;&#xff0c;以及Spring Boot中对数…

关于深度学习、NLP和CV,我们写了一本1400页的全栈手册

不知不觉写文章已经四年了。最开始是一个人&#xff0c;后来恰了恰饭&#xff0c;就招揽了很多比小夕厉害的小伙伴一起写。不知不觉已经积累了300多篇了。。三年以来&#xff0c;我跟小伙伴们原创的300篇深度学习、NLP、CV、知识图谱、跨模态等领域的入门资料、子方向综述、201…

基于sklearn的LogisticRegression二分类实践

文章目录1. 预备知识2. 实践代码3. 结果对比3.1 正态分布3.2 均匀分布3.3 修改Pipeline3.3.1 删除多项式转换3.3.2 删除归一化项3.3.3 删除多项式转换&归一化3.4 总结4. 附4.1 matplotlib.pyplot.contourf4.2 numpy 之 np.r_[a,b], np.c_[a,b]本文使用 sklearn的逻辑斯谛回…

Spring Boot 2.2 正式发布,大幅性能提升 + Java 13 支持

之前 Spring Boot 2.2没能按时发布&#xff0c;是由于 Spring Framework 5.2 的发布受阻而推迟。这次随着 Spring Framework 5.2.0 成功发布之后&#xff0c;Spring Boot 2.2 也紧跟其后&#xff0c;发布了第一个版本&#xff1a;2.2.0。下面就来一起来看看这个版本都更新了些什…

剑指Offer - 面试题10- II. 青蛙跳台阶问题

1. 题目 一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e97&#xff08;1000000007&#xff09;&#xff0c;如计算初始结果为&#xff1a;1000000008&#xff0c;请返回 1。 示例 1&#xff1a…