当前位置:   article > 正文

解构复合人工智能系统(Compound AI Systems):关键术语、理论、思路、实践经验

解构复合人工智能系统(Compound AI Systems):关键术语、理论、思路、实践经验

编者按: 大模型的出现为构建更智能、更复杂的人工智能系统带来了新的契机。然而,单一的大模型难以应对现实世界中错综复杂的问题,需要与其他模块相结合,构建出复合人工智能系统(Compound AI Systems)。

本文作者深耕人工智能领域多年,洞见独到。文中系统性地介绍了四种常见的 Compound AI Systems 部署模式:RAG 系统、Conversational AI 系统、Multi-Agent 系统和 CoPilot 系统。作者阐明了这些部署模式的工作原理、模块间的交互方式,并深入探讨了“Agentic”理念、模块化设计的优势等核心概念,为读者构建 Compound AI Systems 提供了宝贵的理论经验。相信通过学习本文,读者们能够对如何构建 Compound AI Systems 有更深入的认识,为后续的工程实践奠定扎实的基础。

作者 | Raunak Jain

编译 | 岳扬

如何使用开源工具构建可根据特定需求定制的工作流(configurable flows)和由多个不同模块组合而成的复合人工智能系统(compound AI systems)。

01 什么是 compound AI systems ?

最近,伯克利大学(Berkeley)的研究人员撰写了一篇文章《The Shift from Models to Compound AI Systems》,他们在这篇文章中梳理了 LLM apps 的发展进程,并强调complex pipelines 具备不断发展和演化的特性,这些 pipelines 由多个组件共同协作来构建智能系统(intelligent systems),而非依赖于某一个闭源模型。虽然最终的 compound AI systems 可能使用的底层模型(如 GPT4)相同,但是根据不同的具体提示词(prompting)和上下文(context),系统中的各个组件可能会被视为是不同的组件。

Compound AI systems 在现实场景的一些常见落地部署模式如下:

  1. RAG(检索(retrieval)和理解(understanding)至关重要 —— 具有模拟人类思维过程或根据先前的学习产生新的想法、根据逻辑、规则或先前的知识进行推理和分析、阅读相关背景信息的能力,他们可以 self-reflect (译者注:分析自己的运行方式、决策过程或者与用户交互的方式,并据此进行调整或改进)并尝试通过分析语境、推理、模式识别等方式理解用户的意图,并作出相应的模型响应或行为。在这种情境下,最理想的配置或解决方案是使用 Agent Assist System 。 (译者注:利用人工智能技术,如自然语言处理、推荐算法等,来分析和理解用户的需求,并根据这些需求为用户提供帮助。)当与面向用户的模型/系统(如对话模型)结合使用时,RAG 系统可以成为 Conversational AI 或 CoPilot system 的一部分。
  2. Multi — Agent Problem Solvers(各个 Agent 通过扮演不同的角色进行协作来共同解决问题至关重要) —— 这些系统中的各个 Agent 都有明确定义的角色和目的,相互协作,根据彼此的输出,自动构建解决方案。每个 Agent 都能使用自己的一套工具,并且在推理(reasoning)和规划自己的行为时(planning it’s actions)可以承担非常明确具体的角色。
  3. Conversational AI(对话(dialogue)是关键)  —— 自动化软件(automation softwares)(例如客户服务 agents)可在应用程序/生态系统(app / ecosystem)内与人类进行交互,并可根据系统接收的数据或信息、以及对这些数据的验证执行可以反复进行的任务。这种部署模式最重要的是 conversational memory(译者注:系统进行对话时记忆和保留的信息) 和 dialogue generation(译者注:系统能够自动地生成对话文本,以回应用户的 query 或提出新的对话话题) ,使得用户感觉在与一个人类进行对话。 对话模型(Dialogue Model)可以访问底层的 RAG 系统或 Multi-Agent problem solver 。
  4. CoPilots(人机交互界面是关键)  —— 借助系统内提供的工具、用于分析、学习或支持决策的数据、系统具备的推理和规划能力以及专业的配置文件,这些系统可以独立地与人类互动,同时通过一系列固定的步骤或规则来解决有明确的、已知的解决方法的问题。要想部署一个成功的 CoPilot ,关键在于能否理解人类的工作环境。例如 MetaGPT Researcher: Search Web and Write Reports[1],A measured take on Devin[2],Let’s build something with CrewAI[3],Autogen Studio[4]。

注意事项: 根据我部署完成几个集成 LLM 的系统后获得的经验,我可以肯定地说,这些系统并非每个人都想要的万能解决方案(silver bullet) 。和其他 AI System 一样,我们需要围绕 LLM 进行大量的工程设计,才能让它们能够完成基本任务,即便如此,这些系统也不能保证性能完全可靠且具备可扩展性。

光明大道: LLMs 在软件生态系统(ecosystem)中的主要价值在于赋能机器学习的应用和发展(enable Machine Learning),即 识别出系统存在的问题、缺陷或哪些地方存在进一步改进的空间,并将数据反馈回流至系统中重新学习,帮助系统不断地优化和适应用户需求。 想象一下,是否可以使用 LLMs 自动化标注数据或减轻标注员的工作负担。在 closed systems (译者注:这种系统的内部数据不与外部环境进行交换或交互。)中,我们可以测试和评估 LLM 的输出内容,它可能在执行任务时表现出令人出乎意料的能力!但相应需要付出的代价也很大,不过这个过程会产生大量的数据,这些数据可以用来改进和训练 LLMs 。
)

LLMs 能够通过不断地分析和处理数据,并将这些数据反馈回系统,从而使系统能够不断地学习和改进,这是 LLMs 带来的最大价值。

02 复杂系统中各组件间的交互机制及其构筑途径

Compound AI systems 通常将这些“模块”相互连接,让他们共同协作。这些模块都能够完成某一些特定任务(certain tasks),它们相互依赖,根据需求被动态地组合和调整,执行预定义的设计模式(design patterns)。

此处的“模块”指的是系统中的单个组件,这些模块具有清晰而明确定义的功能或任务,它们能够独立执行这些任务,也可以在需要时在搜索引擎、LLM 等 underlying system 的支持下完成任务。一些常见的“模块”包括数据生成器(generator)、数据检索器(retriever)、数据排序器(ranker)、数据分类器(classifier) 等,在 NLP 领域中,它们通常统称为 tasks 。这些都是针对特定领域的概念抽象(例如,NLP 模块的抽象模块可能与计算机视觉领域或推荐系统领域不同,但它们可能都依赖于相同的底层模型服务或搜索引擎)。

图 1 :“模块”的关键组成部分

图 2 :其他通用模块

在人工智能主流文化中,大家习惯使用像 “Tools[5]”、“Agents[6]”、“Components[7]” 这样的术语,这些都可以被视为“模块”。

03 基于 LLM 的 Autonomous Agents —— Compound AI systems 中的关键模块

还有一种“模块”的形式是 Autonomous Agent[8] (译者注:这种 Agent 能够自主对环境进行感知、分析和响应,无需持续的人类干预。),它可以在 LLM 的帮助下自主进行推理(reason)和规划(plan)。Autonomous Agent 可以依赖一系列子模块来决定在与环境交互时如何推理和规划行为。

source: https://arxiv.org/pdf/2401.03428.pdf

3.1 Autonomous Agent 子模块的主要技能:

Agent 能够使用其推理能力来思考和分析问题,然后形成一系列相关的思考步骤,最终制定出一个行动计划来解决问题或实现目标任务。

  • 推理(Reasoning)  —— 通过观察、提出假设并基于数据进行验证等逻辑方法来解决问题。
  • 思考(Thought)  —— 是对推理(Reasoning)的应用,生成连贯的因果关系。
  • 思维链(Chain of thought)  —— 将一连串相关的思考过程串联起来,通过逐步进行推理和逻辑分析,将整个解决方案分解为一系列有序的推理步骤。
  • 规划(Planning) —— 这是一种一种决策过程,需要制定具体的子目标,对可用的选项进行评估和比较,以确定达到目标的最佳路径。通常需要访问 underlying environment 以制定更有效的决策方案和行为计划,并通过与环境的互动,从经验中学习。点击此处[9]了解更多有关 LLM Planning 的信息。
  • 工具(Tools)  ——  这是让 Agent 能够根据指令与外部世界(译者注:external world,可指人类所处的自然环境、计算机程序所运行的操作系统或网络环境、机器人所处的物理空间,或者其他外部环境。)进行交互的子模块。
  • 行为(Action)  —— 顾名思义,这是 Agent 在通过规划(Planning)实现目标时所采取的决定性步骤。在执行某个行为(Action)之前,可能需要调用一个工具(Tools)来触发或执行该行为(Action),行为(Action)可能会影响到环境(Environment)的状态,也可能可能会受到环境(Environment)的影响(Actions are made in the environment)。
  • 环境(Environment) ——  external world 是行为(Action)和奖励(Rewards)的来源,如根据特定需求或要求定制开发的应用程序(如Microsoft Word、Coding Environment)或者游戏环境,甚至是物理世界模拟环境等。

3.2 这种技术是不是只是“Stochastic Parrots(随机鹦鹉
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/701728

推荐阅读
相关标签