这个问题经常被问到。开发者通常先专注于让智能体正常运行,再关注速度和成本。优化过程,开发者常采取如下方法:
听起来简单,但优化方式完全取决于具体瓶颈。你的延迟主要来自:
在优化前,先弄清楚这问题很重要。
LangSmith 能全面追踪智能体的交互过程,帮你分析每个步骤的延迟来源。最近还推出“瀑布视图(waterfall view)”,可直观地看到哪些步骤对总延迟影响最大。
有时,最快方法不是减少延迟,而是让用户感觉不到延迟。
延迟通常影响用户体验,因为用户不喜欢等待。但很多情况可通过优化用户体验(UX)来减少他们的等待感。常见优化方法:
流式输出(streaming)在 LLM 应用中已经很普遍,但若你的智能体还没用,赶紧试试!
👉 案例:Perplexity 的 UX 设计
若可能,尽量把智能体的运行放到后台,用户只在需要时才看到结果。
如我的邮件助手会在收到新邮件时自动运行,但我并不会看到它的执行过程。我只会在它遇到问题时才收到通知,这样用户根本不会感知到延迟。
不是所有的任务都需要 LLM 调用!若可用代码替代 LLM 调用,果断替换!
许多智能体的架构是 LLM 调用+代码的混合模式,而合理用代码可显著减少 LLM 依赖,提高运行速度。这也是 LangGraph 设计的核心理念之一,Replit、Uber、LinkedIn、Klarna 等公司都在使用它来优化智能体的效率。
多智能体架构通常调用 LLM 的次数非常多,因为智能体之间的沟通需要额外的 LLM 交互。而 LangGraph 允许你精确控制智能体的交互方式,从而减少 LLM 调用,提升速度,降低成本。
👉 案例:LangGraph 在生产环境中的应用
目前有两种主要的方法可以加快 LLM 调用:
不同的 LLM 模型速度不同,如:
但需要注意,更快的模型通常意味着更小的模型,准确率可能会降低。
LLM 的响应时间和输入文本的长度直接相关。如果想要更快的结果,减少输入长度是个有效的方法!
所以,你需要完全掌控 LLM 的输入内容,避免传递过多无用的信息。有些框架可能会隐藏 LLM 调用的细节,这对优化速度非常不利。LangGraph 没有隐藏提示词(prompts),你可以完全控制 LLM 的输入内容。
如果想更清楚地查看 LLM 的输入内容,可用 LangSmith 分析。
这个方法并不适用于所有场景,但如果你的任务可以拆分成多个 LLM 调用并行执行,那么你一定要这么做!
LangGraph 原生支持并行执行(parallelism),你可以用它来加速任务处理,比如:
👉 案例:LangGraph 并行处理示例
想要加快智能体的运行速度,关键在于合理权衡性能、成本和能力。最好的优化方法因具体情况而异,但整体步骤可以归纳如下:
有时候,优化智能体的最好方法并不是技术手段,而是重新思考用户如何与智能体交互。
如果你有更好的优化经验,欢迎分享——你用过哪些方法来加速你的智能体?😃
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。