当前位置: 首页 > news >正文

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

点击蓝字

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

点击 阅读原文 查看回放!

相关文章:

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

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! ╱ 作者简介╱ 承洲骏 上海交通大学硕士生,研究方向为代码生成,目前在香港大学余涛老师的实验室担任研究助理。 个人主页:http://blankcheng.github.io 谢天宝 香港大学一年级…...

Windows安装mariadb,配置环境变量(保姆级教学)

软件下载地址:https://mariadb.com/downloads/ 1.双击下载好的软件 2.点击next 3.勾选我同意,点击next 4.这里那你可以设置你要安装的路径,也可以使用默认的,之后点击next 5.如图所示,设置完点击next 6.接下来就默…...

华为OD机试 - 积木最远距离(Python)

题目描述 小华和小薇一起通过玩积木游戏学习数学。 他们有很多积木,每个积木块上都有一个数字,积木块上的数字可能相同。 小华随机拿一些积木挨着排成一排,请小薇找到这排积木中数字相同且所处位置最远的2块积木块,计算他们的距离,小薇请你帮忙替她解决这个问题。 输入描…...

关于对于springcloud中的注册中心和consume消费者和provier服务者之间的关系理解

关于对于springcloud中的注册中心和consume消费者和provier服务者之间的关系理解 pringCloud provider(服务提供方) consumer(服务调用方) server(注册中心) 运行原理 Provider 第一步 provider注册到se…...

【学习笔记】「JOISC 2022 Day1」错误拼写

久违的字符串计数题。 显然只用考虑 [ i : j ] [i:j] [i:j]这一段拼成的串。不难得出结论:设 n x t i nxt_i nxti​表示 i i i之后第一个本质不同的字符的位置,那么 n x t i ≤ j nxt_i\le j nxti​≤j,并且 s i ? s n x t i s_i?s_{nxt_i…...

码出高效:Java开发手册笔记(线程池及其源码)

码出高效:Java开发手册笔记(线程池及其源码) 码出高效:Java开发手册笔记(线程池及其源码) 码出高效:Java开发手册笔记(线程池及其源码)前言一、线程池的作用线程的生命周…...

【MySQL】交叉连接、自然连接和内连接查询

一、引入 实际开发中往往需要针对两张甚至更多张数据表进行操作,而这多张表之间需要使用主键和外键关联在一起,然后使用连接查询来查询多张表中满足要求的数据记录。一条SQL语句查询多个表,得到一个结果,包含多个表的数据。效率高…...

长/短 链接/轮询 和websocket

短连接和长连接 短连接: http协议底层基于socket的tcp协议,每次通信都会新建一个TCP连接,即每次请求和响应过程都经历”三次握手-四次挥手“优点:方便管理缺点:频繁的建立和销毁连接占用资源 长连接: 客…...

数据库的事务

数据库的事务 1、事务是什么 TRANSACTION(事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。 2、事务可以做什么 数据库事务通常包含了一个序列的对数据库的读/写操作。包含有以下两个目的: …...

专利进阶(二):专利撰写常用技术及算法汇总(持续更新中)

文章目录 一、前言二、常用技术及算法2.1 区跨链技术2.2 聚类算法2.3 边缘算法2.4 蚁群算法2.4.1 路径构建2.4.2 信息素更新 2.5 哈希算法2.5.1 常见算法 2.6 数字摘要2.72.82.92.10 三、拓展阅读 一、前言 专利撰写过程中使用已有技术或算法解决新问题非常常见,本…...

C#手术麻醉临床信息系统源码,实现体征数据自动采集绘制

手麻系统源码,自动生成电子单据 基于C# 前端框架:Winform后端框架:WCF 数据库:sqlserver 开发的手术麻醉临床信息系统源码,应用于医院手术室、麻醉科室的计算机软件系统。该系统针对整个围术期,对病人进…...

现代CMake高级教程 - 第 7 章:变量与缓存

双笙子佯谬老师的【公开课】现代CMake高级教程课程笔记 第 7 章:变量与缓存 重复执行 cmake -B build 会有什么区别? ❯ cmake -B build -- The C compiler identification is GNU 11.3.0 -- The CXX compiler identification is GNU 11.3.0 -- Detec…...

SQL知识汇总

什么时候用存储过程合适 当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用存储过程;当在一个事务的完成需要很复杂的商业逻辑时(比如,对多个数据的操作,对多个状态的判断更改等)要考虑&#xff1b…...

区位码-GB2312

01-09区为特殊符号 10-15区为用户自定义符号区(未编码) 16-55区为一级汉字,按拼音排序 56-87区为二级汉字,按部首/笔画排序 88-94区为用户自定义汉字区(未编码) 特殊符号 区号:01 各类符号 0 1 2 3 4 …...

文本识别、截图识别保存和多文件识别

一、源码 github源码 二、介绍 采用Tesseract OCR识别 采用多线程进行图片识别 界面 选择 文件是可以识别本地的多张图片文件夹是识别文件夹里面的所有图片的内容截图 可以复制到剪切板、可以识别也可以直接保存 重置 是清除选择的图片和识别结果语言选择 是选择不同的模型…...

针对近日ChatGPT账号大批量封禁的理性分析

文 / 高扬 这两天不太平。 3月31号,不少技术圈的朋友和我闲聊说,ChatGPT账号不能注册了。 我不以为然,自己有一个号足够了,并不关注账号注册的事情。 后面又有不少朋友和我说ChatGPT账号全部不能注册了,因为老美要封锁…...

MATLAB算法实战应用案例精讲-【人工智能】对比学习(概念篇)

目录 前言 几个高频面试题目 推荐领域的对比学习在设计代理任务时与CV和NLP领域有什么不同?...

WeakMap 与 WeakSet

WeakSet WeakSet 结构与 Set 类似,也是不重复的值的集合。 成员都是数组和类似数组的对象,WeakSet 的成员只能是对象,而不能是其他类型的值。 若调用 add() 方法时传入了非数组和类似数组的对象的参数,就会抛出错误。 const b …...

【hello Linux】进程信号

目录 1. 进程信号的引出及整体概况 2. 信号的产生 1. 键盘产生 2. 进程异常 3. 系统调用 4. 软件条件 3. 信号的保存 1. 信号相关的常见概念 2. sigset_t 3. 信号集操作函数 4. sigprocmask:对block位图的操作 5. sigpending:对pending位图的操作 6. 捕捉…...

【SpringBoot】获取HttpServletRequest的三种方式

方法一: Controller中增加request参数 RestController public class DemoController { RequestMapping("/demo")public void demo(HttpServletRequest request) { System.out.println(request.getParameter("hello"));} }线程安全缺点: 每个方法都…...

k8s DCGM GPU采集指标项说明

dcgm-exporter 采集指标项 指标解释dcgm_fan_speed_percentGPU风扇转速占比(%)dcgm_sm_clockGPU sm 时钟(MHz)dcgm_memory_clockGPU 内存时钟(MHz)dcgm_gpu_tempGPU 运行的温度(℃)dcgm_power_usageGPU 的功率(w)dcgm_pcie_tx_throughputGPU PCIeTX 传输的字节总数 (kb)dcgm_pc…...

从线程安全到锁粒度,使用Redis分布式锁的注意事项

关于 Redis 的分布式锁 在分布式的场景下,多个服务器之间的资源竞争和访问频繁性,为了数据的安全和性能的优化,我们需要引入分布式锁的概念,这把锁可以加在上层业务需要的共享数据/资源上,能够同步协调多个服务器的访…...

CopyOnWriteArrayList 的底层原理与多线程注意事项

文章目录 CopyOnWriteArrayList 的底层原理与多线程注意事项1. CopyOnWriteArrayList 底层原理1.1 概念说明1.2 实现原理1.3 优点1.4 缺点 2. CopyOnWriteArrayList 多线程注意事项与实例2.1 注意事项2.2 示例2.2.1 示例代码 3. 总结 CopyOnWriteArrayList 的底层原理与多线程注…...

互斥锁深度理解与使用

大家好,我是易安! 我们知道一个或者多个操作在CPU执行的过程中不被中断的特性,称为“原子性”。理解这个特性有助于你分析并发编程Bug出现的原因,例如利用它可以分析出long型变量在32位机器上读写可能出现的诡异Bug,明明已经把变量…...

Elasticsearch --- 数据聚合、自动补全

一、数据聚合 聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这…...

Haproxy搭建web群集

一.常见的web集群调度器 1、目前常见的web集群调度器分为软件和硬件 2、软件通常使用开源的LVS、Haproxy、Nginx ​ LVS 性能最好,但搭建复杂。Nginx并发量,性能低于Haproxy 3、硬件一般使用比较多的是F5,也有很多人使用国内的一些产品&a…...

Packet Tracer - 配置和验证小型网络

Packet Tracer - 配置和验证小型网络 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 RTA G0/0 10.10.10.1 255.255.255.0 不适用 G0/1 10.10.20.1 255.255.255.0 不适用 SW1 VLAN1 10.10.10.2 255.255.255.0 10.10.10.1 SW2 VLAN1 10.10.20.2 255.25…...

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机设备的各种固件信息如DeviceID或者SerialNumber等(C++)

项目场景 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具…...

java 的参数传递

一、疑惑引入 首先&#xff0c;我们从一个例子来引出这个问题&#xff1a; public static void main(String[] args) throws IOException {List<String> mockList Lists.newArrayList("a", "b");System.out.println("1: " mockList);L…...

【面试长文】HashMap的数据结构和底层原理以及在JDK1.6、1.7和JDK8中的演变差异

文章目录 HashMap的数据结构和底层原理以及在JDK1.6、1.7和JDK8中的演变差异HashMap的数据结构和原理JDK1.6、1.7和1.8中的HashMap源码演变JDK1.6JDK1.7JDK1.8 总结自己实现一个简单的HashMapHashMap的时间复杂度分析HashMap的空间复杂度分析HashMap的应用场景HashMap的弊端及解…...

桂林二手房/英文seo实战派

14.7.4 InnoDB File-Per-Table Tablespaces从历史上看,所有的InnoDB 表和indexes 是存储在system 表空间。这个整体的方法是针对机器是整个用于数据库处理,精心策划的数据增长,任何磁盘存储分配给MySQL 不会被其他目的需要.InnoDB的file-per-table tablespace功能提供一个更加灵…...

诗敏家具网站是谁做的/seo是干嘛的

Jenkins1.190.0升级到Jenkins2.303.2 jenkinsci/blueocean镜像是优化界面化的一个版本 目前镜像版本: jenkinsci/blueocean:1.19.0,对应的jenkins版本为:1.190.2 升级后的版本: jenkinsci/blueocean:1.24.3,对应的jenkins版本为:2.263.2 注:如果不是这个版本的镜像不…...

网站开发建设收费标准/优化营商环境建议

本文共2900余字&#xff0c;预计阅读时间8分钟&#xff0c;本文知乎连接&#xff1a;Python操作Excel文件&#xff08;0&#xff09;&#xff1a;盘点&#xff0c;本文同步发布于silaoA的博客和微信公众号平台。 关注学习了解更多的Cygwin、Linux、Python技术。目 录0x00 xlrd/…...

网站建设要学编程吗/北京优化核酸检测

&#xff08;本文略长&#xff0c;8000余字&#xff0c;大约需要花费10分钟&#xff0c;但值得你认真读完&#xff09;“快十年了&#xff0c;我们很多人心里是憋着一股气的。”丛真作为盛斗士的代表&#xff0c;在美国盛大公司办公室里&#xff0c;终于有机会当面对陈天桥表达…...

广州优化网站建设/免费推广网站注册入口

在TCP层&#xff0c;有个FLAGS字段&#xff0c;这个字段有以下几个标识&#xff1a;SYN, FIN, ACK, PSH, RST, URG. 其中&#xff0c;对于我们日常的分析有用的就是前面的五个字段。 它们的含义是&#xff1a; SYN表示建立连接&#xff0c; FIN表示关闭连接&#xff0c; ACK表示…...

吕梁网站建设/小果seo实战培训课程

实操过程 源数据库服务器&#xff08;192.168.1.101&#xff09;备份服务器(192.168.1.102)环境centos 7.4 mysql5.7 centos 7.4 数据库实例3306/安装备份工具Xtrabackup/安装网络限速工具 yum install pv #如果不做网络限速的话&#xff0c;可以不用安装 /ssh免密登陆 ssh…...