干货! ICLR:将语言模型绑定到符号语言中个人信息

news2024/10/2 22:23:05

点击蓝字

c88e490fa1bab6fc0a7805a0fbfff929.jpeg

关注我们

AI TIME欢迎每一位AI爱好者的加入!

╱ 作者简介╱

2b1ad1cd7afb28e28f86785b3b53dd8a.png

承洲骏

上海交通大学硕士生,研究方向为代码生成,目前在香港大学余涛老师的实验室担任研究助理。

个人主页:http://blankcheng.github.io

7f7fdb15714da0963ef11ff54ffa5d80.png

谢天宝

香港大学一年级博士生,由余涛教授(主要)和孔令鹏教授指导,研究方向为代码生成和自然语言界面。

01

内容简介

尽管端到端(End-to-end)的方法最近在性能和易用性方面主导了NLP任务,但它们缺乏可解释性和鲁棒性。我们提出 Binder,一种无需训练的神经符号框架,可将任务输入映射到程序,它(1)允许将语言模型(LM)功能的统一API绑定到编程语言(例如SQL、Python)以扩展它的语法覆盖范围,从而大幅增加了可解决问题的范围,(2)采用LM作为程序解析器和API,在执行期间调用的底层模型,(3)只需要少量(10个左右)上下文中的示例注释,区别于与过去需要大量人工标注的程序生成方法。

具体来说,我们使用GPT-3 Codex作为LM。在生成程序阶段,Codex只需要少量的上下文范例,就能识别任务输入中原始编程语言无法回答的部分,正确生成API调用提示Codex解决无法回答的部分,并识别在与原始语法兼容的同时放置API调用的位置。在执行阶段,Codex可以在API调用中给出适当提示的情况下执行多种功能(例如,常识性问答、信息提取)。Binder 在WikiTableQuestions和TabFact数据集上取得了最先进的结果,且生成有利于人工调试的显式输出程序。以前最好的系统都是在数万个特定于任务的样本上进行微调的,而Binder仅使用数十个注释作为上下文范例,无需进行任何训练。

02

Background knowledge and paradigms 

on solving NLP tasks

下图中表示的问题是:北美最畅销的不含化学成分的衬衫是哪一种?表中显示的内容类似于购物的一个真实场景,其中包含商品的标签以及一些细节性的描述,而蓝色字体描述的内容是无法从图中获取的,Binder的提出也就是为了解决这个问题。

58bcc89fc6235875aa31a5df2c297f8a.png

下面先介绍一些常用的方法。第一种是最常见的End-to-End模式。由于大模型具有较强的自学能力,不需要进行训练,所以在End-to-End中,会将knowledge、question、answer等组合对以及测试样本一起作为输入,让GPT-3或者Codex直接生成答案。End-to-End的好处在于通用性很强,任何形式的formulation都可以作为输入,大模型都能够给出一个输出作为答案,但也存在一些缺点,比如可解释性差、可扩展性差、鲁棒性弱。

86aecafcedd32b552093e276ba35c062.png

第二种是思维链方法,它与End-to-End的核心区别在于其在输出答案之前,会输出一段解释性的文字,描述推理的过程。这相对于End-to-End来讲提升了可解释性,但是可解释性是不高的,会存在一些错误,并且仍然会有可扩展性差、鲁棒性弱的问题。

8e1627db14c334f36a0982955ae8ee5c.png

第三种方法是Semantic parsing,在这个场景下也可以称之为Code generation,Binder是基于该方法的一种变形。它在给定自然语言输入的情况下生成可执行程序,生成有助于解决问题的中间结构,并提高神经方法的可解释性,而且可扩展性和鲁棒性也会更强。但是语义解析方法受限于其语法覆盖范围,无法解决需要外部知识或功能的问题。

7c3b6627c791b3f6c2ae0ee89197f93a.png

03

Binder: Binding language models in 

symbolic languages

所以我们根据上述方法存在的问题提出了Binder,Binder通过调用语言模型的API去解决语义分割解析方法中存在的局限,且相对于End-to-End和思维链方法具有更强的可解释性、可扩展性以及鲁棒性。

具体来介绍一下Binder的整个过程。Binder首先提示经过代码预训练的GPT-3模型 – Codex,将问题输入解析为Binder程序,其中Codex必须决定(1)输入中的哪些部分可以转换为目标编程语言(图1中以灰色突出显示的问题部分),(2)相应的任务API调用(例如,f(“北美?”;Made_in))提示Codex解决其他部分,以及(3)在哪里插入Binder程序中的API调用。接下来,Binder再次提示Codex生成任务API调用的答案(给定生成的任务提示),将生成的结果集成回编程语言。具体如图1,将API调用中的提示(如“北美?”)和数据(如Made_in列)送入Codex,输出为根据输入数据回答提示的新列(即,Made_in列中的国家是否来自北美)。最后,使用标准编程语言执行程序,得出最终答案。

615aaddb428d0fb94b88606aea7d566e.png

相比传统的Semantic parsing方法,Binder基于大模型上下文学习的能力,只需要标注少量的样本就能取得很好的效果。

我们在实验中也做了很多定量的分析去判断Binder是否有效果及性能上的提升。我们选择的两个数据集是WikiTableQuestions (WikiTQ)和Table Fact Checking (TabFact)。WikiTQ需要复杂的表格推理技能来回答问题,存在一些WikiTQ问题无法用纯SQL回答,这要么是因为需要额外的知识,要么是因为SQL语法的覆盖范围有限。TabFact与WikiTQ的区别在于对于每一张表它都会给出一个陈述,一个陈述中有多个事实需要去验证,也就是说需要很复杂的推理步骤,并且也不能完全用符号语言来解决问题。

下图是我们的实验结果。我们的方法仅用到14个标注样本,相比已有的Finetuned的SOTA方法,性能的提升非常显著。与大模型的方法相比,相对于End-to-end以及普通的语义分割解析方法,在性能上都有明显的提升。这也就验证了最初提出Binder的研究动机,我们希望在需要SQL或者大模型的时候都能够便捷地融入各自的功能。

8dc4f928790259ad13d814a48de27c3a.png

效果的提升大部分是源于program-unsolvable questions,即普通SQL和Python无法解决的问题,就需要一些额外的知识或者其他模态的推理。我们将这部分的结果拆解开看,在下图中可以看到Codex Binder在程序无法解决的问题上明显优于Codex SQL 10.1%,所以这是性能主要提升的关键。

2de2423a5335978852f6efec46784a98.png

除了性能优势以外,我们也探索了很多binder其他的优势。

首先是可解释性,显式的程序可以协助研究者去进行人工调试和错误分析,这一点End-to-End是做不到的。

第二点是可扩展性和鲁棒性。我们通过提示Codex用相关的行填充原始表,扩展成100、200和500行的表,并人工修改相应的问题和答案。我们发现随着表大小的增加,End-to-end的性能急剧下降,而Binder始终优于它,性能仅略有下降。当存在与问题相关内容相似的干扰因素时,End-to-end方法对嘈杂的输入更脆弱,更容易被相似的文本和数字混淆。

04

Extending Binder to more diverse

 tasks and domains

我们尝试将Binder扩展到不同的领域和语言。首先是多模态的输入,我们使用的数据集是Multi-modal QA,它的输入包括表格、文本及图片。在这样的场景下,我们的方法几乎可以达到之前的SOTA水平,如果使用更好的模型作为语言模型API的话,性能会提升更多。

ff048b70067ac695d93a6fa6dba798ff.png

我们将Binder扩展到不同的语言——Python中。我们可以看到他在 problem-unsolved部分的提升也是很显著的。

5df5c41faea9afc4b5768cb9823d0ad2.png

我们希望(1)Binder在之后可以被利用到让大家更熟悉的领域或者符号、编程语言中(2)Binder能够集成更多的语言或视觉模型功能;(3)Binder被应用到更多的领域和任务当中。

最后我们简单绘制了将Binder应用到新领域或新任务的流程图,一共分为5个部分。其中,需要耗费人工的,只有两点。第一,需要人为标注少量Binder的程序;第二,需要用户对任务较熟悉,能够根据自己的经验挑选所用到的语言模型的API。

2774118204f4f794d186228b2642e95d.png

整理:陈研

审核:承洲骏 谢天宝

点击“阅读原文”跳转到1:19:01可以查看回放哦!

往期精彩文章推荐

11982f5a1e5e139b83697e5add05b53a.jpeg

记得关注我们呀!每天都有新知识!

 关于AI TIME 

AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。

迄今为止,AI TIME已经邀请了1000多位海内外讲者,举办了逾550场活动,超600万人次观看。

ce8769fb07272418173c803e12950d32.png

我知道你

在看

~

8ed2df839b38cbb03b3b909d24d7e683.gif

点击 阅读原文 查看回放!

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

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

相关文章

武忠祥老师每日一题||不定积分基础训练(六)

解法一: 求出 f ( x ) , 进而对 f ( x ) 进行积分。 求出f(x),进而对f(x)进行积分。 求出f(x),进而对f(x)进行积分。 令 ln ⁡ x t , 原式 f ( t ) ln ⁡ ( 1 e t ) e t 令\ln xt,原式f(t)\frac{\ln (1e^t)}{e^t} 令lnxt,原式f(t)etln(1et)​ 则 ∫ f ( x ) d…

分布式配置中心Apollo教程

分布式配置中心Apollo教程 简介 Apollo配置中心课程是传智燕青老师针对微服务开发设计的系列课程之一,本课程讲解了Apollo分布式系统配置中心的使用方法和工作原理,并从实战出发讲解生产环境下的配置中心的构建方案,从Apollo的应用、原理、项…

transformer and DETR

RNN 很难并行化处理 Transformer 1、Input向量x1-x4分别乘上矩阵W得到embedding向量a1-a4。 2、向量a1-a4分别乘上Wq、Wk、Wv得到不同的qi、ki、vi(i{1,2,3,4})。 3、使用q1对每个k(ki)做attention得到a1,i(i{1,2,3,4…

STL容器类

STL 1. STL初识 1.1 迭代器 1.1.1 原生指针也是迭代器 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; void test01() {int arr[5] { 1,2,3,4,5 };int* p arr;for (int i 0; i < 5; i) {cout << arr[i] << endl;cout &…

在c++项目中使用rapidjson(有具体的步骤,十分详细) windows10系统

具体的步骤&#xff1a; 先下载rapidjson的依赖包 方式1&#xff1a;直接使用git去下载 地址&#xff1a;git clone https://github.com/miloyip/rapidjson.git 方式2&#xff1a;下载我上传的依赖包 将依赖包引入到项目中 1 将解压后的文件放在你c项目中 2 将rapidjson文…

Python小姿势 - # Python中的模板语言

Python中的模板语言 Python是一门非常灵活的语言&#xff0c;其中一个体现就是它可以使用模板语言来生成静态文件。模板语言是一种特殊的语言&#xff0c;用来将静态文本和动态数据结合起来生成新的文本。 Python的模板语言最早出现在Web应用开发中&#xff0c;用来生成HTML页面…

最新版升级GPT4-PLUS攻略

前置条件: 有一个gpt的免费账号 一个魔法上网工具(主要是azure国内版不能用) 1.如果你没有gpt账号&#xff0c;你可以用谷歌邮箱(可以用国内手机号注册)去openai.com官网注册&#xff0c;会卡在手机号那里&#xff0c;这个网上有相关服务&#xff0c;tb也行&#xff0c;反正你…

数学分析:隐函数定理和反函数定理

这是多元微积分的高潮部分。 对于一个函数F(x,y)0&#xff0c;我们想知道是否可以用yf(x)来表示它。 或者说&#xff0c;在不求出yf(x)表达式的情况下&#xff0c;我们能拿到一些额外信息&#xff1a; 比如f(x)等。 这就是隐函数定理。 这个很有意思&#xff0c;根据隐函数…

javaweb实验:JSP+JDBC综合实训_数据库记录的增加、查询

目录 前言实验目的实验原理实验内容实验过程流程图建立数据库和用户表实现用户登录功能连接数据库登录登录检测登录成功登录失败 实现用户注册功能注册表单注册验证及操作数据库注册成功注册失败 新闻管理功能 总结 前言 JSP是一种基于Java的Web编程语言&#xff0c;可以生成动…

[stable-diffusion-art] 指北-1

https://stable-diffusion-art.com/beginners-guide/https://stable-diffusion-art.com/beginners-guide/ Stable Diffusion教程目录 - 知乎按&#xff1a; 这个外国教程站中的文章太好了&#xff0c;数量适当&#xff0c;质量很高可惜博文只能按时间浏览&#xff0c;所以整理…

无线网络安全

这里写目录标题 目的数据加密WEPRSN 身份认证EAP802.1X&#xff08;EAPOL&#xff09; RSNA密钥派生密钥派生方法密钥派生流程 密钥缓存密钥缓存流程 目的 1.数据的完整性&#xff08;Integrity&#xff09;&#xff1a;用于检查数据在传输过程中是否被修改。 2.数据的机密性&…

【25】linux进阶——网络文件系统NFS

大家好&#xff0c;这里是天亮之前ict&#xff0c;本人网络工程大三在读小学生&#xff0c;拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识&#xff0c;希望能提高自己的技术的同时&#xff0c;也可以帮助到大家 另外其它专栏请关注&#xff1a; 锐捷数通实验&…

STC15W1048脚单片机,开漏和推挽输出比较(点亮LED)

增强型 8051 CPU&#xff0c;1T单时钟/机器周期&#xff0c;指令代码完全兼容传统8051 工作电压&#xff1a;2.5V - 5.5V 1K/2K/3K/4K/5K/7K字字节片内Flash程序存储器&#xff0c;擦写次数10万次以上 片内128字节的SRAM XRAM (xdata) 有片内EEPROM功能&#xff0c;擦写次数1…

医药之家:国家基本药物目录或于6月迎来更新

国家基本药物目录是医疗机构和保险提供商选择经济实惠且具有良好临床疗效的药物的指南&#xff0c;预计在6月迎来下一次更新。新版目录将聚焦儿科药物、眼科及中药。该目录作为医疗机构和保险公司选药的重要指南&#xff0c;着重选取经济实惠且具备良好临床疗效的药品。专家将从…

PID整定一:响应曲线法

PID整定一&#xff1a;响应曲线法 1参考[完全经验法、等幅振荡法、衰减曲线法、响应曲线法]1.1完全经验法1.2等幅振荡法1.3衰减曲线法1.4响应曲线法 2响应曲线法PID整定示例 1参考[完全经验法、等幅振荡法、衰减曲线法、响应曲线法] 参考 1.1完全经验法 这种方法没有任何定…

ripro主题修改教程-首页搜索框美化教程

先看效果图: 我们来看怎么实现: 1、找到wp-content/themes/ripro/assets/css/diy.css并将下面的内容整体复制进去并保存 /*首页搜索框*/ .bgcolor-fff {background-color: #fff; } .row,.navbar .menu-item-mega>.sub-menu{margin-left:-10px;margin-right:-10px;} .home…

中级软件设计师备考---程序设计语言和法律法规知识

目录 需要掌握的程序语言特点法律法规知识---保护期限法律法规知识---知识产权人确定法律法规知识---侵权判定标准化基础知识 需要掌握的程序语言特点 Fortran语言&#xff1a;科学计算、执行效率高Pascal语言&#xff1a;为教学而开发的、表达能力强&#xff0c;演化出了Delp…

《编码——隐匿在计算机软硬件背后的语言》精炼——第15-16章(十六进制,RAM)

“学习如春起之苗&#xff0c;不见其增&#xff0c;日有所长。” —— 宋代朱熹 文章目录 十六进制十六进制概述十六进制表字节到十六进制 存储器特定的读功能特定的写功能RAM大型RAM阵列 十六进制 十六进制概述 十六进制是一种适用于计算机的进制法。在十进制中&#xff0c;…

PS学习笔记(零基础PS学习教程)

很多新手学习PS不知从何下手&#xff0c;做设计的第一阶段肯定是打牢基础&#xff0c;把工具用熟练&#xff1b;本期特别为大家整理了PS入门的学习笔记&#xff0c;把每个工具的用法整理了下来&#xff0c;在使用过程中有哪里不清楚的可以翻看来看看~ 一、ps的工作界面的介绍 …

腾讯云的cdn怎么配置|腾讯云CDN配置教程

众所周知,WordPress系统不挂加速或者是服务器不好速度贼慢,所以要想办法解决访问速度的问题,经过我不断的研究腾讯云的CDN,因为我用的是zibll子比主题,不懂的就挂会导致无法使用第三方登录,因为有缓存导致一直不回调一直卡在那个登录界面和支付没反应要么出现二维码,要么…