password
Created time
Feb 1, 2025 11:26 AM
type
status
date
slug
summary
tags
category
icon
复合AI系统 指的是利用多个相互作用的组件来完成AI任务的系统,这些组件可能包括多个模型调用、检索器或外部工具。 与之相对的是,单一AI模型仅仅是一个统计模型,它预测文本中的下一个token。
复合AI系统的核心在于通过巧妙的工程设计,整合多种AI能力,从而达到更好的性能,而不仅仅是依赖于模型的简单放大。复合AI想提供的概念在企业里会是重要的方向,而且复合AI与Agent的概念也联系比较紧密,甚至慢慢Agent的概念覆盖了复合AI系统概念。
以下是复合AI系统的关键特点和优势:
- 并非仅仅是模型的堆砌:复合AI系统并非简单的模型叠加,而是精心设计的、相互协作的系统。这种系统设计通常需要对任务进行分解,并针对不同的子任务选择合适的组件。例如,AlphaCode 2通过生成大量的代码方案,然后进行过滤和评分来提高编码能力。
- 动态性: 复合AI系统可以利用外部信息,保证其知识的及时性。与受限于静态数据集训练的AI模型不同,复合AI系统可以结合搜索和检索等组件,从而整合最新的数据。 此外,复杂的系统能够实现访问控制,例如,仅根据用户有权访问的文件回答用户的问题。
- 更强的控制和信任: 与难以控制的单一模型相比,复合AI系统能够通过过滤模型输出等方式更好地控制行为,同时,通过结合检索等方式提供引用或自动验证事实,从而提升用户信任。
- 灵活的性能目标:单一AI模型的质量和成本是固定的,但复合AI系统可以根据不同的应用需求调整这些参数,通过不同的组件和策略组合,满足不同的性能和成本目标。例如,在某些应用中,较小的模型和搜索启发式方法可能更合适。
- 复合AI系统是趋势: 越来越多的AI结果都是来自于复合系统。
- 系统设计而非模型缩放: 复合AI系统在某些任务上,通过系统设计获得的提升可能比模型缩放更有效。例如,与其花费大量资源训练一个更强大的模型,不如通过精心设计的系统(例如,多次采样并评估输出)来提高性能。而且,系统设计的迭代速度通常比模型训练更快。
- 与其它AI领域趋势一致: 复合AI系统的趋势与其他AI领域(如自动驾驶汽车)中的趋势相符,在这些领域中,大多数最先进的实现都是由多个专用组件组成的系统。
复合AI系统面临的挑战:
- 设计空间: 复合AI系统的设计空间巨大,需要探索各种模型和工具的组合,例如,在检索增强生成(RAG)中,选择合适的检索模型和语言模型,以及如何改进检索质量和模型输出。
- 优化: 复合AI系统包含不可微分的组件(如搜索引擎),这使得优化变得更加复杂,需要开发新的优化方法。
- 运维: 复合AI系统的运维更加复杂,需要新的MLOps工具来跟踪、分析和调试系统的性能,并保证数据管道的质量和安全性。
新兴的范式:
为了应对上述挑战,出现了一些新兴的范式:
- 设计:
- 组合框架和策略:使用语言模型编程框架(如LangChain和LlamaIndex)构建应用,并使用思维链、自洽性等策略生成更好的输出。
- 成本优化:
- FrugalGPT 和 AI 网关: 根据输入自动路由到不同的模型级联,以在目标预算下最大化质量,或在保持质量的同时降低成本。
- 运维:
- LLMOps 和 DataOps:使用 LangSmith, Phoenix Traces 和 Databricks Inference Tables 等软件来跟踪、可视化和评估复合AI系统的输出,并使用 DSPy Assertions 等工具来改进输出。
总结:
复合AI系统代表了一种新的AI发展趋势,它不依赖于单一模型的简单放大,而是通过巧妙的系统设计和多组件协同工作,来解决更复杂的问题,并提供更可靠、更灵活的AI解决方案。 尽管构建和优化复合AI系统面临着新的挑战,但随着新兴范式的出现,我们有理由相信,复合AI系统将成为未来AI应用的主流。
复合AI系统与Agent什么关系?
特征 | 复合AI系统 | Agent (智能体) |
核心关注点 | 任务执行的架构和系统设计 | 具有自主性和交互能力的实体 |
主要目标 | 通过多组件协作提升性能和灵活性 | 在环境中感知、推理和行动以实现目标 |
组成 | 多个AI组件(模型,检索器,工具等) | 可以是软件、机器人或其它形式的实体 |
强调 | 系统优化,任务分解,数据增强,可控性 | 感知,推理,行动,交互,自主性,适应性 |
应用场景 | 复杂问题求解,增强型对话系统,信息检索与问答 | 游戏,机器人,虚拟助手,多模态交互,医疗等 |
关系与联系
交叉: 复合AI系统和Agent的概念并非完全互斥,二者存在交叉。一个Agent的实现可以使用复合AI系统的架构,比如一个智能体可以使用检索增强生成技术(RAG)来生成更准确的回答。
层次: 在某些情况下,复合AI系统可以被视为一种高级的Agent,它通过整合多个子Agent或模块来实现复杂的功能。
技术融合: 近期趋势表明,许多Agent都利用了大型语言模型(LLM)和大型视觉模型(VLM)作为其核心组件,并且可以调用各种工具,这使得Agent更加强大和灵活,也使得Agent和复合AI系统之间的界限变得模糊。
原文:
AI 在 2023 年引起了所有人的注意,大型语言模型 (LLM) 只需提示即可指示这些模型执行一般任务,例如翻译或编码。这自然导致了对模型的高度关注,将其作为 AI 应用程序开发的主要组成部分,每个人都想知道新的 LLM 将带来什么功能。然而,随着越来越多的开发人员开始使用 LLM 进行构建,我们相信这一重点正在迅速变化:最先进的 AI 结果越来越多地通过具有多个组件的复合系统获得,而不仅仅是整体模型。
例如,Google 的 AlphaCode 2 通过一个精心设计的系统在编程中设置最先进的结果,该系统使用 LLM 为一项任务生成多达 100 万个可能的解决方案,然后过滤掉该集合。同样,AlphaGeometry 将 LLM 与传统的符号求解器相结合,以解决奥林匹克问题。在企业中,我们在 Databricks 的同事发现,60% 的 LLM 应用程序使用某种形式的检索增强生成 (RAG),30% 使用多步链。即使是从事传统语言模型任务的研究人员,他们过去只能报告单个 LLM 调用的结果,现在也报告了越来越复杂的推理策略的结果:Microsoft 写了关于一种链接策略的文章,该策略在医学检查中的准确性比 GPT-4 的准确性高出 9%,谷歌的 Gemini 发布帖子使用一种新的 CoT@32 推理策略来衡量其 MMLU 基准测试结果,该策略调用了该模型 32 次,这引发了关于它与仅一次调用 GPT-4 的比较的质疑。这种向复合系统的转变带来了许多有趣的设计问题,但也很令人兴奋,因为这意味着可以通过巧妙的工程来实现领先的 AI 结果,而不仅仅是扩大训练规模。
在这篇文章中,我们分析了复合 AI 系统的趋势及其对 AI 开发人员的意义。为什么开发人员要构建复合系统?随着模型的改进,这种范式会继续存在吗?开发和优化此类系统的新兴工具有哪些——这个领域的研究远少于模型训练?我们认为,复合 AI 系统可能是未来最大化 AI 成果的最佳方式,并且可能是 2024 年 AI 领域最具影响力的趋势之一。
越来越多的新 AI 结果来自化合物系统。
为什么使用 Compound AI Systems?
我们将复合 AI 系统定义为使用多个交互组件处理 AI 任务的系统,包括对模型、检索器或外部工具的多次调用。相比之下,AI 模型只是一个统计模型,例如,预测文本中下一个标记的 Transformer。
尽管 AI 模型不断改进,并且其扩展没有明确的终点,但使用复合系统可以获得越来越多的最先进的结果。 为什么? 我们看到了几个不同的原因:
- 有些任务更容易通过系统设计来改进。虽然 LLM 似乎遵循显着的扩展定律,可以预期地通过更多的计算产生更好的结果,但在许多应用程序中,扩展提供的回报与成本比构建复合系统要低。例如,假设当前最好的 LLM 可以在 30% 的时间内解决编码竞赛问题,将其训练预算增加两倍将使这一比例增加到 35%;这仍然不够可靠,无法赢得编码竞赛!相比之下,设计一个从模型中多次采样、测试每个样本等的系统可能会将当今模型的性能提高到 80%,如 AlphaCode 等工作所示。更重要的是,迭代系统设计通常比等待训练运行要快得多。我们相信,在任何高价值应用程序中,开发人员都会希望使用所有可用的工具来最大限度地提高 AI 质量,因此除了扩展之外,他们还会使用系统创意。我们经常在 LLM 用户身上看到这种情况,一个好的 LLM 会创建一个引人注目但令人沮丧的不可靠的第一个演示,然后工程团队继续系统地提高质量。
- 系统可以是动态的。机器学习模型本质上是有限的,因为它们是在静态数据集上训练的,因此它们的“知识”是固定的。因此,开发人员需要将模型与其他组件(例如搜索和检索)相结合,以整合及时的数据。此外,训练可以让模型“看到”整个训练集,因此需要更复杂的系统来构建具有访问控制的 AI 应用程序(例如,仅根据用户有权访问的文件回答用户的问题)。
- 使用系统更容易提高控制和信任。神经网络模型本身很难控制:虽然训练会影响它们,但几乎不可能保证模型会避免某些行为。使用 AI 系统而不是模型可以帮助开发人员更紧密地控制行为,例如,通过过滤模型输出。同样,即使是最好的 LLM 仍然会产生幻觉,但将 LLM 与检索相结合的系统可以通过提供引用或自动验证事实来提高用户信任度。
- 性能目标差异很大。每个 AI 模型都有固定的质量水平和成本,但应用程序通常需要改变这些参数。在某些应用程序中,例如内联代码建议,最好的 AI 模型太贵了,因此像 Github Copilot 这样的工具使用经过精心调整的较小模型和各种搜索启发式来提供结果。在其他应用程序中,即使是最大的模型,如 GPT-4,也太便宜了!许多用户愿意支付几美元来获得正确的法律意见,而不是要求 GPT-4 所需的几美分,但开发人员需要设计一个 AI 系统来利用这个更大的预算。
生成式 AI 向复合系统的转变也与其他 AI 领域的行业趋势相匹配,例如自动驾驶汽车:大多数最先进的实现都是具有多个专用组件的系统(此处有更多讨论)。出于这些原因,我们相信,即使模型得到改进,复合 AI 系统仍将保持领先地位。
开发复合 AI 系统
虽然复合 AI 系统可以提供明显的好处,但设计、优化和作它们的艺术仍在不断涌现。从表面上看,AI 系统是传统软件和 AI 模型的组合,但存在许多有趣的设计问题。例如,整体“控制逻辑”应该用传统代码编写(例如,调用 LLM 的 Python 代码),还是应该由 AI 模型驱动(例如,调用外部工具的 LLM 代理)?同样,在复合系统中,开发人员应该将资源投入到哪里(例如,在 RAG 管道中,是在检索器或 LLM 上花费更多的 FLOPS,还是多次调用 LLM 更好?最后,我们如何像训练神经网络一样,端到端优化具有离散组件的 AI 系统以最大化指标?在本节中,我们将详细介绍一些示例 AI 系统,然后讨论这些挑战和最新的研究。
AI 系统设计空间
以下是一些最近的复合 AI 系统,用于展示设计选择的广度:
AI 系统 | 组件 | 设计 | 结果 |
• 用于采样和评分程序的微调 LLM
• 代码执行模块
• 聚类模型 | 为编码问题生成多达 100 万个解决方案,然后对其进行筛选和评分 | 在编码竞赛中匹配第 85 个百分位的人类 | |
• 微调 LLM
• 符号数学引擎 | 通过 LLM 迭代建议几何问题中的构造,并检查符号引擎产生的推导事实 | 银牌和金牌之间 国际数学奥林匹克奖牌获得者在计时考试中 | |
• GPT-4 法学硕士
• 在正确示例的数据库中进行最近邻搜索
• LLM 生成的思路链示例
• 多个样本和融合 | 通过搜索相似示例来构建 Few-shot 提示,为每个示例添加模型生成的思维链,以及生成和评判多达 11 个解决方案,从而回答医学问题 | 优于使用更简单提示策略的 Med-PaLM 等专业医学模型 | |
• 双子座 LLM
• 自定义推理逻辑 | Gemini 针对 MMLU 基准测试的 CoT@32 推理策略从模型中采样了 32 个思路链答案,如果有足够多的答案同意,则返回首选,如果同意,则返回首选,否则使用没有思路链的生成 | MMLU 为 90.04%,而 GPT-4 为 86.4%,5 次提示,Gemini 为 83.7%,5 次提示 | |
ChatGPT Plus | • 法学硕士
• 用于检索及时内容的 Web 浏览器插件
• 用于执行 Python 的 Code Interpreter 插件
• DALL-E 图像生成器 | ChatGPT Plus 产品可以调用网页浏览等工具来回答问题;LLM 在响应时决定何时以及如何调用每个工具 | 拥有数百万付费订阅者的热门消费类 AI 产品 |
• LLM(有时多次调用)
• 检索系统 | 以各种方式将 LLM 与检索系统相结合,例如,要求 LLM 生成搜索查询,或直接搜索当前上下文 | 在搜索引擎和企业应用程序中广泛使用的技术 |
复合 AI 系统的主要挑战
与 AI 模型相比,复合 AI 系统在设计、优化和运营方面提出了新的挑战。
设计空间
给定任务的可能系统设计范围很广。例如,即使在使用检索器和语言模型进行检索增强生成 (RAG) 的简单情况下,也有一些:
(i) 许多检索和语言模型可供选择,
(ii) 其他提高检索质量的技术,例如查询扩展或重新排名模型,以及
(iii) 改进 LLM 生成输出的技术(例如,运行另一个 LLM 以检查输出是否与检索到的段落相关)。开发人员必须探索这个广阔的空间才能找到一个好的设计。
此外,开发人员需要在系统组件之间分配有限的资源,例如延迟和成本预算。例如,如果您想在 100 毫秒内回答 RAG 问题,您应该预算在检索器上花费 20 毫秒,在 LLM 上花费 80 毫秒,还是相反?
优化
通常在 ML 中,最大限度地提高化合物系统的质量需要协同优化组件才能很好地协同工作。例如,考虑一个简单的 RAG 应用程序,其中 LLM 看到一个用户问题,生成一个搜索查询以发送给检索器,然后生成一个答案。理想情况下,LLM 将被调整为生成适用于该特定检索器的查询,而检索器将被调整为首选适用于该 LLM 的答案。
在 PyTorch 的单个模型开发中,用户可以轻松地端到端地优化模型,因为整个模型是可微分的。但是,复合 AI 系统包含不可微分的组件,如搜索引擎或代码解释器,因此需要新的优化方法。优化这些复合 AI 系统仍然是一个新的研究领域;例如,DSPy 为预训练的 LLM 和其他组件的管道提供了通用优化器,而其他系统(如 LaMDA、Toolformer 和 AlphaGeometry)在模型训练期间使用工具调用来优化这些工具的模型。
操作
机器学习作 (MLOps) 对于复合 AI 系统来说变得更具挑战性。例如,虽然垃圾邮件分类器等传统 ML 模型的成功率很容易跟踪,但开发人员应该如何跟踪和调试 LLM 代理对同一任务的性能,该任务可能使用可变数量的“反射”步骤或外部 API 调用来对消息进行分类?我们相信,将开发新一代 MLOps 工具来解决这些问题。有趣的问题包括:
- 监测: 开发人员如何最有效地记录、分析和调试来自复杂 AI 系统的跟踪?
- 数据运营:由于许多 AI 系统涉及矢量数据库等数据服务组件,并且它们的行为取决于所提供数据的质量,因此对这些系统作的任何关注都应该额外跨越数据管道。
- 安全: 研究表明,与单个模型相比,复合 AI 系统(例如带有内容过滤器的 LLM 聊天机器人)可能会产生不可预见的安全风险。需要新的工具来保护这些系统。
新兴范式
为了应对构建复合 AI 系统的挑战,行业和研究中出现了多种新方法。我们重点介绍了一些使用最广泛的方法和我们研究中应对这些挑战的示例。
设计 AI 系统:组合框架和策略。
许多开发人员现在正在使用“语言模型编程”框架,这些框架允许他们通过对 AI 模型和其他组件的多次调用来构建应用程序。其中包括开发人员从传统程序调用的 LangChain 和 LlamaIndex 等组件库,让 LLM 驱动应用程序的 AutoGPT 和 BabyAGI 等代理框架,以及用于控制 LM 输出的工具,如 Guardrails、Outlines、LMQL 和 SGLang。与此同时,研究人员正在开发许多新的推理策略,以使用调用模型和工具(例如思维链、自洽、WikiChat、RAG 等)来生成更好的输出。
自动优化质量:DSPy。DSPy 来自学术界,是第一个旨在优化由 LLM 调用和其他工具组成的系统以最大化目标指标的框架。用户通过对 LLM 和其他工具的调用编写应用程序,并提供目标指标,例如验证集的准确性,然后 DSPy 通过为每个模块创建提示指令、小样本示例和其他参数选择来自动调整管道,以最大限度地提高端到端性能。其效果类似于 PyTorch 中多层神经网络的端到端优化,不同之处在于 DSPy 中的模块并不总是可微分层。为此,DSPy 以一种简洁的方式利用了 LLM 的语言能力:为了指定每个模块,用户编写一个自然语言签名,例如 ,其中输入和输出字段的名称有意义,DSPy 会自动将其转换为合适的提示,其中包含说明、少量示例,甚至对底层语言模型的加权更新。
user_question -> search_query
优化成本:FrugalGPT 和 AI 网关。可用的 AI 模型和服务范围广泛,因此很难为应用程序选择合适的模型和服务。此外,不同的模型可能在不同的输入上表现更好。FrugalGPT 是一个框架,可自动将输入路由到不同的 AI 模型级联,以在目标预算下最大限度地提高质量。基于一小部分示例,它学习了一种路由策略,该策略可以在相同的成本下比最好的 LLM 服务高出 4%,或者在匹配其质量的同时将成本降低高达 90%。FrugalGPT 是更广泛的新兴 AI 网关或路由器概念的一个例子,在 Databricks AI Gateway、OpenRouter 和 Martian 等软件中实现,以优化 AI 应用程序每个组件的性能。当 AI 任务在复合系统中被分解成更小的模块化步骤时,这些系统的效果会更好,并且网关可以为每个步骤单独优化路由。
操作:LLMOps 和 DataOps。AI 应用程序始终需要仔细监控模型输出和数据管道才能可靠运行。然而,对于复合 AI 系统,系统在每个输入上的行为可能要复杂得多,因此跟踪应用程序和中间输出所采取的所有步骤非常重要。LangSmith、Phoenix Trace 和 Databricks Inference Tables 等软件可以精细地跟踪、可视化和评估这些输出,在某些情况下,还可以将它们与数据管道质量和下游指标相关联。在研究领域,DSPy Assertions 寻求直接在 AI 系统中利用监控检查的反馈来提高输出,而基于 AI 的质量评估方法(如 MT-Bench、FAVA 和 ARES )旨在实现质量监控的自动化。
结论
生成式 AI 通过自然语言提示解锁了广泛的功能,让每个开发人员都兴奋不已。然而,随着开发人员的目标是超越演示并最大限度地提高其 AI 应用程序的质量,他们越来越多地转向复合 AI 系统,作为控制和增强 LLM 功能的自然方式。找出开发复合 AI 系统的最佳实践仍然是一个悬而未决的问题,但已经有令人兴奋的方法可以帮助设计、端到端优化和运营。我们相信,复合 AI 系统仍将是未来最大限度地提高 AI 应用程序质量和可靠性的最佳方式,并且可能是 2024 年 AI 领域最重要的趋势之一。
来自: