📰 来源:Towards Data Science | 📅 翻译日期:2026年6月29日
🔗 原文:查看原文
🤖 翻译:DeepSeek AI · 仅供参考
可靠性困境:LLM在工作流中的失败模式
在你的公司内部运行LLM工作流,几乎任何失败都是廉价的:你可以重试、回退,甚至忽略它。但将这个工作流放到客户端的API或MCP服务器后面时,宽容就消失了。现在唯一重要的事情是:客户是否得到了正确、可用的结果?他们的流程依赖于你的交付。是他们,而不是你,决定什么是交付。在Databook,我们为全球最大的企业处理数十亿个token;本文基于大规模生产流程的真实数据。希望它能为你提供一些有用的见解。
交付结果比看起来要困难得多,因为LLM以不可靠而闻名。它们经常失败,有四种形式:无效答案(空、不可解析或完全错误)、硬错误、无答案或未及时得到答案。整个运行只有在每一步都成功时才成功,所以你串联的步骤越多,其中一个失败的机会就越大。一个由各个优秀步骤组成的工作流仍然可能像抛硬币一样不确定。
图1 – LLM调用的四种失败方式。三种是明显的——无效答案、硬错误、无答案——你可以看到并处理每一种。第四种是无声的:一个正确但姗姗来迟的答案,在你这边看起来是成功,在客户那边却是失败。
资源预算的约束:时间、成本与token/速率
在你的公司内部,你可以吸收所有这些失败,因为你在每个维度上都有余地:重试失败的步骤,等待慢的步骤,多花一点钱,必要时降低标准。将同一个工作流放到客户端的API后面,余地就消失了,因为运行现在必须同时满足三个资源预算,而这些预算都不是你设定的:
- 时间 —— 无论你是否完成,窗口都会关闭:一个硬性的网关超时(一到三分钟,有时五分钟)会在运行中切断连接,或者更柔和一些:一个SLA、一个被阻塞在结果上的调用者、一个只能等待这么长时间的过程。而且它不会恢复:当窗口关闭时,客户只会重试,从头开始整个运行。
- 成本 —— 现在是一个利润率,而不是一个池子。每次运行都带有客户已经支付的价格,所以它必须盈利,而不仅仅是可承受。而且客户决定它运行的频率,而不是你。
- Token和速率 —— 一个每分钟的token预算(TPM),你同时与每个客户共享,而且他们往往在同一时间爆发调用。你在负载最重的时候达到上限,这恰恰是延迟最差的时候。
在这三者之下,有一个你永远无法妥协的硬底线:质量。答案必须正确才算数。一个快速、便宜、及时但错误的答案仍然是失败。质量不是你可以消耗的预算。
图2 – 面向客户的运行同时消耗的三个资源预算——时间、成本和token/速率——建立在固定的质量底线之上。每个预算都是从外部施加的;底线是任何交易都不允许越过的那条线。
反直觉策略:在约束中平衡
任何一个预算你都可以单独管理。问题在于它们同时存在并相互牵制,所以对一个预算的明显修复会消耗另一个预算。等待一个慢步骤,你会耗尽时间窗口。运行第二个副本来争分夺秒,你会烧掉成本和配额。使用更强模型来达到质量底线,你会变慢。这些预算中没有一个是你可以放松的,所以唯一的选择就是在它们之间同时进行深思熟虑的权衡——且永远不能低于底线。
这就是构建面向客户的工作流与众不同的原因,它有时会迫使你采用一套从内部看完全相反的策略:
- 终止一个尚未失败的调用
- 重复一个你已经付费的调用
- 故意改用更弱的模型
在你自己的墙内,你永远不会这样做。你会让慢步骤完成。而最安静地惩罚你的预算是时间:错过了它,在你这边看起来没有出任何问题。一个完美但迟到了几秒钟的答案在你的仪表板上仍然显示为成功,但客户看来却是失败,而且这是整个栈中没有任何东西为你强制执行的限制。
核心论点:可靠性是方差问题,而非速度问题
以下是本文的核心论点:一旦质量达标,可靠交付就是方差问题,而不是速度问题。可预测的完成时间优于速度快但存在长尾的完成时间,因为你的客户无法基于你的最佳情况来运行他们的基础设施;他们必须为你的最差情况而构建。
工作流 vs. 推理代理:区别与关注点
首先做一个区分,因为它改变了一切。本文涉及的是智能体工作流:一个已知的流程,其中包含由LLM驱动的步骤,由确定性编排器运行。它不是推理代理——在运行时决定自己下一步做什么。对于相同的任务,工作流显然更快:它已经知道计划,跳过思考,并并行运行每个独立步骤,所以它以推理代理所需时间和成本的极小部分达到相同答案。两者各有其位(推理代理更灵活),但它们以不同方式失败,你需要不同方式修复。推理代理的问题是决定做什么;工作流的问题(客户感受到的)是交付它已经知道如何做的事情,保证质量,并及时完成。本文是关于后者的。
系统架构:如何构建
以下发现来自我们的架构,并且应该具有普遍性。这些都是普通的直接API调用。尽管如此,了解设置有助于你与自己的进行比较。
我们运行一个自定义编排器,管理第三方API(此数据集中没有自托管模型),我们既通过其直接提供商(OpenAI、Anthropic等)直接运行旗舰模型,也通过托管平台(Bedrock、Databricks等)运行,因此顶级模型有多个提供商。这使我们能够比较服务路径并在它们之间移动工作负载。
我们的工作负载是混合的:简单的代理调用、深度推理、提取、JSON和自由文本输出。
评论已关闭