通用人工智能可行吗?组合泛化视角漫谈

"乌鸦为什么像写字台?"

因为它们都能produce a few notes (鸟叫/笔记),因为乌鸦和写字台都是思想与记忆的象征(北欧神话),又或者因为,这本身就是一句没有道理的话,类比的是人类之间没有道理的情感。

一直以来,从事物中提取抽象的特征,然后建立新的联系都是人类的特权,我们一边试图用机器模拟这一思维过程,一边又批评机器没有学到精髓。可以说,建立通用人工智能 (Artificial General Intelligence, AGI) 的梦想在每个人工智能相关领域研究者都多少会占有一席之地,但是,该如何去实现呢?假如以自然语言处理为起点来考虑这个问题,我认为,组合泛化将是关键。

注:本文原创首发于公众号“夕小瑶的卖萌屋”,作者:Albert Yang,编辑:白鹡鸰
更多文章见:耗时四年,我们写了一本1400页的AI全栈技术手册

什么是组合泛化?

组合泛化(compositional generalization)是基于复合性(compositionality)衍生出来的一个问题,是分布外泛化的(Out-of-Ditribution generalization)的一个子类。组合泛化的目标是让模型基于已知对象的性质,推断未知对象组合的意义。比如说,已知“猫”和“狗”是较为相似的动物,已知“猫会叫”为真命题,那么我们是否能让模型知道,“狗会叫”也是真命题呢?这就是组合泛化的研究内容。

组合泛化并不是一个新议题,它的重要性经过了多年的斟酌并得到了肯定。只是近年来研究人员发现大模型在组合泛化问题上碰壁严重,才使之成为热点。我在参加ACL 2022和Redmond Mooney 聊天时,他感慨,30年前他研究语义解析(semantic parsing)时已经着重研究了组合泛化,10年前他已经把主要研究精力转而投入到多模态和机器人领域,而现在组合泛化和多模态才成为热点。

为大佬的前瞻性和对未来方向的把控能力惊叹。

组合泛化为什么重要?

要理解组合泛化的重要性,首先要回答,机器学习针对的最核心的问题是什么?那就是泛化(generalization)。如果模型缺乏泛化能力,那么模型表现的上限只能是已经见到过的数据。因此,泛化性向来是衡量模型能力的重要指标。

尽管大模型有着惊人的分布内泛化能力,但是分布外泛化仍是这些模型最关键最难以解决的问题。组合泛化是分布外泛化中的重要分支。另一方面,现有的学习模型普遍缺乏推理能力,而组合推理也是推理能力极为重要的一方面。可以说,组合泛化的研究,是针对机器学习中最大的痛点和难点对症下药。

组合推理依赖于常识推理(commonsense reasoning),同时,组合推理和关系推理(relational reasoning)、组合推理和多步推理(multi-hop reasoning)都有着极为密切的关系)。

近年来,随着机器学习在网络结构上的优化进入瓶颈,研究者们不约而同地将目光投向组合泛化。在ACL 2022以“The Next Big Ideas”为主题的演讲中,Heng Ji在强调结构的重要性时,提到使用结构的重要目标之一,就是增强组合泛化能力。Mirella Lapta在讨论故事理解和故事生成的任务时,提到了建模故事结构是可能的解决方案。Dan Roth在关于推理任务的演讲中指出,知识的解构(decompose),重组(compose)和规划(plan)是实现推理的关键步骤。Marco Baroni在关于“machine-to-machine interface”的演讲中,指出组合不同网络是实现这一目标的关键。Hang Li 提出,应当利用符号表达,来提升数值推理的效果。而Yejin Choi直接在她的keynote演讲中,展示了模型组合泛化能力的欠缺,并以此为依据,反驳了在短期内实现通用人工智能的可能性。

8ffeed5e4bdb26d48a69a5f0139d699c.jpeg
▲图片来源于Yejin Choi 在ACL 2022的Keynote演讲

需要指出的是,组合泛化不仅在自然语言处理中十分重要,在计算机视觉/多模态中、在机器人学中也非常重要(例如语言到图像生成模型DALLE中Demo里的例子就是展示生成新的场景组合:宇航员在太空中骑马的图片来表明DALLE的强大能力;同样,机器人理解各种指令组合、各种视觉场景组合也是最关键的课题之一),这也是为什么完成组合泛化是实现AGI的重要一步。

自然语言与组合泛化

在NLP的背景下研究组合泛化,对于我而言非常有趣。语言是一种有结构的数据,而结构的规则中又存在相当多的特例和变体。机器学习中最关键问题——领域外泛化对应到语言的结构就是组合泛化。语言在字/词级别和句子级别都有复合性,本文主要关注句子级别的复合性。在这一前提下,语义解析是测试组合泛化能力最合适的任务之一。下面将从两篇我在NAACL 2022中的复合性语义解析(compositional semantic parsing)领域的工作出发,分别谈谈组合泛化的模型和数据两方面。

论文-1

SeqZero: Few-shot Compositional Semantic Parsing with Sequential Prompts and Zero-shot Models

arxiv.org/pdf/2205.0738

论文-2

SUBS: Subtree Substitution for Compositional Semantic Parsing

arxiv.org/pdf/2205.0153

如何改进模型以实现更好的组合泛化?

为了增强模型的组合泛化能力,一种直观的思路就是通过例如模块化网络、中间层的离散结构、神经符号系统等方法为模型设置归纳偏置。

我要说的第一篇论文SeqZero中,语义解析的目标是“将自然语言描述解析为SQL语句” [1]。促使我展开研究的契机是,在了解经典数据集和复现模型时,我发现模型如果在训练数据中只见到“多少人住在芝加哥”类型的数据(即每次见到“多少人住在”,后面总是跟着城市名),即使模型在其他训练数据点中见到过“犹他”是“州”的概念,在测试的时候遇到“多少人住在犹他”,也会将SQL 语句中的表格名称预测为“城市”(“FROM City”)而非“州”(“FROM State”)。模型实际上学到的是从“多少人住在xx”句式结构到“城市” 的虚假关系(spurious correlation),而非根据实际的地点名称来判断“州”或者“城市”。

于是,本文提出使用两种方式来进一步合理利用大型预训练语言模型的能力来实现更好的组合泛化:1. 子问题分解,2. 是预训练与精调模型的集成(ensemble)

本文使用了以BART作为backbone的预训练模型,部分结论可能与以GPT3作为的预训练模型有所不同,并且本文采用的是prompt-based fine-tuning [2],而非基于示例prompt的in-context learning [3]。

子问题分解:

子问题分解的出发点是把复杂的问题转化为简单的子问题序列,逐步解决。在自然语言到SQL语句解析这个问题中,对应着逐步生成SQL语句的子从句(如“FROM”,“SELECT”,“WHERE”等从句)。对于上面的例子,如果模型可以先解决好“FROM”从句中表格名称(“城市”或“州”)的生成,那么就能更好地预测整句SQL语句。进而,在每一个子问题(子从句)的预测中,可以更好地设计合适的自然语言prompt来帮助挖掘预训练模型中的知识,得到更好的泛化能力。这样的子问题分解和prompt 序列填充的方法在近期预训练模型的推理能力研究(例如本文NAACL的同期或后期工作“Chain of Thought Prompting”等[4]-[6])中,被应用于更广泛的场景。

预训练与精调模型的集成:

在子问题中,由于精调的模型有更好的领域内泛化能力,而预训练模型有更好的领域外泛化能力,我们希望能够集成预训练模型与精调模型,以达到在保证领域内泛化能力的同时,实现更好的领域外泛化能力

研究问题中的“领域外”对于预训练模型来说可能是“领域内”,因为我们的领域指是相对于给定的少量训练数据而言,而预训练模型可能已经见过我们定义的领域外的组合并且存储有相关的知识。

研究的任务是生成问题(基于prompt的自然语言生成或者SQL语句生成),在生成的每一步,直接集成预训练模型与精调模型的概率并不是一个好的选择,因为未精调的预训练模型的概率几乎分布在词表所有的词上,而精调的模型概率几乎完全只分布在词表中几个允许的词上——比如生成表格名称的步骤,精调模型给出的概率几乎都集中在训练数据中出现的表格名称上。在词表中几个允许的词上,预训练模型与精调模型的概率差别巨大,预训练模型极小的概率分布几乎不会对集成后的结果造成影响。为了解决这个问题,我们在生成的每一步,先用前缀树(trie,常用于实现高效限制解码)高效计算出给定已生成前缀条件下下一个步骤允许生成的所有词,再在这些词上归一化预训练模型的原始概率。最后即可集成预训练模型的归一化概率与精调模型的概率,得到最终在这一步解码时的生成概率。计算公式公式如下:

df076e62ae923f0fb394c69cff2aa867.png

其中代表给定已生成的前缀(或者给定的prompt)x时,当前步骤允许生成的词表。P_theta(w|x)是预训练模型在当前步骤的原始概率。我们提出的通过限制解码对预训练模型归一化再与精调模型集成,这一简单的步骤有望应用于生成任务中更广泛的场景得到具有更强的泛化能力的生成模型。

我们的方法在常用的组合泛化测试数据集GeoQuery和一个我们自建的EcommerceQuery数据集上都取得了明显的提升:

d63890aca807fd6437ecd48998efc759.jpeg

如何调整数据以实现更好的组合泛化?

除了将组合性归纳偏置直接注入到模型中,我们还可以先把组合性的归纳偏置先注入到数据中,以生成大量的扩增数据,然后再让模型从数据中学到这种偏置以实现更好的组合泛化。这就是组合性数据扩增。

我们可以根据重组规则将已有的自然语言与形式语言对数据重组,形成更多样的自然语言与形式语言对,添加到现有数据中,一起训练简单的Seq2seq模型。这样的规则可以是人工设计的(SCFG [7], GECA [8]),也可以是学习出来的。

之前的基于规则的方法往往只能重组交换比较简单的结构,对于复杂的结构,由于自然语言和形式语言的对齐非常困难,重组交换得到的结果往往非常不准确。于是在我们的第二篇文章中,我们提出语义树子树替换的方法来进行组合性数据扩增 [9]。由于语义树子树已经实现了较好的自然语言到形式语言的对齐,我们的子树替换可以发现更复杂的可交换结构,并且较为准确地扩增出更复杂多样的数据。注意在文章中目标是把自然语言解析为另一种形式语言FunQL。

具体来说,如果两个语义树子树根结点的语义表示相近,那么我们就认为这两个子树就是可交换的,于是我们交换两颗子树对应的自然语言与形式语言的部分得到新的自然语言与形式语言对。如下图所示:

16d94d00ecf5c30c9c0656e65a8805c6.jpeg

从已有的两个句子“美国最小的州的最大的城市是什么”和“最大的州的人口有多少”以及相应的语义表示,可以准确扩增出“美国最小的州的最大的城市的人口有多少”以及相应的形式语义表示。

这样的重组能够在数据扩增的阶段就让模型见到更多可能的组合(甚至扩增出来的数据就已经覆盖了一些测试集中的数据),从而提升模型的组合泛化能力。

那么怎么得到这样的语义树呢?对于小的数据集,可以通过规则辅助少量的人工标注得到,对于更大规模的数据集,我们可以从自然语言和形式语言归纳得出(Tree Induction),例如,作为Span based Semantic Parsing [10] 中Hard EM 中间表示的副产品,我们可以归纳得出语义树。需要注意的是,因为可以利用形式语言中丰富且严格的语义表示信息,基于自然语言和形式语言的Tree Induction要比自然语言本身的Tree Induction要准确很多。这也是为什么我们能得到较为准确的语义树,从而让这种数据扩增奏效的原因。如下实验结果表明我们的数据扩增方法在GeoQuery数据集尤其是组合泛化的测试场景中带来了显著提升:

8ebbb8d7b9394d64b4fb8877db9e05ff.jpeg

数据与模型关系的探讨

或许有人会问,既然Span-based Semantic Parsing通过直接将Span和Tree的结构偏置注入到模型中,已经可以提升组合性语义解析表现,那为什么还要用中间产物Tree来做数据扩增,进而训练模型呢?这就涉及到另一个有趣且宽泛的问题:将归纳偏置通过某种结构直接注入到模型中,或者先将归纳偏置注入到数据中再训练一个统一的模型架构从而使之具有相应的归纳偏置,哪一个效果更好呢?

基于我的实验与阅读经验,将特定的归纳偏置直接注入到模型中,在很多情况下并不能按我们的期望奏效,甚至会影响模型原有的效果。尤其是在大模型时代,我们已经看到了随着模型规模和预训练数据量的增加,简单统一的Transformer架构已经可以实现越来越惊人的效果。例如,虽然ViT没有利用卷积这个显著帮助计算机视觉的特有结构化偏置操作,但在一定数据规模和模型规模下仍然能够匹配甚至超过之前的卷积网络。由于我们对Transformer架构为什么能够奏效还缺乏统一有效的理解,按我们的预想魔改模型架构就甚至可能会阻碍模型的预训练效果。另一方面,越来越多的证据表明,在数据量与模型越来越大的情况下,特定的模型结构偏置注入带来的效果会越来越小。于是在不影响模型结构的情况下,通过数据扩增给模型提供更多领域外泛化的困难样例,就成了一个重要选项。

总结

我们已经看到,随着模型规模增大,组合泛化的能力已经越来越强。并且,似乎有证据表明,prompt-tuning 似乎可以比精调整个模型(或者prompt-based fine-tuning)具有更好的组合泛化能力 [11]。但是总体来讲,模型的组合泛化能力和分布内泛化能力比起来却仍有欠缺,这也再次说明了即使在大模型时代,组合泛化仍是值得被研究的最关键问题之一。

注:本文原创首发于公众号“夕小瑶的卖萌屋”,作者:Albert Yang,编辑:白鹡鸰
更多文章见:耗时四年,我们写了一本1400页的AI全栈技术手册

参考文献

[1] Yang, Jingfeng, et al. "SEQZERO: Few-shot Compositional Semantic Parsing with Sequential Prompts and Zero-shot Models." NAACL 2022 Findings.

[2] Gao, Tianyu, Adam Fisch, and Danqi Chen. "Making pre-trained language models better few-shot learners."ACL 2021.

[3] Brown, Tom, et al. "Language models are few-shot learners." NeurlPS 2020.

[4] Wei, Jason, et al. "Chain of thought prompting elicits reasoning in large language models." arxiv 2022.

[5] Zhou, Denny, et al. "Least-to-Most Prompting Enables Complex Reasoning in Large Language Models." arxiv 2022.

[6] Kojima, Takeshi, et al. "Large Language Models are Zero-Shot Reasoners." arxiv 2022.

[7] Jia, Robin, and Percy Liang. "Data recombination for neural semantic parsing." ACL 2016.

[8] Andreas, Jacob. "Good-enough compositional data augmentation." ACL 2020.

[9] Yang, Jingfeng, Le Zhang, and Diyi Yang. "SUBS: Subtree Substitution for Compositional Semantic Parsing." NAACL 2022.

[10] Herzig, Jonathan, and Jonathan Berant. "Span-based semantic parsing for compositional generalization. ACL 2021.

[11] Qiu, Linlu, et al. "Evaluating the Impact of Model Scale for Compositional Generalization in Semantic Parsing." arxiv 2022.

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

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

相关文章

Transformer 在美团搜索排序中的实践

引言 美团搜索是美团 App 连接用户与商家的一种重要方式,而排序策略则是搜索链路的关键环节,对搜索展示效果起着至关重要的效果。目前,美团的搜索排序流程为多层排序,分别是粗排、精排、异构排序等,多层排序的流程主要…

ACL‘22杰出论文:Prompt范式有bug!

‍文 | pythonGPT-3等超大模型的兴起,也带来了 in-context learning (语境学习)的新范式。在语境学习中,模型并不使用梯度下降,根据监督样本调整参数;而是将监督样本的输入输出接起来作为prompt&#xff08…

程序员面试金典 - 面试题 02.06. 回文链表(快慢指针+链表反转)

1. 题目 编写一个函数,检查输入的链表是否是回文的。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1)…

美团外卖持续交付的前世今生

0. 前言 美团外卖自2013年创建以来,业务一直在高速发展,目前日订单量已突破3000万单,已成为美团点评最重要的业务之一。美团外卖所承载的业务,从早期单一的美食业务发展成为了外卖平台业务。目前除餐饮业务外,闪购、跑…

百万悬赏!寻找“模型越大,效果越差”的奇葩任务!

文 | 天于刀刀犹记 2018 年底谷歌开源 BERT 后,一大批基于 Attention 机制 Transformer 结构的大模型横空出世。XLNet、MPNet、ERNIE,NLP 任务彻底迈入大规模语料训练 fintune 的时代。之前一段时间爆火的 prompt 概念也离不开大模型中最基本的预训练 M…

程序员面试金典 - 面试题 02.08. 环路检测(快慢指针)

1. 题目 给定一个有环链表,实现一个算法返回环路的开头节点。 有环链表的定义:在链表中某个节点的next元素指向在它前面出现过的节点,则表明该链表存在环路。 示例 1: 输入:head [3,2,0,-4], pos 1 输出&#xff1…

Batch size 没必要设为2的次方!?

文 | 付瑶最近刷到一个话题很有趣,搬来和大家一起讨论下:“batch-size 一定要大小为2的幂吗?不这样设置会有啥差别吗?”发帖人认为大家都进入一个误区。坚持选择batch-size的大小为2的幂次数是因为曾经被告知从计算的角度是对训练效率有益的。但是这个“…

ICDAR 2019论文:自然场景文字定位技术详解

自然场景文字定位是文字识别中非常重要的一部分。与通用的物体检测相比,文字定位更具挑战性,文字在长宽比、尺度和方向上有更大范围的变化。针对这些问题,本文介绍一种融合文字片段及金字塔网络的场景文字定位方法。该方法将特征金字塔机制应…

程序员面试金典 - 面试题 10.01. 合并排序的数组

1. 题目 给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。 初始化 A 和 B 的元素数量分别为 m 和 n。 示例: 输入: A [1,2,3,0,0,0], m 3 B [2,5,6], n 3输出: [1,2,2,3,5,6]来源&…

LeCun论文被指「洗稿」? LSTM之父发文怒怼:抄我的还标原创

编 | 好困 Joey David源 | 新智元LSTM之父、暴脾气大爷Jrgen Schmidhuber又开炮了?这回怼的是LeCun,说最近的新论文是炒了自己20多年前的冷饭,只不过换了种说法而已。图灵奖得主Yann Lecun,作为AI界的三巨头之一,他发表…

ESLint 在中大型团队的应用实践

引言 代码规范是软件开发领域经久不衰的话题,几乎所有工程师在开发过程中都会遇到,并或多或少会思考过这一问题。随着前端应用的大型化和复杂化,越来越多的前端工程师和团队开始重视 JavaScript 代码规范。得益于前端开源社区的繁盛&#xff…

程序员面试金典 - 面试题 02.05. 链表求和

1. 题目 给定两个用链表表示的整数,每个节点包含一个数位。 这些数位是反向存放的,也就是个位排在链表首部。 编写函数对这两个整数求和,并用链表形式返回结果。 示例: 输入:(7 -> 1 -> 6) (5 -> 9 ->…

互联网人到最后拼的是体力

文 | 卫夕源 | 卫夕指北互联网人到最后拼的是体力,这么说可能有点绝对。但如果我们将时间线拉长,体力代表的精力绝对是一个人能在互联网领域保持长期竞争力的最重要的因素。至少也是最重要的之一。1.很多互联网人退出了职场竞争,看起来是心力…

谷歌、斯坦福联合发文:我们为什么一定要用大模型?

文 | Harris语言模型已经深刻变革了自然语言处理领域的研究和实践。近年来,大模型在多个领域都取得了重要的突破。它们无需在下游任务上微调,通过合适的指令或者提示就可以取得优异的性能,甚至有时让人为之惊叹。例如,GPT-3 [1] 可…

程序员面试金典 - 面试题 02.04. 分割链表

1. 题目 编写程序以 x 为基准分割链表,使得所有小于 x 的节点排在大于或等于 x 的节点之前。如果链表中包含 x,x 只需出现在小于 x 的元素之后(如下所示)。分割元素 x 只需处于“右半部分”即可,其不需要被置于左右两部分之间。 示例: 输入…

深度学习在搜索业务中的探索与实践

本文根据美团高级技术专家翟艺涛在2018 QCon全球软件开发大会上的演讲内容整理而成,内容有修改。 引言 2018年12月31日,美团酒店单日入住间夜突破200万,再次创下行业的新纪录,而酒店搜索在其中起到了非常重要的作用。本文会首先介…

京东金融,你到底是坏,还是码农裁多了??

7.12更新:部分基金赎回的钱已经到账小金库了,今日从小金库提现时又提示银行卡已删除,不过这次可以点击重新绑定,重新绑定时会报错“绑定的卡与原卡一致”,流程没法走完。但这时候再退回去却发现“银行卡已删除”的提示没有了。于是…

程序员面试金典 - 面试题 17.14. 最小K个数(快排划分O(n))

1. 题目 设计一个算法&#xff0c;找出数组中最小的k个数。以任意顺序返回这k个数均可。 示例&#xff1a; 输入&#xff1a; arr [1,3,5,7,2,4,6,8], k 4 输出&#xff1a; [1,2,3,4]提示&#xff1a; 0 < len(arr) < 100000 0 < k < min(100000, len(arr))来…

LruCache在美团DSP系统中的应用演进

背景 DSP系统是互联网广告需求方平台&#xff0c;用于承接媒体流量&#xff0c;投放广告。业务特点是并发度高&#xff0c;平均响应低&#xff08;百毫秒&#xff09;。 为了能够有效提高DSP系统的性能&#xff0c;美团平台引入了一种带有清退机制的缓存结构LruCache(Least Rec…

程序员面试金典 - 面试题 17.16. 理发师(动态规划DP)

1. 题目 一个有名的理发师会收到源源不断的预约请求&#xff0c;每个预约都可以选择接或不接。在每次预约服务之间要有休息时间&#xff0c;因此她不能接受相邻的预约。给定一个预约请求序列&#xff0c;替理发师找到最优的预约集合&#xff08;总预约时间最长&#xff09;&am…