机器之心专栏
机器之心编辑部
一切都要从 ChatGPT 的横空出世说起......
曾经一片祥和的 NLP 社区,被这个突如其来的 “怪物” 吓到了!一夜之间,整个 NLP 圈发生了巨大的变化,工业界迅速跟进,资本 “狂飙”,开始了复刻 ChatGPT 之路;学术界突然陷入了一片迷茫的状态......大家慢慢开始相信 “NLP is solved!”
然而,从最近依然活跃的 NLP 学术圈和层出不穷的优秀工作来看,事实并非如此,甚至可以说 “NLP just got real!”
这几个月,北航、Mila、香港科技大学、苏黎世联邦理工学院(ETH)、滑铁卢大学、达特茅斯学院、谢菲尔德大学、中科院等多家机构,经过系统、全面的调研之后,打磨出一篇 110 页的论文,系统阐述了后 ChatGPT 时代的技术链:交互。
论文地址:
https://arxiv.org/abs/2305.13246
项目资源:
https://github.com/InteractiveNLP-Team
与传统的 “人在环路(HITL)”、“写作助手” 等类型的交互不同,本文所讨论的交互,有着更高、更全面的视角:
因此,让语言模型(LM)与外部实体以及自我进行交互,不仅仅可以帮助弥合大模型的固有缺陷,还可能是通往 AGI 的终极理想的一个重要的里程碑!
什么是交互?
其实 “交互” 的概念并不是作者们臆想的。自从 ChatGPT 问世之后,诞生了很多关于 NLP 界新问题的论文,比如:
可见,NLP 学界的关注点,逐渐从 “怎么打造模型”,过渡到了 “怎么打造框架”,也就是将更多的实体纳入到语言模型训练、推理的过程当中。最为典型的例子就是大家所熟知的 Reinforcement Learning from Human Feedback (RLHF), 基本原理就是让语言模型从与人的交互(反馈)中进行学习 [7],这一思想成为了 ChatGPT 画龙点睛的一笔。
因此可以说,“交互” 这个特性,是 ChatGPT 之后,NLP 最为主流的技术发展路径之一!作者们的论文首次定义并系统解构了 “交互式 NLP”,并主要基于交互对象的维度,尽可能全面地讨论了各种技术方案的优劣以及应用上的考虑,包括:
与某个对象进行交互,作者们称之为 “XXX-in-the-loop”, 表示这个对象参与了语言模型训练或者推理的过程,并且是以一种级联、循环、反馈、或者迭代的形式参与其中的。
与人交互
让语言模型与人交互可以分为三种方式:
另外,为了保证可规模化的部署,往往采用模型或者程序模拟人类的行为或者偏好,即从人类模拟中学习。
总的来说,与人交互要解决的核心问题是对齐问题 (alignment), 也就是如何让语言模型的响应更加符合用户的需要,更加有帮助、无害且有理有据,能让用户有更好的使用体验等。
“使用提示进行交流” 主要着重于交互的实时性和持续性,也就是强调连续性质的多轮对话。这一点和 Conversational AI [8] 的思想是一脉相承的。也就是,通过多轮对话的方式,让用户连续地问下去,让语言模型的响应在对话中慢慢地对齐于用户偏好。这种方式通常在交互中不需要模型参数的调整。
“使用反馈进行学习” 是当前进行 alignment 的主要方式,也就是让用户给语言模型的响应一个反馈,这种反馈可以是描述偏好的 “好 / 坏” 的标注,也可以是自然语言形式的更为详细的反馈。模型需要被训练,以让这些反馈尽可能地高。比较典型的例子就是 InstructGPT 所使用的 RLHF [7],首先使用用户标注的对模型响应的偏好反馈数据训练奖励模型,然后使用这个奖励模型以某种 RL 算法训练语言模型以最大化奖励(如下图)。
Training language models to follow instructions with human feedback [7]
“使用配置进行调节” 是一种比较特殊的交互方式,允许用户直接调整语言模型的超参数(比如 temperature)、或者语言模型的级联方式等。典型的例子比如谷歌的 AI Chains [9], 带有不同预设 prompt 的语言模型互相连接构成了一个用于处理流程化任务的推理链条,用户可以通过一个 UI 拖拽调整这个链条的节点连接方式。
“从人类模拟中学习” 可以促进上述三种方式的规模化部署,因为尤其在训练过程,使用真实的用户是不现实的。比如 RLHF 通常需要使用一个 reward model 来模拟用户的偏好。另一个例子是微软研究院的 ITG [10], 通过一个 oracle model 来模拟用户的编辑行为。
最近,斯坦福 Percy Liang 教授等人构建了一个非常系统化的 Human-LM 交互的评测方案:Evaluating Human-Language Model Interaction [11], 感兴趣的读者可以参考本论文或者原文。
与知识库交互
语言模型与知识库交互存在三个步骤:
总的来说,与知识库进行交互可以减轻语言模型的 “幻觉” 现象 (hallucination), 即提升其输出的事实性、准确性等,还能帮助改善语言模型的时效性问题,帮助补充语言模型的知识能力(如下图)等。
MineDojo [16]:当一个语言模型智能体遇到不会的任务,可以从知识库中查找学习资料,然后在资料的帮助下,完成这个任务。
“Knowledge Source” 分为两种,一种是封闭的语料知识 (Corpus Knowledge), 如 WikiText 等 [15];另一种是开放的网络知识 (Internet Knowledge), 比如使用搜索引擎可以得到的知识 [14]。
“Knowledge Retrieval” 分为四种方式:
与模型或者工具交互
语言模型与模型或者工具交互,主要的目的是进行复杂任务的分解,比如将复杂的推理任务分解为若干子任务,这也是 Chain of Thought [17] 的核心思想。不同的子任务可以使用具有不同能力的模型或者工具解决,比如计算任务可以使用计算器解决,检索任务可以使用检索模型解决。因此,这种类型的交互不仅可以提升语言模型的推理 (reasoning)、规划 (planning)、决策 (decision making) 能力,还能减轻语言模型的 “幻觉” (hallucination)、不准确输出等局限。特别地,当使用工具执行某种特定的子任务时,可能会对外部世界产生一定影响,比如使用 WeChat API 发了一条朋友圈等,称为 “面向工具的学习”(Tool-Oriented Learning) [2].
另外,有时候显式地分解一个复杂的任务是很困难的,这种时候,可以为不同的语言模型赋予不同的角色或者技能,然后让这些语言模型在互相协作、沟通的过程当中,隐式、自动地形成某种分工方案 (division of labor),进行任务的分解。这种类型的交互不仅仅可以简化复杂任务的解决流程,还可以对人类社会进行模拟,构造某种形式的智能体社会。
作者们将模型和工具放在一起,主要是因为模型和工具不一定是分开的两个范畴,比如一个搜索引擎工具和一个 retriever model 并没有本质的不同。这种本质,作者们使用 “任务分解后,怎样的子任务由怎样的对象来承担” 进行界定。
语言模型与模型或者工具交互时,有三种类型的操作:
注意:Thinking 主要论及的是 “多阶段思维链” (Multi-Stage Chain-of-Thought),即:不同的推理步骤,对应着语言模型不同的调用 (multiple model run),而不是像 Vanilla CoT [17] 那样,跑一次模型同时输出 thought+answer (single model run).
这里部分承袭的是 ReAct [18] 的表述方式。
Thinking 的典型工作包括了 ReAct [18], Least-to-Most Prompting [19], Self-Ask [20] 等。例如,Least-to-Most Prompting [19] 首先将一个复杂问题分解为若干简单的模块子问题,然后迭代式地调用语言模型逐个击破。
Acting 的典型工作包括了 ReAct [18], HuggingGPT [21], Toolformer [22] 等。例如,Toolformer [22] 将语言模型的预训练语料处理成了带有 tool-use prompt 的形式,因此,经过训练后的语言模型,可以在生成文本的时候,自动地在正确的时机调用正确的外部工具(如搜索引擎、翻译工具、时间工具、计算器等)解决特定的子问题。
Collaborating 主要包括:
Generative Agents: Interactive Simulacra of Human Behavior, https://arxiv.org/pdf/2304.03442.pdf
与环境交互
语言模型和环境属于两个不同的象限:语言模型建立在抽象的文字符号之上,擅长 high-level 的推理、规划、决策等任务;而环境建立在具体的感知信号之上(如视觉信息、听觉信息等),模拟或者自然发生一些 low-level 的任务,如提供观察 (observation)、反馈 (feedback)、状态更新 (state transition) 等(如:现实世界中一个苹果落到了地上,模拟引擎中一个 “苦力怕” 出现在了你的面前)。
因此,要让语言模型能够有效且高效地与环境进行交互,主要包括了两个方面的努力:
对于 Modality Grounding 最为典型的就是视觉 - 语言模型。一般而言可以使用单塔模型如 OFA [28], 双塔模型如 BridgeTower [29], 或者语言模型与视觉模型的交互如 BLIP-2 [30] 来进行。这里不再多说,读者可以详看本论文。
对于 Affordance Grounding 主要有两个考虑,即:如何在给定任务的条件下进行 (1) 场景尺度的感知 (scene-scale perception), 以及 (2) 可能的动作 (possible action)。举个例子:
比如上图的场景,给定任务 “请关闭客厅里面的灯”,“场景尺度的感知” 要求我们找到全部红色框选的灯,而不要选中不在客厅而在厨房的绿色圈选的灯,“可能的动作” 要求我们确定可行的关灯方式,比如拉线灯需要使用 “拉” 的动作,而开关灯需要使用 “拨动开关” 的动作。
通常而言,Affordance Grounding 可以使用一个依附于环境的价值函数解决,如 SayCan [31] 等,也可以使用一个专门的 grounding model 如 Grounded Decoding [32] 等。甚至也可以通过与人、与模型、与工具等的交互来解决(如下图)。
Inner Monologue [33]
用什么交互:交互接口
在论文 Interaction Interface 章节,作者们系统地讨论了不同交互语言、交互媒介的用法和优劣,包括:
怎么交互:交互方法
论文还全面、详细、系统地讨论了各种各样的交互方法,主要包括:
其他讨论
囿于篇幅,本文不详细介绍其他方面的讨论,如评测、应用、伦理、安全以及未来发展方向等。但是这些内容在该论文原文中,仍然占据了 15 页的内容,因此推荐读者在原文中查看更多细节,以下为这些内容的大纲:
对交互的评测
论文中对评测的讨论主要涉及以下关键词:
交互式 NLP 的主要应用
可控文本生成 (Controllable Text Generation)
交互式写作助手 (Writing Assistant)
具身智能 (Embodied AI)
游戏 (Text Game)
其他应用
伦理与安全
讨论了交互型语言模型在教育上的影响,还针对社会偏见、隐私等伦理安全问题进行了讨论。
未来发展方向与挑战
参考文献
1.Experience Grounds Language, https://arxiv.org/abs/2004.10151
2.Tool Learning with Foundation Models
3.Foundation Models for Decision Making: Problems, Methods, and Opportunities
4.ChatGPT for Robotics: Design Principles and Model Abilities
5.Augmented Language Models: a Survey
6.Sparks of Artificial General Intelligence: Early experiments with GPT-4
7.Training language models to follow instructions with human feedback, https://arxiv.org/abs/2203.02155
8.Conversational AI, http://coai.cs.tsinghua.edu.cn/
9.AI Chains: Transparent and Controllable Human-AI Interaction by Chaining Large Language Model Prompts, https://arxiv.org/abs/2110.01691
10.Interactive Text Generation
11.Evaluating Human-Language Model Interaction
12.Transformer Memory as a Differentiable Search Index, https://arxiv.org/abs/2202.06991
13.Language Models as Knowledge Bases?, https://arxiv.org/abs/1909.01066
14.WebGPT: Browser-assisted question-answering with human feedback, https://arxiv.org/abs/2112.09332
15.Atlas:Few-shot Learning withRetrieval Augmented Language Models, https://arxiv.org/pdf/2208.03299.pdf
16.MINEDOJO:Building Open-EndedEmbodied Agents with Internet-Scale Knowledge, https://arxiv.org/pdf/2206.08853.pdf
17.Chain-of-Thought Prompting Elicits Reasoning in Large Language Models, https://arxiv.org/abs/2201.11903
18.ReAct: Synergizing Reasoning and Acting Inlanguage Models, https://arxiv.org/abs/2210.03629
19.Least-to-Most Prompting Enables complex reasoning in Large Language Models, https://arxiv.org/pdf/2205.10625.pdf
20.Measuring and Narrowingthe Compositionality Gap in Language Models, https://ofir.io/self-ask.pdf
21.HuggingGPT, https://arxiv.org/abs/2303.17580
22.Toolformer: Language Models Can Teach Themselves to Use Tools, https://arxiv.org/abs/2302.04761
23.Socratic Models, https://arxiv.org/pdf/2204.00598.pdf
24.MindCraft: Theory of Mind Modeling for Situated Dialogue in Collaborative Tasks, https://aclanthology.org/2021.emnlp-main.85/
25.Computational Language Acquisition with Theory of Mind, https://openreview.net/forum?id=C2ulri4duIs
26.Generative Agents: Interactive Simulacra of Human Behavior, https://arxiv.org/pdf/2304.03442.pdf
27.CAMEL: Communicative Agents for “Mind” Exploration of Large Scale Language Model Society, https://www.camel-ai.org/
28.OFA: Unifying Architectures, Tasks, and Modalities Through a Simple Sequence-to-Sequence Learning Framework, https://arxiv.org/abs/2202.03052
29.BridgeTower: Building Bridges Between Encoders in Vision-Language Representation Learning, https://arxiv.org/abs/2206.08657
30.BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models, https://arxiv.org/pdf/2301.12597.pdf
31.Do As I Can,Not As I Say:Grounding Language in Robotic Affordances, https://say-can.github.io/
32.Grounded Decoding: Guiding Text Generation with Grounded Models for Robot Control, https://grounded-decoding.github.io/
33.Inner Monologue:Embodied Reasoning through Planning with Language Models, https://innermonologue.github.io/
Large Language Models with Controllable Working Memory, https://arxiv.org/abs/2211.05110