AllenAI | 用GPT-3帮助增建数据,NLI任务直接提升十个点!?

f3fb3ea9f13ed569b27f1ec1d03b8f39.png

文 | iven
编 | 小轶

用机器构建数据集,这件事可能比机器学习诞生的还要早,很多人做过很多工作。怎样让机器参与进来?前人的工作可以分成两类思路:一类是以远程监督为代表,让机器来标注,主要目的在于得到更多的数据;另一类是以主动学习为代表,机器在数据集中选出最难的样本,让人标注,主要目的在于得到更高质量的数据。

在大模型大数据的今天,前一类思路成为了主流:机器标注虽然质量不如人,但能以最低的成本标注最多的数据。数据中的噪声就依靠大模型的鲁棒性来消化,庞大的数据量似乎更有用。

近日,华盛顿大学 Yejin Choi 组的研究又对这个问题进行了反思。怎样才能在机器参与构建数据集的流程里,最好地发挥机器的效用呢?机器与人应该是互补的,而不是让机器代替人来标注。

人类在标注大规模数据的时候,很容易有这样一个局限:一个人设计数据时,经常只依赖几种重复的模板。这样尽管标注了大量的数据,但数据集会缺乏语言学上的多样性。相比于一个标注团队,GPT3 生成的语料则会丰富得多。而相比于机器,人的优势在于更高的标注准确率。

基于此,这篇文章提出了一个全新的构建数据集流程:基于一个现有的数据集,挑选出里面对机器困难的样本,让 GPT3 生成更多更丰富的同类困难样本,让人来检查和优化

作者采用这套人机合作的数据构建方式,以较低的人力成本构建了超大规模的自然语言推断(NLI)新数据集 WANLI。实验表明,在 WANLI 数据集上训练的模型会有更好的性能。最突出的是,训练后模型所具备极强的跨领域迁移能力:迁移到十分内卷的 NLI 数据集 HANS 和 ANLI 上做测试,也都分别提升了 11% 和 9% 的准确率。

1b5debc08310cd0e642dd98eaaef36a1.png

论文题目:
WANLI: Worker and AI Collaboration for Natural Language Inference Dataset Creation

论文链接:
https://swabhs.com/assets/pdf/wanli.pdf

53eb63e29190b1901e86ef102856e637.png人机如何合作?e40a6432b1c36baf96b9674c0e021ae2.png

整个方法的流程可以分成四个部分:

  • 找难的样本;

  • 让 GPT3 生成困难样本的同类型样本;

  • 机器自动过滤;

  • 人工检查和优化。

整体很符合直觉,但是我们看到会有两个疑问:

1. 什么是困难的样本?

作者们之前的工作[1] 为数据集设计了一张 data map:

671351a0966abfcc95ae1d9f9b06a325.png

图中每个点代表一个样本:

  • 纵坐标是模型预测 logits 的大小,表示了模型对预测结果的置信度(confidence);

  • 横坐标是模型在不同 epoch 预测这个样本时的置信度方差

  • 点的颜色代表一个样本在不同 epoch 预测中正确率。蓝色正确率较低,红色较高。

直觉上,我们会认为“置信度低”的就是难以学习的样本。实际上,这些样本大多是标注错误的样本点。而“方差大”的样本才是真正对模型困难的

作者在原始数据集中选了最困难的样本,作为后面生成数据的种子样本。

2. 怎样界定“同类型”样本?怎样让 GPT3 生成困难样本的同类型样本?

作者对于“同类型”样本的界定并不是说在语意层面的相似度出发,做一些数据增强。而是说,对于这一类“难题”,再给模型出一些在逻辑层面(reasoning)类型相同的难题,比如:

dcff52e3d505ba983617aab44c53907d.png

种子样本中,前提说“5% 没有 xxx”,假设说“95% 有 xxx”,两句话之间是数学上的互补关系,因此推断成立。我们要生成的样本也应该具有前提和假设的数学互补关系,这样才是同类困难的样本。

怎样生成同类困难样本?本文作者想到了 GPT3 的 in-context learning。前面给出几个同类的样本作为示例(prompt),后面就让 GPT3 自由生成同类的新样本。可问题又来了,怎样在原数据集里找到这些同类型的样本呢?

作者采取了非常简单的方法:如果两个样本 [CLS] 的表示是接近的,那么就认为这两个样本是上面定义的同类样本。对于每个种子样本,都在原来的数据集中找出同样标签最近的 k 个样本,作为输入 GPT3 的 prompts。

作者基于 MultiNLI 数据集,使用上面的方法生成了 WANLI 数据集。WANLI 数据集只取了 MultiNLI 中四分之一最难的样本作为种子样本,最终 WANLI 的规模也是 MultiNLI 的四分之一。

f73f40a74c79630f9a0b8d601cb76ebe.png用 WANLI 训练的效果?baa12e18f8e584313f03d41c814c5edb.png

fd247726a1032976cb57c6d2348a98af.png

这张图是主实验的结果。作者使用同样的 RoBERTa-large 模型,在不同的数据集上训练和评测。表格纵坐标代表训练的数据集,横坐标代表测试的数据集。彩色的格子代表训练和测试在不同的数据集,即 out-of-domain 的情况。

整个表格分成了上中下三个部分:

  • 上面的部分是只使用 MultiNLI 或者 WANLI 训练,四分之一的数据量训出了显著更好的结果;

  • 中间的部分是用 MultiNLI 融合其它数据集训练。其中 + 指使用两个数据集的和,◇ 指用后面数据集随机替换前面数据集中的样本。结果表明,不是数据越多越好,而是越多困难样本,模型学习结果越好。甚至只用 WANLI 训练,效果是最好的;

  • 下面的部分是 WANLI 和 Adversial NLI(ANLI)对比。ANLI 标注了在 MultiNLI、SNLI、FEVER-NLI 上训练的模型无法预测正确预测的例子。实验发现,本文生成数据集的思路也可以对 ANLI 构成补充。

为了验证生成的数据真的是“难题”,让模型学到了 NLI 需要的信息,而不是因为别的什么巧合提升了性能,作者设计了好几个实验,分别证实了:

  • 不是因为前提中的某些 pattern 造成的性能提升;

  • 不是因为生成的句子中某几个词影响了预测的结果;

  • 不会是因为前提和假设语意相似度就能反应推断结果(即两句话越相似,就越有蕴含关系)。

于是我们大体上可以判定,这个生成数据集的方法是有效的。

5d34e85a3d75d8e3129150156f08f966.png总结bbfc8ea4685a061a181e900447d29a55.png

最近越来越多的工作打破了"数据越多越好"的迷信想法。这篇文章给出了一个靠谱的方法,借助 GPT3 生成比人类标注更难的数据,可以说是数据工程之路上的又一步前进。

但生成的样本仍有很多问题,比如会生成重复的话或者自相矛盾的话,有些生成的样本对于 NLI 任务也很难判断是否蕴含。另外,in-context learning 生成的样本大约有 15% 与 prompt 的类别是不一致的,这就不得不引入后续的人的标注。是否能引入约束,让机器同时做好"选择样本"和"标注样本"这两件事,将是后人工作的研究重点。不知道什么时候才能有方法,让机器构建数据集的两种思路统一。

8d6aa94befc79433ba4ab68ac0c0ad14.png萌屋作者:𝕚𝕧𝕖𝕟

在北大读研,目前做信息抽取,对低资源、图网络都非常感兴趣。希望大家在卖萌屋玩得开心 ヾ(=・ω・=)o

作品推荐

  1. 老板让我用少量样本 finetune 模型,我还有救吗?急急急,在线等!

  2. 谷歌:CNN 击败 Transformer,有望成为预训练界新霸主!LeCun 却沉默了...

  3. 中文 BERT 上分新技巧,多粒度信息来帮忙

  4. 恕我直言,很多小样本学习的工作就是不切实际的

  5. 你的 GNN,可能 99% 的参数都是冗余的

5f849a147765972eb3c550e100abbefa.png后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

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

480006e0c89885940ce90b94cc271ae2.gif 33155a6414c9e303364fa3a59c3132be.png

[1] Swabha Swayamdipta, et. al., Dataset Cartography: Mapping and Diagnosing Datasets with Training Dynamics, EMNLP 2020, https://aclanthology.org/2020.emnlp-main.746/

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

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

相关文章

论文浅尝 | CLIP-Event: 用事件结构连接文本和图像

笔记整理:康婧淇,东南大学硕士,研究方向为多模态事件抽取、自然语言处理。动机视觉语言预训练模型通过理解图像和文本之间的排列组合,在支持多媒体应用方面取得了巨大成功。虽然现有的视觉语言预训练模型主要侧重于理解图像中的物…

LeetCode 402. 移掉K位数字(贪心,单调栈)

1. 题目 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 注意: num 的长度小于 10002 且 ≥ k。 num 不会包含任何前导零。 示例 1 : 输入: num "1432219", k 3 输出: "1219" 解释: 移除掉…

Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少团队的支持;同时,由于Spring …

忙累了躺平,躺醒后该干点啥

文 | 一只菜鸡前几天刷到 微调 的一些碎碎念,觉得自己的2021年还是有蛮多收获的,于是在各位卖萌屋小伙伴的鼓励下,就有了本文。收获很多,我从中挑选出来自我感觉对读者来说比较有用的三点。1. 放低期待,学会适当躺平我…

论文浅尝 | P-Adapters: 从具有不同提示的语言模型中鲁棒地提取事实信息

笔记整理:田玺,浙江大学硕士研究生。研究方向:知识图谱、自然语言处理论文地址:https://openreview.net/forum?idDhzIU48OcZh,录用于ICLR2022摘要之前的工作发现,从大型语言模型(LLMs&#xff…

LeetCode 470. 用 Rand7() 实现 Rand10()(随机概率)

1. 题目 已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。 不要使用系统的 Math.random() 方法。 示例 1: 输入: 1 输出: [7]示例 2: 输入: 2 输出: [8,4]示例 3: 输入: 3 输出: [8,1,10]提示: rand…

Spring Cloud Stream同一通道根据消息内容分发不同的消费逻辑

应用场景 有的时候,我们对于同一通道中的消息处理,会通过判断头信息或者消息内容来做一些差异化处理,比如:可能在消息头信息中带入消息版本号,然后通过if判断来执行不同的处理逻辑,其代码结构可能是这样的…

图谱实战 | 再谈图谱表示:图网络表示GE与知识图谱表示KGE的原理对比与实操效果分析...

转载公众号 | 老刘说NLP知识图谱嵌入是一个经典话题,在之前的文章《知识表示技术:图谱表示VS图网络表示及基于距离函数的表示学习总结》中,围绕知识图谱嵌入学习这一主题,对比了知识图谱嵌入与图网络嵌入的异同。而在实际工作中&a…

LeetCode 1247. 交换字符使得字符串相同

1. 题目 有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 “x” 和 “y”,你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候,你都可以在两个字符串中各选一个字符进行交换。 交换只能发生在两个不同的字…

图深度学习前沿工作汇总与解析

图深度学习除了可以应用于标准图推理任务以外,还广泛应用于推荐、疾病或药物预测、自然语言处理、计算机视觉、交通预测等领域。可见,基于图的深度学习不仅有助于挖掘现有图数据背后的丰富价值,而且还通过将关系数据自然地建模为图&#xff0…

Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试功能:重新入队。 动手试试 准备一个会…

图谱实战 | 华农夏静波:深层语义知识图谱在药物重定位中的应用

转载公众号 | DataFunSummit分享嘉宾:夏静波 华中农业大学 副教授编辑整理:王金华 电科32所出品平台:DataFunTalk导读:自新冠病毒肺炎疫情发生以来,由于传统药物研发周期长,药物重定位(老药新用…

LeetCode 738. 单调递增的数字(贪心)

1. 题目 给定一个非负整数 N&#xff0c;找出小于或等于 N 的最大的整数&#xff0c;同时这个整数需要满足其各个位数上的数字是单调递增。 &#xff08;当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。&#xff09; 示例 1…

晋升挂了,leader说不是我技术不行

本文授权转载自公众号“算法圈的小破事”&#xff0c;点击以上卡片进行关注大家好&#xff0c;我是在互联网危险边缘疯狂试探的皮皮虾。今天跟大家分享一个故事。晋升去年秋季&#xff0c;我参加了校招入职以来的第一场晋升答辩。答辩前&#xff0c;我比来比去&#xff0c;觉得…

Spring Cloud Stream消费失败后的处理策略(二):自定义错误处理逻辑

应用场景 上一篇《Spring Cloud Stream消费失败后的处理策略&#xff08;一&#xff09;&#xff1a;自动重试》介绍了默认就会生效的消息重试功能。对于一些因环境原因、网络抖动等不稳定因素引发的问题可以起到比较好的作用。但是对于诸如代码本身存在的逻辑错误等&#xff…

论文浅尝 | DEKR: 一个基于描述增强知识图谱的机器学习方法推荐系统

笔记整理&#xff1a;刘尧锟&#xff0c;天津大学硕士链接&#xff1a;https://dl.acm.org/doi/pdf/10.1145/3404835.3462900动机面对大量的机器学习&#xff08;ML&#xff09;方法&#xff0c;为给定的数据集和任务选择合适的方法是一个挑战。一般来说&#xff0c;ML方法或数…

Meta AI 发布 data2vec!统一模态的新里程碑!

文 | ZenMoore编 | 小轶如果让大家举一个最成功的自监督模型的例子&#xff0c;尤其对于各位 NLPer&#xff0c;肯定毫不犹豫地祭出我大 BERT. 想当年 BERT 打了一个名叫 MLM (Masked Language Model) 的响指&#xff0c;直接成了 NLP 灭霸。视觉界、语音界闻声而来&#xff0c…

LeetCode 946. 验证栈序列(栈)

1. 题目 给定 pushed 和 popped 两个序列&#xff0c;每个序列中的 值都不重复&#xff0c;只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时&#xff0c;返回 true&#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;…

Spring Cloud Stream消费失败后的处理策略(一):自动重试

之前写了几篇关于Spring Cloud Stream使用中的常见问题&#xff0c;比如&#xff1a; 如何处理消息重复消费如何消费自己生产的消息 下面几天就集中来详细聊聊&#xff0c;当消息消费失败之后该如何处理的几种方式。不过不论哪种方式&#xff0c;都需要与具体业务结合&#xf…

会议交流 | DataFunSummit 2022:图机器学习在线峰会

深度学习模型是当今人工智能研究的核心。众所周知&#xff0c;对欧几里得数据&#xff08;例如图像&#xff09;和序列数据&#xff08;例如文本&#xff09;具有颠覆性学习能力的深度学习技术不能直接适用于图结构数据。这种差距推动了图深度学习研究的浪潮&#xff0c;在学术…