AI智能体从演示到生产级系统,如何跨越优化鸿沟?
AIAI Summary (BLUF)
构建生产级AI智能体需对单个工具及端到端工作流进行深度优化。由于准确性在多步骤中累积,各组件微小改进对整体系统可靠性至关重要。
引言:演示的轻松与生产的艰难
构建一个检索增强生成(RAG)或智能体工作流的演示很容易,但构建一个生产级的应用则要困难十倍,甚至更多。对于每一篇声称能让你在一小时内入门RAG应用或智能体的博客和教程,都有成百上千的文章在讨论构建LLM、RAG和AI系统的复杂性——这些系统需要在可接受的准确性、延迟和预算范围内可靠运行。
来自一线的“苦涩教训”
OpenAI的RAG优化之路
我们无需远寻就能看到这样的例子。OpenAI在其开发者大会上就指出了RAG优化的迭代性质。在为一家企业客户构建RAG管道时,OpenAI观察到的基线准确率仅为45%。OpenAI的工程师随后尝试了多种方法来提高准确性,包括尝试假设文档嵌入、微调嵌入模型以及试验不同的文本块大小以更好地捕获相关信息。经过大约20次迭代后,他们仅将准确率提升到了65%。此时,他们面临是放弃项目还是继续优化的抉择。他们选择了继续,应用交叉编码器对搜索结果进行重新排序,使用元数据提高上下文相关性,进行进一步的提示词工程,集成工具(SQL数据库),并使用查询扩展。最终,通过尝试所有这些方法,并坚持使用那些能提升准确率的方法,他们成功将准确率提升到了98%。
这里有一个(苦涩的?)教训:仅仅依靠搜索和学习就能取得巨大的收益。
NVIDIA的发现:RAG管道的15个控制点
我们在其他地方也看到了类似的情况,只是名称不同。英伟达在2024年7月发布了一篇题为《关于构建基于检索增强生成的聊天机器人的事实》的论文。在此不赘述细节,但英伟达提到,他们在RAG管道中识别出了15个不同的控制点,每一个都会影响生成结果的质量。他们发现,在其他参数中,选择合适的查询重写策略、文本块大小、预处理技术、元数据丰富化、重新排序以及LLM本身都对最终性能至关重要。检索相关性决定了LLM响应的准确性,而检索相关性本身又依赖于元数据丰富化、分块和查询改写。同样,英伟达使用了基于网格搜索的方法来找到能带来最高RAG准确率的参数设置。
智能体工作流:更严峻的挑战
你可能认为,利用搜索寻找最优参数仅限于RAG,而不适用于智能体工作流。事实上,对于智能体而言,一个临时拼凑的演示与一个可靠的生产级系统之间的鸿沟更大。正如Richard Socher所指出的:如果一个AI智能体的每一步准确率是95%,那么一个30步的工作流将无一成功。将准确率从95%提升到99.9%,是一个与自动驾驶汽车类似的“最后一公里”难题。
智能体与RAG:核心相似性与关键差异
关于智能体已有不少论述。就本文而言,智能体是一个能够调用外部工具的模型(例如LLM)。多智能体则是多个可以访问多个外部工具(这些工具可能在智能体间共享,也可能不共享)的智能体。给定一个用户提示,智能体使用LLM来采取行动(例如调用工具),并在循环中收集观察结果,直到达成目标。
为了准确响应用户提示,智能体必须能够做两件事:
- 检索回答用户查询所需的精确且准确的上下文(检索)
- 根据该上下文生成正确的响应(生成)
如果我们看上述两个要求,智能体看起来与检索增强生成并无太大不同。不同之处在于,上下文的检索可能需要借助多个工具,而不仅仅是向量数据库。此外,检索和生成可能会在一个循环中运行,然后才将输出返回给用户。
通往最优智能体之路:双重优化
测试时计算与模型演进
随着模型逐渐改进(例如使用测试时计算),生成步骤的超参数优化负担应该会减轻。这是因为像o1这样的模型在测试时已经完成了一部分搜索工作。这意味着需要为生成步骤调整超参数的搜索空间缩小了。
测试时计算最优模型的可用性也使智能体更加鲁棒,因为生成模型经过训练,不会遍历没有希望的路经。因此,它更有可能保持通往最优响应的正确轨迹。
工具优化与端到端优化
问题仍然是,我们如何得到一个最优的智能体?我预计,就像英伟达和OpenAI必须优化工具(检索)作为优化整个RAG系统的一部分一样,智能体优化也需要将工具优化作为整体智能体优化的一部分。无论是工具优化还是端到端优化,都需要搜索和学习。你对工具响应的最优性越不确定,你对如何进行端到端智能体优化就越不确定。
为什么同时进行工具优化和端到端智能体优化很重要?因为智能体中的每一步都可能是一个单点故障。提高每一步的可靠性,能确保我们沿着正确的路径前进以达到目标,而不是沿着错误的路滚下山坡。换句话说,误差会随着每一步累积,因此我们希望确保每一步的误差尽可能低。智能体循环运行直到达成目标的时间越长,走上错误路径的几率就越大。
因此,在尽可能优化工具超参数的同时,仍然进行端到端的智能体优化,将是值得的。
关键优化维度对比
基于OpenAI和NVIDIA的经验,我们可以将影响RAG与智能体性能的关键优化维度总结如下:
| 优化维度 | 对性能的主要影响 | ||
|---|---|---|---|
| 文本分块策略、元数据丰富化、查询改写 | 决定LLM响应的准确性基础 | 网格搜索、A/B测试不同分块大小与查询策略 | |
| 结果排序 | 交叉编码器重排序、相关性评分 | 提升返回给LLM的上下文质量 | 集成重排序模型,对初步检索结果进行精排 |
| 生成质量 | LLM选择、提示词工程、测试时计算 | 直接影响最终输出的准确性与可靠性 | 提示词迭代、使用具有推理能力的模型(如o1) |
| 工具调用 (智能体) | 工具选择逻辑、参数传递、错误处理 | 影响多步工作流的成功率与累积误差 | 对每个工具进行独立基准测试与优化 |
| 循环控制、超参数组合、故障恢复 | 决定整个系统在复杂任务上的整体效能 | 在真实场景下进行全流程测试与调优 |
Take me home
带我回家
常见问题(FAQ)
为什么AI智能体从演示到生产级系统如此困难?
演示只需基础功能,而生产级系统需在准确性、延迟和预算内可靠运行,需对每个组件和端到端工作流进行广泛优化,微小改进对整体可靠性至关重要。
OpenAI在优化RAG时遇到了什么挑战?
OpenAI为企业客户构建RAG管道时,基线准确率仅45%,经过约20次迭代才达65%,最终通过交叉编码器重排序、元数据优化等方法将准确率提升至98%。
智能体工作流为什么比RAG更具挑战性?
智能体工作流涉及多步骤,即使每步准确率达95%,30步工作流也可能失败,需将准确率提升至99.9%以上,类似自动驾驶的“最后一公里”难题。
版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。
文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。
若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。



