最新研究,GPT-4暴露了缺点!无法完全理解语言歧义!
夕小瑶科技说 原创
作者 |智商掉了一地、Python
自然语言推理(Natural Language Inference,NLI)是自然语言处理中一项重要任务,其目标是根据给定的前提和假设,来判断假设是否可以从前提中推断出来。然而,由于歧义是自然语言内在的特征,处理歧义也是人类语言理解的重要组成部分。由于人类语言表达的多样性,歧义处理成为解决自然语言推理问题的难点之一。当前,各种自然语言处理算法被应用到问答系统、语音识别、智能翻译和自然语言生成等场景中,但即使有这些技术,完全解决歧义仍然是一个极具挑战性的任务。
对于 NLI 任务,大型自然语言处理模型如 GPT-4 等确实面临着挑战。其中一个问题是语言歧义导致模型难以准确理解句子的真正含义。此外,由于自然语言的灵活性和多样性,不同文本之间可能存在各种各样的关系,这使得 NLI 任务中的数据集变得极其复杂,同时也对自然语言处理模型的普适性和泛化能力提出了巨大挑战。因此,在处理歧义语言方面,如果今后大模型成功将显得至关重要,并且大模型已被广泛应用于对话界面和写作辅助工具等领域。处理歧义将有助于适应不同的背景,提高沟通的清晰性,以及识别误导性或欺骗性言语的能力。
这篇讨论大模型歧义的论文标题使用了一语双关的表达,“We’re Afraid…”,既表达了当前对语言模型难以准确建模歧义的担忧,又暗示了论文所描述的语言结构。本文也表明,人们正在努力制定新的基准,以真正挑战强大的新的大模型,以便更准确地理解和生成自然语言,并实现模型上的新突破。
论文题目:
We're Afraid Language Models Aren't Modeling Ambiguity
论文链接:
https://arxiv.org/abs/2304.14399
代码和数据地址:
https://github.com/alisawuffles/ambient
文章速览
本文作者计划研究预训练大模型是否有能力识别和区分含有多个可能解释的句子,评估模型如何区分不同的读法和解释。然而,现有的基准测试数据通常不包含歧义的例子,因此需要自己构建实验来探究这个问题。
传统的 NLI 三路标注方案指的是一种用于自然语言推理(NLI)任务的标注方式,它需要标注者在三个标签中选择一个标签来表示原始文本和假设之间的关系。这三个标签通常是“蕴含(entailment)”、“中立(neutral)”和“矛盾(contradiction)”。
作者使用了 NLI 任务的格式来进行实验,采用了函数式方法,通过对前提或假设中的歧义对蕴含关系的影响来表征歧义。作者提出了一个名为 AMBIENT(Ambiguity in Entailment)的基准测试,涵盖了各种词汇、句法和语用歧义,并更广泛地涵盖了可能传达多个不同信息的句子。
如图 1 所示,歧义可能是无意识的误解(图 1 顶部),也可能是故意用来误导听众的(图 1 底部)。例如,如果猫离开家后迷失方向,那么从无法找到回家的路线的意义上看,它是迷路了(蕴涵边);如果它已经好几天没有回家,那么从其他人无法找到它的意义上看,它也是迷路了(中立边)。

AMBIENT 数据集介绍
精选示例
作者提供了 1645 个涵盖多种类型歧义的句子样例,其中包括手写样本和来自现有NLI数据集和语言学教材。AMBIENT 中的每个示例都包含一组标签,对应于各种可能的理解,以及每种理解的消歧重写,如表 1 所示。

生成的示例
研究人员还采用了过度生成和过滤的方法来构建一个大型的未带标签的 NLI 示例语料库,以更全面地涵盖不同的歧义情况。他们受到前人工作的启发,自动识别共享推理模式的前提假设对组,并通过鼓励创建具有相同模式的新示例来加强语料库的质量。
注释和验证
针对先前步骤获得的例子,需要进行注释和标注。这一过程涉及到了两位专家的注释、一位专家的验证和汇总,以及部分作者的验证。同时,37 名语言学专业的学生为每个例子选择了一组标签,并提供了消歧重写。所有这些被注释后的例子经过筛选和验证,最终得到了 1503 个最终的例子。
具体过程如图 2 所示:首先,使用 InstructGPT 创建未带标签的示例,再由两位语言学家独立进行注释。最后,通过一位作者的整合,得到最终的注释和标注。

此外,这里还探讨了不同标注者之间标注结果的一致性问题,以及 AMBIENT 数据集中存在的歧义类型。作者在该数据集中随机选择了 100 个样本作为开发集,其余样本用作测试集,图 3 是其中集合标签的分布情况,每个样本都具有对应的推理关系标签。研究表明,在歧义情况下,多个标注者的标注结果具有一致性,使用多个标注者的联合结果可以提高标注准确性。

歧义是否说明了“不同意”?
该研究分析了在传统的 NLI 三路标注方案下,标注者在对含歧义输入进行标注时的行为。研究发现,标注者可以意识到歧义,并且歧义是导致标签差异的主要原因,因此挑战了“不同意”是模拟例子不确定性的流行假设。
在研究中,采用 AMBIENT 数据集,雇佣了 9 名众包工作者对每个含歧义的例子进行标注。
任务分为三步:
标注含歧义的例子
识别可能的不同解释
标注已消除歧义的例子
其中,步骤 2 中,三个可能的解释包括两个可能的意思和一个类似但不完全相同的句子。最后,对每个可能的解释,都将其代入原始例子得到三个新的 NLI 例子,让标注者分别选择一个标签。
此实验的结果支持了假设:在单标注体系下,原始的模糊例子会产生高度不一致的结果,即在给句子打标签的过程中,人们对于模糊不清的句子容易产生不同的判断,导致结果不一致。但是,当在任务中加入消除歧义的步骤后,注释员们普遍能够识别并验证句子的多种可能性,结果的不一致性得到了大幅度解决。因此,消除歧义是减少注释员主观性对结果影响的有效方法。
评估大模型上的表现
Q1. 能否直接生成与消歧有关的内容
该部分重点在于测试语言模型在上下文中直接生成消歧和对应标签的学习能力。为此,作者构建了一个自然提示并使用自动评估和人工评估来验证模型的表现,如表 2 所示。

在测试中,每个示例都有 4 个其他测试示例作为上下文,并使用 EDIT-F1 指标和人工评估来计算得分和正确性。实验结果如表 3 显示,GPT-4 在测试中表现最佳,实现了18.0%的 EDIT-F1 得分和 32.0% 的人工评估正确性。此外,还观察到大模型在消歧时常常采用加入额外上下文的策略来直接确认或否定假设。不过需要注意的是,人工评估可能会高估模型准确报告歧义来源的能力。

Q2. 能否识别出合理解释的有效性
该部分主要研究了大模型在识别含有歧义的句子时的表现。通过创建一系列真假陈述模板,并对模型进行 zero-shot 测试,研究人员评估了大模型在选择正误之间的预测中的表现。实验结果表明,最佳模型是 GPT-4,然而,在考虑歧义性的情况下,GPT-4 在回答所有四个模板的歧义解释中的表现比随机猜测的准确率还低。此外,大模型在问题上存在一致性问题,对于同一个歧义句子的不同解释对,模型可能会出现内部矛盾的情况。
这些发现提示我们,需要进一步研究如何提高大模型对含有歧义的句子的理解能力,并更好地评估大模型的性能。
Q3. 通过不同解释模拟开放式连续生成
这一部分主要研究基于语言模型的歧义理解能力。通过给定上下文,对语言模型进行测试,比较模型对于不同可能解释下的文本延续的预测。为了衡量模型对于歧义的处理能力,研究人员通过在相应语境下比较模型在给定歧义和给定正确语境下所产生的概率和期望差异,用 KL 散度来衡量模型的“惊奇度”,并且引入随机替换名词的“干扰句”来进一步测试模型的能力。
实验结果表明,FLAN-T5 的正确率最高,但不同测试套件(LS 涉及同义词替换,PC 涉及拼写错误的修正,SSD 涉及语法结构修正)和不同模型的表现结果不一致,说明歧义仍然是模型的一个严重挑战。
多标签 NLI 模型实验
如表 4 所示,在已有带有标签变化的数据上微调 NLI 模型仍有较大提升空间,特别是多标签 NLI 任务中。

检测误导性的政治言论
这项实验研究了对政治言论的不同理解方式,证明了对不同理解方式敏感的模型可被有效利用。研究结果如表 5 所示,针对有歧义的句子,一些解释性的释义可以自然而然地消除歧义,因为这些释义只能保留歧义或者明确表达一个特定的意义。

此外,针对这种预测的释义,可以揭示歧义的根源。通过进一步分析误报的结果,作者还发现了很多事实核查中没有提到的歧义,说明这些工具在预防误解方面具有很大的潜力。
小结
如同本文中所指出的那样,自然语言的歧义性将是模型优化中的一个关键挑战。我们期待未来的技术发展中,自然语言理解模型能够更加准确地识别文本中的上下文和重点,并在处理歧义性文本时表现出更高的敏感度。尽管我们已经建立了评估自然语言处理模型识别歧义的基准,并能够更好地了解模型在这个领域中的局限性,但这仍然是一个非常具有挑战性的任务。
我们期待能够出现更为复杂、准确的自然语言理解模型,它将有助于我们更全面地理解人类语言,从而使得 AI 的应用更为广泛。期待在未来的技术发展中,聊天机器人将成为我们真正的朋友,能够更好地理解我们的需求,并提供更智能化的推荐和回答~


相关文章:

最新研究,GPT-4暴露了缺点!无法完全理解语言歧义!
夕小瑶科技说 原创作者 |智商掉了一地、Python自然语言推理(Natural Language Inference,NLI)是自然语言处理中一项重要任务,其目标是根据给定的前提和假设,来判断假设是否可以从前提中推断出来。然而,由于…...

商业数据挖掘-第一章-数据探索式分析-1
数据探索最基本的步骤之一是获取对数据的基本描述,通过获取对数据的基本描述从而获得对数据的基本感觉。下面的一些方法用于帮助我们认识数据。 我们使用波士顿房价预测的数据集进行实验 DataFrame.describe():查看数据的基本分布,具体是对每列数据进行统计,统计值包含频…...

MybatisPlus是否防止SQL注入?
问 如果我希望使用mybatisplus同时也进行防SQL注入操作,应该怎么处理? 答 如果你想在使用 MyBatis-Plus 进行数据库操作的同时也进行防 SQL 注入处理,可以采用以下两种方式: 使用 #{} 占位符:在 QueryWrapper 或 Up…...

5月第1周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!
飞瓜轻数发布2023年5月1日-5月7日飞瓜数据UP主排行榜(B站平台),通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况,为用户提供B站号综合价值的数据参考,根据UP主成长情况用户能够快速找到运营能力强的B站…...

数据的插入删除和更新
在之前我们就已经学过了数据的插入,在这里再进行一点内容的补充: 在insert语句中,value子句中参数的顺序与表中各个列的顺序是一一对应的。 mysql> insert into first_table(second_column, first_column) values(aaa, 1); Query OK, 1 r…...

C# byte[] 与 int 类型互转
本文讲述在C#中,怎样使用 BitConverter 类将字节数组转换为 int 然后又转换回字节数组的过程。 为什么需要这样呢?这是因为,比如说,在从网络读取字节之后,可能需要将字节转换为内置数据类型。 除了示例中的 ToInt32(Byte[], Int32) 方法之外…...

MySQL---多表联合查询(上)(多表关系、外键约束、学生成绩多表关系、交叉连接查询)
1. 多表关系 MySQL多表之间的关系可以概括为: 一对一: 比如:一个学生只有一张身份证;一张身份证只能对应一学生。 实现原则:在任一表中添加唯一外键,指向另一方主键,确保一对一关系。 一般一对…...

【iOS】—— RunLoop线程常驻和线程保活
文章目录 没有线程常驻会怎么样? 线程常驻线程保活 没有线程常驻会怎么样? 我们一般写一个子线程,子线程执行完分配的任务后就会自动销毁,比如下面这个情况: 我们先重写一下NSThread里面的dealloc方法,打印…...

Springcloud--docker快速入门
认识docker docker相关操作 1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署…...

基于AT89C51单片机的电子计数器设计与仿真
点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87770826 源码获取 主要内容: 设计一个电子计时器,数码管初始显示值为“00”,每隔1s电子秒表加1;秒计数到60时清0&a…...

IT程序员如何面对35岁大龄问题?我从公司老板的角度聊聊
很多从事IT行业的人一想到35岁就很焦虑,担心自己被公司裁员后找不到工作。同时还有家庭责任加身,担心中年失业后晚年生活。作为一位公司老板,我想从我的角度谈一下这个问题。 首先,我本质上不介意我的员工年龄,无论是…...

【计算机专业漫谈】【计算机系统基础学习笔记】W2-2-2 模运算系统和补码表示
利用空档期时间学习一下计算机系统基础,以前对这些知识只停留在应试层面,今天终于能详细理解一下了。参考课程为南京大学袁春风老师的计算机系统基础MOOC,参考书籍也是袁老师的教材,这是我的听课自查资料整理后的笔记 补码表示法…...

vue概述
vue2和vue3的区别 vue2和vue3区别 NOvue2vue31 optinos Api写法 比较分散 Compostiton Api 代码集 2重写数序双向绑定通过Object.defineProperty()实现 基于Proxy实现 对数组有了更好的支持 3Fragments 1,在template中只能一个div 2…...

SpringCloud-OpenFeign案例实战
关于Spring Cloud Open Feign的介绍可以参考这两篇博客 OpenFeign服务接口调用 使用Feign作为服务消费者 本博客参考gitee开源项目代码,结合自己的理解,记录下微服务场景下的使用。Talk is cheap. Show me the code! 一、项目结构 这里使用…...

ACM - 数学 - 提高(还没学多少)
ACM - 数学 练习题 一、数论1、分解质因数 :AcWing 197. 阶乘分解2、求约数个数(1)AcWing 1294. 樱花 (求 n!约数个数之和)(2)AcWing 198. 反素数 (求 1 ~ N 中约数最多的…...

JavaScript class和继承的原理
(对于不屈不挠的人来说,没有失败这回事。——俾斯麦) class 相关链接 MDN链接 有关类的详细描述 关于构造函数,原型和原型链的说明 类的概述 类是用于创建对象的模板。他们用代码封装数据以处理该数据。JS 中的类建立在原型上…...

Playwright-python 自动化测试【Anaconda】环境配置
第一步:Anaconda的安装 安装Anaconda的好处,比prenv网速快,并且拥有独立的python环境,再也不用烦恼用哪个python好了。 Anaconda的下载页参见官网下载,Linux、Mac、Windows均支持。 https://mirrors.tuna.tsinghua.ed…...

攻防世界-web-simple js
题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} ) 打开链接: 然后我们会发现不管我们输入什么密码,发现是都是这样的报错 1. 先用bp抓包看看,可以抓到这样的一串js脚本 看不懂…...

【SpringCloud】初始微服务
目录 一、单体架构 1、概念 2、优点 3、缺点 二、分布式架构 1、概念 2、优点 3、缺点 三、微服务 1、概念 2、优点 3、缺点 四、微服务技术对比 五、SpringCloud 六、服务拆分 1、注意事项 2、服务远程调用 一、单体架构 1、概念 业务的所有功能都集中到一个…...

均摊时间复杂度
均摊时间复杂度,它对应的分析方法,摊还分析(或者叫平摊分析) 均摊时间复杂度应用的场景比它更加特殊、更加有限 // array表示一个长度为n的数组// 代码中的array.length就等于nint[] array new int[n];int count 0;void insert…...

夏驰和徐策的解决数学问题思路——反证法
反证法是一种证明方法,它的基本思路是通过假设某个结论不成立,然后构造出一个矛盾的情况来推导出原先假设的结论是成立的。 具体来说,反证法一般包含以下步骤: 1. 假设所要证明的命题不成立。 2. 通过这个假设,构造…...

面向开发人员的 ChatGPT 提示词教程 - ChatGPT Prompt Engineering for Developers
面向开发人员的 ChatGPT 提示词教程 - ChatGPT Prompt Engineering for Developers 1. 指南(原文: Guidelines)1-1. 提示的指南(原文: Guidelines for Prompting)1-2. 配置1-3. 提示语原则(原文: Prompting Principles)原则 1: 写出清晰而具体的指示(原文: Write clear and spe…...

虹科方案|使用 HK-TRUENAS支持媒体和娱乐工作流程-1
一、摘要 开发和交付能够随时随地触及受众的媒体内容变得越来越重要和复杂。 在当今高度互联、娱乐驱动的世界中,媒体和娱乐 (M&E) 公司需要保持竞争力才能取得成功。 这些组织需要制作各种不同格式的信息和娱乐内容,以便在移动设备、台式机、工作站…...

DDR5内存彻底白菜价,国外大厂却整出了比着火更离谱的骚操作
今年的 PC 硬件市场,似乎出现了明显两极分化现象。 一边是 N、A 两家新显卡价格高高在上,摆明了不坑穷人。 另一边固态硬盘、内存条又在疯狂互卷不断杀价。 四五百元的 2TB SSD,二百元的 16G 内存条早已见怪不怪。 要说面世多年的 PCIe 3.0…...

Linux网络——Shell编程之函数
Linux网络——Shell编程之函数 一、概述二、定义函数的格式1.格式一2.格式二 三、函数的查看和删除1.查看 declare2.删除 declare 四、函数的返回值1.return 返回值2.echo 返回值 五、函数的参数传入与变量范围1.函数的传参2.函数变量的作用范围 六、函数的应用1.阶乘2.递归目录…...

GQCNN+PointNetGPD思路和问题--chatGPT
有很多算法是通过神经网络来预测机械臂抓手的抓取位置,其中一些算法需要点云数据作为输入,例如: PointNetGPD:PointNetGPD是一个端到端的基于点云的抓取姿态检测算法。它使用了一个PointNet架构来处理点云输入,并输出每…...

Mysql索引(2):索引结构
1 概述 MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的索引结构,主要包含以下几种: 索引结构描述BTree索最常见的索引类型,大部分引擎都支持 B 树索引 Hash索引 底层数据结构是用哈希表实现的, 只有精确匹配索引列的…...

Spring框架介绍和应用实践
Spring是一个开源的Java企业应用开发框架,它通过依赖注入和面向切面编程等技术实现了轻量级、松散耦合、可测试和可扩展的应用开发。本文将介绍Spring框架的基本原理和核心功能,以及在实际项目中如何使用Spring框架进行应用开发。 Spring框架基本原理 …...

IO 流学习总结
一:IO 流的概述 1. 什么是 IO 流? 存储和读取数据的解决方法 I:input O:output 流:像水流一样传输数据 2. IO 流的作用? 用于读写数据(本地文件,网络) 3. IO 流按…...

PowerToys——免费、强大、高效的微软官方效率提升工具集,办公学习宝藏软件
名人说:博观而约取,厚积而薄发。——宋苏轼 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、简单介绍1、PowToys是什么?2、它的功能有哪些?二、下载安装三、功能示例1、始终置顶2、唤醒3、颜色选取器(取色)4、FancyZones(窗口布局)5、File Locksmith6、…...