查看原文
其他

如何基于大模型构建智能体?多机构百页综述从交互角度详解 AI Agent!

OpenMMLab OpenMMLab 2024-04-23


【OpenMMLab 社区开放麦】开播啦!!!技术下饭番追起来,每周一个新芝士。欢迎广大社区同学加入直播间参与讨论的同时,也非常鼓励社区同学拿起话筒登上舞台,社区知识开放麦等你来玩~





本期精彩



ChatGPT 对 NLP 产生了翻天覆地的影响,一时间,人们开始相信“NLP 已经被解决”。然而,在实际应用中我们发现,大模型仍有很多难以克服的问题。在这篇综述中,我们系统梳理了当下围绕着大模型的研究焦点,如何建立更全面的框架(以改善大模型与人、与知识库、与模型、与工具和与环境的交互),并提出了“交互式自然语言处理”的概念。一方面,通过大模型与外部实体的交互,可以解决大模型自身的一些固有问题如 hallucination;另一方面,解锁了大模型迈向通用人工智能的关键一步。



分享内容


  • 背景和动机

  • 从交互对象、交互媒介、交互方法等维度看大模型交互

  • 评测与应用,伦理与安全

  • 未来发展方向和挑战



分享时间


北京时间

2023 年 9 月21日(周四)

20: 00 - 20: 40(分享)

20: 40 - 21: 00(Q&A)



分享嘉宾


王泽坤


北京航空航天大学一年级在读硕士生,师从许可教授。研究方向为自然语言处理与多模态。他的主要研究兴趣为多模态基础模型、思维链 (Chain of Thought) 、检索增强以及 Alignment 等。同时也在探索大型语言模型作为 agent 的技术链,比如工具使用、社会模拟、具身智能等。他曾在澜舟科技、北京智源人工智能研究院等进行科研实习。



内容详情


什么是交互?


其实 “交互” 的概念并不是作者们臆想的。自从 ChatGPT 问世之后,诞生了很多关于 NLP 界新问题的论文,NLP 学界的关注点,逐渐从 “怎么打造模型”,过渡到了 “怎么打造框架”,也就是将更多的实体纳入到语言模型训练、推理的过程当中。该论文首次定义并系统解构了 “交互式 NLP”,并主要基于交互对象的维度,尽可能全面地讨论了各种技术方案的优劣以及应用上的考虑,包括:LM 与人类交互、LM 与知识库交互、LM 与模型和工具交互、LM 与环境交互。



因此,在交互的框架下,语言模型不再是语言模型本身,而是一个可以 “看”(observe)、可以 “动作”(act)、可以 “获取反馈”(feedback) 的基于语言的智能体。


与人交互


让语言模型与人交互可以分为三种方式:使用提示进行交流、使用反馈进行学习、使用配置进行调节。


另外,为了保证可规模化的部署,往往采用模型或者程序模拟人类的行为或者偏好,即从人类模拟中学习。



总的来说,与人交互要解决的核心问题是对齐问题 (alignment), 也就是如何让语言模型的响应更加符合用户的需要,更加有帮助、无害且有理有据,能让用户有更好的使用体验等。


“使用提示进行交流” 主要着重于交互的实时性和持续性,也就是强调连续性质的多轮对话。这一点和 Conversational AI 的思想是一脉相承的。


“使用反馈进行学习” 是当前进行 alignment 的主要方式,也就是让用户给语言模型的响应一个反馈,这种反馈可以是描述偏好的 “好 / 坏” 的标注,也可以是自然语言形式的更为详细的反馈。


“使用配置进行调节” 是一种比较特殊的交互方式,允许用户直接调整语言模型的超参数(比如 temperature)、或者语言模型的级联方式等。


“从人类模拟中学习” 可以促进上述三种方式的规模化部署,因为尤其在训练过程,使用真实的用户是不现实的。


与知识库交互



语言模型与知识库交互存在三个步骤:确定补充知识的来源 Knowledge Source,检索知识 Knowledge Retrieval,使用知识进行增强。


总的来说,与知识库进行交互可以减轻语言模型的 “幻觉” 现象 (hallucination), 即提升其输出的事实性、准确性等,还能帮助改善语言模型的时效性问题,帮助补充语言模型的知识能力


“确定补充知识的来源 Knowledge Source” 分为两种,一种是封闭的语料知识 (Corpus Knowledge), 如 WikiText 等;另一种是开放的网络知识 (Internet Knowledge), 比如使用搜索引擎可以得到的知识。


“检索知识 Knowledge Retrieval” 分为四种方式:


  • 基于语言的稀疏表示以及 lexical matching 的稀疏检索 (sparse retrieval),如 n-gram 匹配,BM25 等

  • 基于语言的稠密表示以及 semantic matching 的稠密检索 (dense retrieval),如使用单塔或者双塔模型作为检索器等

  • 基于生成式检索器,属于比较新的方式,代表工作是谷歌 Tay Yi 等人的 Differentiable Search Index

  • 基于强化学习,也是比较前沿的方式,代表工作比如 OpenAI 的 WebGPT


与模型或者工具交互



语言模型与模型或者工具交互,主要的目的是进行复杂任务的分解,比如将复杂的推理任务分解为若干子任务,这也是 Chain of Thought 的核心思想。这种类型的交互不仅可以提升语言模型的推理 (reasoning)、规划 (planning)、决策 (decision making) 能力,还能减轻语言模型的 “幻觉” (hallucination)、不准确输出等局限。


另外,有时候显式地分解一个复杂的任务是很困难的,这种时候,可以为不同的语言模型赋予不同的角色或者技能,然后让这些语言模型在互相协作、沟通的过程当中,隐式、自动地形成某种分工方案 (division of labor),进行任务的分解。这种类型的交互不仅仅可以简化复杂任务的解决流程,还可以对人类社会进行模拟,构造某种形式的智能体社会。


作者们将模型和工具放在一起,主要是因为模型和工具不一定是分开的两个范畴,比如一个搜索引擎工具和一个 retriever model 并没有本质的不同。这种本质,作者们使用 “任务分解后,怎样的子任务由怎样的对象来承担” 进行界定。


语言模型与模型或者工具交互时,有三种类型的操作:


  • Thinking: 模型与自己本身进行交互,进行任务的分解以及推理等;

  • Acting:模型调用其他的模型,或者外部工具等,帮助进行推理,或者对外部世界产生实际作用;

  • Collaborating: 多个语言模型智能体互相沟通、协作,完成特定的任务,或者模拟人类的社会行为。


与环境交互



语言模型和环境属于两个不同的象限:语言模型建立在抽象的文字符号之上,擅长 high-level 的推理、规划、决策等任务;而环境建立在具体的感知信号之上(如视觉信息、听觉信息等),模拟或者自然发生一些 low-level 的任务,如提供观察 (observation)、反馈 (feedback)、状态更新 (state transition) 等。


因此,要让语言模型能够有效且高效地与环境进行交互,主要包括了两个方面的努力:


  • Modality Grounding: 让语言模型可以处理图像、音频等多模态信息;

  • Affordance Grounding: 让语言模型在环境具体场景的尺度下对可能的、恰当的对象执行可能的、恰当的动作。


用什么交互:交互接口



在论文 Interaction Interface 章节,作者们系统地讨论了不同交互语言、交互媒介的用法和优劣,包括:


  • 自然语言:如 few-shot example, task instruction, role assignment 甚至结构化的自然语言等。主要讨论了其在泛化性、表达性上的特点及作用等。

  • 形式语言:如代码、语法、数学公式等。主要讨论了其在可解析性、推理能力上的特点及作用等。

  • 机器语言:如 soft prompts, 离散化的视觉 token 等。主要讨论了其在泛化性、信息瓶颈理论、交互效率上的特点及作用等。

  • 编辑:主要包括了对文本进行的删除、插入、替换、保留等操作。讨论了它的原理、历史、优势以及目前存在的局限。

  • 共享记忆:主要包括了 hard memory 和 soft memory. 前者将历史状态记录在一个 log 里面作为记忆,后者使用一个可读可写的记忆外置模块保存张量。论文讨论了两者的特点、作用以及存在的局限等。


怎么交互:交互方法



论文还全面、详细、系统地讨论了各种各样的交互方法,主要包括:


  • Prompting: 不调整模型参数,仅仅通过 prompt engineering 的方式调用语言模型,涵盖了上下文学习(In-Context Learning)、思维链提示 (Chain of Thought)、工具使用提示 (Tool-use)、级联推理链 (Prompt Chaining) 等多种方法,详细讨论了各种 Prompting 技巧的原理、作用、各种 trick 和局限等,比如在可控性和鲁棒性上的考虑等。

  • Fine-Tuning: 进行模型参数的调整,以让模型从交互信息中进行学习更新。本节涵盖了监督指令精调 (Supervised Instruction Tuning)、参数高效精调 (Parameter-Efficient Fine-Tuning)、持续学习 (Continual Learning)、半监督学习 (Semi-Supervised Fine-Tuning) 等方法。详细讨论了这些方法的原理、作用、优势、在具体使用时的考虑、及其局限。其中还包括了部分 Knowledge Editing 的内容(即编辑模型内部的知识)。

  • Active Learning: 交互式的主动学习算法框架。

  • Reinforcement Learning: 交互式的强化学习算法框架,讨论了在线强化学习框架、离线强化学习框架、从人类反馈中学习(RLHF)、从环境反馈中学习(RLEF)、从 AI 反馈中学习 (RLAIF) 等多种方法。

  • Imitation Learning: 交互式的模仿学习算法框架,讨论了在线模仿学习、离线模仿学习等。

  • Interaction Message Fusion: 为上述所有交互方法提供了一个统一的框架,同时在这个框架中,向外扩展,讨论了不同的知识、信息融合方案,比如跨注意力融合方案 (cross-attention)、约束解码融合方案 (constrained decoding) 等。


其他讨论


该论文中还展开介绍了其他方面讨论,如评测、应用、伦理、安全以及未来发展方向等,推荐大家在原文中查看更多细节。


相关工作

Interactive Natural Language Processing


项目地址:

https://github.com/InteractiveNLP-Team


论文链接:

https://arxiv.org/pdf/2305.13246.pdf


论文清单: 

https://github.com/InteractiveNLP-Team/awesome-InteractiveNLP-papers




交流群


欢迎大家加入大语言模型交流群

一起交流技术展望未来~





往期回顾


开集目标检测主要有两种方案,分别是 referring(CLIP-based)和 Grounding。近期,IDEA 研究院联合清华大学发布了一项工作,他们将基于 Transformer 的目标检测模型 DINO 和 Grounding 预训练结合了起来,同时使用多种数据:detection,grounding,和图像-文本对训练模型,使其拥有极强的开放集合检测能力。此外,他们还将 Grounding DINO 和多种不同的视觉基础模型组合了起来,使其拥有更强的能力。


上期开放麦,我们邀请到该工作的一作清华大学计算机系博士生刘世隆,分享他们在该方向的探索。超多干货,欢迎通过视频回放温习一下哦~



20B的体量,70B的性能,书生·浦语InternLM-20B带领开源大模型进入新时代

2023-09-20

Hugging Face 大模型评测榜集合收录 OpenCompass!

2023-09-19

Nougat来了,能否成为PDF格式转换的新神器?

2023-09-18



继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存