谷歌:级联语言模型是通用推理系统的未来

217bca8c440d10c454b48971fbca2d07.png

文 | ZenMoore

97b7801d4a316b59f456c6979e55c67a.png前言2c0148970319e4f4523814ebd408b981.png

相信每个 NLPer 心中都有对 Reasoning 的一片期冀。

当初笔者进入 NLP 的大门,就是相信:由于语言强大的表达能力以及语言模型强大的建模能力,Reasoning 一定就在不久的将来!可惜实际情况却是......[流泪]

直到我看到了 Yoshua Bengio 最近反复强调的 System 2 的概念,又重新燃起了心中的希望!

System 2 主要针对深度学习系统的 Reasoning 能力以及系统泛化(Systematic Generalization)等等。其中一个很重要的点是:sparse factor graph in space of high-level semantic variables. 结合 QA 的例子以及我浅薄的理解,这里做一些简单的解释:

  1. factor graph : 从 Q 到 A 的机理,往往不是 Q -> A 这么简单,实际人类在建模 QA 的时候,会在这条路径上增添很多很多的辅助状态以及相应的运作机理,例如 Causal Inference 中常说的 SCM (Structural Causal Model)

  2. sparse : from attention to conscious processing. 人类不会同时关注所有的状态(变量),而只会关注其中一些比较重要的或者相关的状态。通过这种主动的稀疏选择,在面对 distribution change 的时候,能够迅速更换另外的状态和运作机理进行适应(adaptation).

  3. high-level semantic variables : 这些状态的表达,一般是一个高阶的语义变量。

在今天这篇推文里,我们主要讨论如何用语言模型(LM)实现这件事情。

那现在就以 Google Research 等的新文章 “Language Model Cascades” 开始,聊一聊 A Path Towards Universal Reasoning Systems.

论文标题:
Language Model Cascades

论文机构:
Google Research, Mountain View, United States Alphabet, X, the Moonshot Factory.

发表于:
ICML 2022 Workshop : Beyond Bayes: Paths Towards Universal Reasoning Systems

论文链接:
https://arxiv.org/pdf/2207.10342.pdf

35c26edfef5553177847c01717372cf2.png级联 Cascadesaf42693ad5929957abbe55a8865ac321.png

总的来说,这篇文章是个 Proposal 性质的文章,核心论点是:利用概率编程语言,重复地提示(prompt)或调整单个或多个互相关联的语言模型,以进行复杂的多步推理。

这样,基于一个端到端的学习目标,就能够使用一个通用过程进行系列模型的 inference, 参数调整或者 prompt 选择。

还是用 QA 的例子,一般的 QA 是这样的:

我们有两种方式去做这件事情(假设数据集为 ):

  1. few-shot prompting (aka. in-context learning) : ,即将小样本集作为输入的上下文拼接在输入的前面,而不去调整模型参数,常用于 GPT-3 等模型;

  2. fine-tune : tuned on ,即使用训练集调整模型参数。

然后,我们定义语言模型级联(LM Cascades): 以从语言模型采样出的字符串为随机变量取值的一系列相互关联的概率程序。

  • string-valued : 例如 P(A='老鼠'|Q='猫喜欢吃什么')

  • 相互关联的概率程序:可以简单地理解为图形式的模型链条,详见下文。

669d7c52600f4820dff7a55ee71fc4c0.png成功的例子7626611c8a30e28368da80280d4df455.png

Scratchpads & Chain of Thought

36525b3f68eef77b71b0bc97c4efa104.png

这类模型的 Cascades 如上图所示,总的来说是一种 Question-Thought-Answer 的结构:

  • 理想情况下的概率建模为:

  • 但在实际场景下, 通常我们只有一个 small set 由完整的 三元组组成, 以及一个 large set 由 对组成。因为缺乏完全的监督数据,我们只能通过先验预测分布 去建模:

Scratchpad[1] 和 Chain-of-Thought[2] 两种模型所做的事情,本质上是建模这个先验预测分布(prior predictive distribution):

  • scratchpad : 通过精调 (finetuning) 去做。

  • chain of thought : 将 作为 prompt, 即通过 few-shot prompting 去做。

多说一句:在全部的 上面进行求和显然不现实,通常采用的方式是:使用 beam search 估计   ,然后在此之上进行求和。

Semi-Supervised Learning

e2c7fcf1ca443b4d326ad04803c8240f.png

仍然是 Question-Thought-Answer 的结构,但在半监督学习的设定下,我们是为 中的 Q-A 对新增一些未知隐变量 去解决。这样就变成了一个比较典型的变分推断问题。

这类方法比较典型的工作是:Self-Taught Reasoner (STaR) [3],该模型使用 EM 算法进行优化:

  • -步:  首先在 上精调模型,然后对于 , 通过在 上的拒绝采样估计未知量 . 直到找到能够导致正确回答 的 . (如果找不到, 就从 采样) (这种方式也称为 :“rationale generation with rationalization”).

  • -步: 基于所估计的 上的 , 再次精调模型更新参数。

Selection-Inference

15c7cc243345016da3fbbf6cbef8d1bb.png

这类方法[4]将推理过程分为两个部分:

  • 选择:给定问题 , 从事件集合 中选择相关子集;

  • 推断:给定事件子集,推测新的事件集合。

Verifiers

5881724411728b6d1ba759e87facee03.png

这类方法[5]新增了一些验证器  ,来判断 Thought 或者 Answer 是否合理有效(valid):

where

Tool-use

上面这些方法仅仅是 Language Model 的控制流,没有外部的反馈(external feedback).

在 Cascades 的框架下,我们可以非常方便的引入外部工具,以进行额外的知识补充,比如:

  • calculator : Training verifiers to solve math word problems (https://arxiv.org/abs/2110.14168).

  • web : WebGPT: Browser-assisted question-answering with human feedback (https://openai.com/blog/webgpt/).

  • simulation :  The frontier of simulation-based inference (https://www.pnas.org/doi/10.1073/pnas.1912789117)

Twenty Questions

b70f7d5c9114df934946a69463a2c87c.png

再举一个交互式问答的例子,如上图,是 Big-Bench [6] 中的一个任务:两个 agent, 分别叫做  Alice (A) 和 Bob (B). 在给定的游戏规则下,两个 agent 进行语言交流,A 描述一个概念,B 去猜,然后 A 回答是或不是,直到 B 猜出来。

这样一个过程也能很容易地归结到 Cascades 的框架中去。

未来

回到最初的问题,Sparse Factor Graph 以及 High-Level Semantic Variables. 我们可以先抛弃掉 Causal Mechanism 等复杂的问题,先只去考虑这种简单的 Cascading Mechanism.

笔者一直觉得,只用一个模型 One-For-All 肯定是行不通的:虽然我们有 Gato [7] 等所谓的 Generalist Agent,我们也很难 claim 这些模型有 Human-level 的 Out-of-Distribution 的泛化能力,或者 Systematic Generalization. 这也符合 No-Free-Lunch Theorem 一直以来告诉我们的事情。这是第一点。

第二点是,对于 Universal Reasoning 而言,本质的问题并不是如何 encode 尽可能多的知识到单个模型当中,而是:How to re-use pieces of knowledge.

那么基于这两点,就涉及到一个模块化的问题:我们能不能定义一些模块化的知识以及这些模块之间的交互方式,来实现更加本质的 Reasoning (参考:Is a Modular Architecture Enough? [8])

LM Cascades 就是这个思想的一个很好的尝试:不同的语言模型对应着不同功能的知识模块,然后通过人为定义的交互 Graph 来执行特定的任务。这么做的好处至少是:

  1. 端到端的模块化:以一种端到端的方式,做到了不同语言模型,根据其所执行的不同功能,进行专门的精调优化(finetuning)或者提示优化(prompting)。

  2. sparse factor graph : 以一种人为定义的方式,指定了任务内在的知识结构,比如将 Q->A 分解为 Q->T->A 等。这也是近期各种 Chain-of-Thoughts 相关工作令人兴奋的点,例如 AI Chains [9] 等。这种知识结构是稀疏的,因为我们人为定义了某个 LM 是基于哪个特定的 LM,而不是全部 LM.

  3. high-level semantic variables : 语言的表达能力是极大的,因此,以 language 作为 variable value 的一个图结构,具有非常强大的对于实际问题的建模能力。当然,language 只是一个选择,high-layer hidden states 也是一个(可能更好的)选择。

当然,不只有语言模型可以级联,多模态模型也能够级联:比如同样来自 Google 的 Socratic Models [10], 就级联了三个模态(语言-视觉-音频)的语言模型,达到了很好的零样本多模态推理能力。

520dea604c460ff36aafe70ad17313fe.png

因此,笔者相信 LM Cascades 体现出了 Reasoning System 的未来:(1)模块化、(2)稀疏化、(3)结构化。

这样一个系统,以语言为媒介,最好可以通过一种端到端的方式去进行优化。从这个角度看,这个 Proposal 还有很多需要探索的点,例如:

  1. 既然“端到端+手工Cascading“可以同时做到这三点,那么有没有什么办法,把 Cascading 也纳入到端到端的过程中呢(即以一种自动或者可微的方式进行),以找到一种稀疏的条件结构?

  2. 有没有什么更好的模块化机制?

  3. 推理速度...

  4. 等等。

我相信对于大模型时代的 Reasoning 来说,这些都是关键而有趣的问题。

458e7f197323cc12fb52da49c55c31d3.jpeg卖萌屋作者:ZenMoore

智源实习生🧐,爱数学爱物理爱 AI🌸 想从 NLP 出发探索人工认知人工情感的奥秘🧠🤖!个人主页🌎 zenmoore.github.io 知乎🤔 ZenMoore, 微信📩 zen1057398161 嘤其鸣矣,求其友声✨!

作品推荐

  1. 一文跟进Prompt进展!综述+15篇最新论文逐一梳理

  2. 图灵奖大佬+谷歌团队,为通用人工智能背书!CV 任务也能用 LM 建模!

  3. 以4%参数量比肩GPT-3!Deepmind 发布检索型 LM,或将成为 LM 发展新趋势!?

9a82902e704cbfbbd8fa37da26f63549.jpeg后台回复关键词【入群

加入卖萌屋NLP、CV、搜广推与求职讨论群

5fc4ce07985dd4f98f11df551f179b29.png

[1] Show Your Work: Scratchpads for Intermediate Computation with Language Models

[2] Chain of Thought Prompting Elicits Reasoning in Large Language Models

[3] STaR: Bootstrapping Reasoning With Reasoning

[4] Selection-Inference: Exploiting large language models for interpretable logical reasoning

[5] Training verifiers to solve math word problems

[6] Beyond the Imitation Game: Quantifying and extrapolating the capabilities of language models

[7] Gato : A Generalist Agent, https://www.deepmind.com/publications/a-generalist-agent

[8] Is a Modular Architecture Enough? https://arxiv.org/abs/2206.02713

[9] AI Chains : Transparent and Controllable Human-AI Interaction by Chaining Large Language Model Prompts

[10] Socratic Models: Composing Zero-Shot Multimodal Reasoning with Language

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

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

相关文章

Hibernate+mysql 中文问题解决方案.

1, mysql安装时设置字符集utf-8, jdbc驱动3.0.15以上. 2. hibernate配置文件中,加上属性 <property name"connection.useUnicode">true</property> <property name"connection.characterEncoding">UTF-8</property> 3. web.xml设置…

Spring Boot 2.x基础教程:Swagger静态文档的生成

前言 通过之前的两篇关于Swagger入门以及具体使用细节的介绍之后&#xff0c;我们已经能够轻松地为Spring MVC的Web项目自动构建出API文档了。如果您还不熟悉这块&#xff0c;可以先阅读&#xff1a; Spring Boot 2.x基础教程&#xff1a;使用Swagger2构建强大的API文档Sprin…

LintCode 802. 数独(回溯)/ LeetCode 37. 解数独

1. 题目 编写一个程序&#xff0c;通过填充空单元来解决数独难题。 空单元由数字0表示。 你可以认为只有一个唯一的解决方案。 LeetCode 37 题类似&#xff0c;把 int 改成 char&#xff0c;注意转换 2. 解题 行、列、小9宫格内 1-9 都只出现一次暴力回溯&#xff0c;坐标转…

完爆GPT3、谷歌PaLM!检索增强模型Atlas刷新知识类小样本任务SOTA

文 | 小戏不知不觉间&#xff0c;大模型小样本成为了小样本学习领域的主流打法&#xff0c;在许多的任务背景下&#xff0c;一套通用的思路是先标注小数据样本&#xff0c;再从预训练大模型的基础上使用小数据样本进行训练。尽管如我们所见&#xff0c;大模型在一众小样本学习的…

简单的分页类

<% LanguageVBScript %><% Option Explicit %><SCRIPT LANGUAGEVBScript RUNATSERVER> 确保引用 ADO Typelib 或使用 ADOVBS.Inc Dim iPageNum, iRowsPerPage Main Sub Main() Dim rst Dim sSQL, sConnString If Request.QueryString("iPageNu…

开源:Swagger Butler 1.1.0发布,利用ZuulRoute信息简化配置内容

Swagger Butler是一个基于Swagger与Zuul构建的API文档汇集工具。通过构建一个简单的Spring Boot应用&#xff0c;增加一些配置就能将现有整合了Swagger的Web应用的API文档都汇总到一起&#xff0c;方便查看与测试。 项目地址 Github&#xff1a;https://github.com/dyc87112/…

LeetCode 10. 正则表达式匹配(递归/DP)

文章目录1. 题目2. 解题2.1 递归2.2 DP1. 题目 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个前面的那一个元素 所谓匹配&#xff0c;是要涵盖 整个 字符串 s的&#xff0c;而不…

.net 页面框架的层次问题,嵌套问题

第一层&#xff1a;Form1&#xff1a;<form id"Form1" runat"server">第二层&#xff1a;才是我们拖放的控件。<asp:TextBox id"TextBox1" runat"server"></asp:TextBox>一般来说就只有这两层了。但是我们想要控件嵌…

3000块能买AAAI的Strong Accept?

编 | Aeneas 好困源 | 新智元最近&#xff0c;知乎上爆出一张AI投稿群的匿名聊天截图&#xff0c;网友讨论「加群互相bid」&#xff0c;还说3000块就可以买到一个AAAI的「strong accept」。正值AAAI 2023论文截止提交之际&#xff0c;知乎上突然出现了一张AI投稿群的匿名聊天截…

Spring Boot中使用MongoDB的连接池配置

因为今天开发遇到了性能问题&#xff0c;可能与MongoDB的连接有关&#xff0c;所以稍稍深入看了一下&#xff0c;正好搜到原来有人写过这篇相关的内容&#xff0c;所以转载过来。回头有时间可以写个扩展到SpringForAll里&#xff0c;主体思路还是一样的。感谢这位美女程序媛的文…

LeetCode 409. 最长回文串(计数)

1. 题目 给定一个包含大写字母和小写字母的字符串&#xff0c;找到通过这些字母构造成的最长的回文串。 在构造过程中&#xff0c;请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。 注意: 假设字符串的长度不会超过 1010。 示例 1: 输入: "abccccdd" 输出…

又一名视觉大牛从大厂离开!阿里达摩院 XR 实验室负责人谭平离职

文 | 王玥编 | 陈彩娴源 | AI科技评论AI科技评论获悉&#xff0c;阿里巴巴达摩院 XR 实验室负责人谭平已于近日离职。谭平曾受邀担任国际顶级学术会议CVPR、SIGGRAPH、IROS领域主席&#xff0c;是3D视觉领域的标杆人物。谭平于2019年9月入职阿里人工智能实验室担任计算机视觉首…

【小马哥】Spring Boot系列讲座

这里推荐一个不错的Spring Boot系列讲座&#xff0c;讲师简介如下&#xff1a; 小马哥&#xff0c;阿里巴巴技术专家&#xff0c;从事十余年Java EE 开发&#xff0c;国内微服务技术讲师。目前主要负责微服务技术推广、架构设计、基础设施、迁移等。重点关注云计算、微服务以及…

程序员面试金典 - 面试题 03.03. 堆盘子 (vector(stack))

1. 题目 堆盘子。设想有一堆盘子&#xff0c;堆太高可能会倒下来。因此&#xff0c;在现实生活中&#xff0c;盘子堆到一定高度时&#xff0c;我们就会另外堆一堆盘子。 请实现数据结构SetOfStacks&#xff0c;模拟这种行为。SetOfStacks 应该由多个栈组成&#xff0c;并且在…

事件冒泡控件示例(转载)

.NET Framework 开发员指南 事件冒泡ASP.NET 页框架提供一种称为“事件冒泡”的技术&#xff0c;允许子控件将事件沿其包容层次结构向上传播。事件冒泡允许在控件层次结构中更方便的位置引发事件&#xff0c;并且允许将事件处理程序附加到原始控件以及公开冒泡的事件的控件上。…

Oracle 大规模裁员进行时:营收暴跌 28%,数据库地位被侵蚀

源 | InfoQ裁员潮席卷国外大厂&#xff0c;数据库巨头 Oracle 也不例外。“我的经理给我打了 3 分钟的电话。毫无情感地告诉我&#xff1a;你的职位被取消了&#xff0c;人力资源部稍后会把细节发给你&#xff0c;再见。”“我在 CX 营销部门工作了 8 年。HR 昨天下午打电话给我…

Spring Boot中使用RabbitMQ

很久没有写Spring Boot的内容了&#xff0c;正好最近在写Spring Cloud Bus的内容&#xff0c;因为内容会有一些相关性&#xff0c;所以先补一篇关于AMQP的整合。 Message Broker与AMQP简介 Message Broker是一种消息验证、传输、路由的架构模式&#xff0c;其设计目标主要应用…

程序员面试金典 - 面试题 03.05. 栈排序(两栈)

1. 题目 栈排序。 编写程序&#xff0c;对栈进行排序使最小元素位于栈顶。 最多只能使用一个其他的临时栈存放数据&#xff0c;但不得将元素复制到别的数据结构&#xff08;如数组&#xff09;中。 该栈支持如下操作&#xff1a;push、pop、peek 和 isEmpty。当栈为空时&#…

大足石刻一日游

今天早上9点半从重庆出发&#xff0c;11点半到的目的地。玩了3个小时&#xff0c;下午5点又回来了。逛了一会儿&#xff0c;感觉被骗了&#xff0c;没多少东西嘛&#xff0c;好多石刻都被风化的差不多了&#xff0c;1个小时就出来了&#xff0c;80块的门票真“值”。下面是手机…

为什么说工作期间需要摸鱼?

文 | 梦晨(发自凹非寺)源 | 量子位一努力思考就会精神疲惫&#xff0c;学习工作一天之后只想无脑躺平。最新研究发现&#xff0c;这并不是你一个人的错&#xff0c;而是有着普遍的生理基础&#xff1a;思考时脑内会产生一种毒素&#xff0c;积累太多会破坏大脑功能&#xff0c;…