跳到主要内容

780 篇博文 含有标签「ai-engineering」

查看所有标签

你的评测套件是一座博物馆:生产故障应当成为明天的测试用例

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数 AI 团队只会构建一次评测套件——在上线前的冲刺阶段,他们精心设计了边界场景用例,记录预期输出,经过评审后发布。六个月后,套件仍然通过。然而,模型在实际生产流量上已经悄然退步,而评测框架却是在那些流量出现之前编写的。它仍然在评判作者提出问题的答案,而非用户真正在问的问题。

这就是"博物馆问题":一个在某个时间点策划的评测套件会不断积累文物。它证明系统能处理某人预期的场景,却无法覆盖真正让它崩溃的场景。

SLA 的幻象:为什么 99.9% 的可用性对 AI 功能毫无意义

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的仪表板显示全绿。延迟处于正常水平。错误率为 0.2%。本月正常运行时间为 99.97%。然而,你的 AI 助手正自信地向用户提供错误的信息,格式不对,长度是预期的两倍——而且这种情况已经持续了 11 天。

这就是 SLA 幻觉:基础设施合同保障的是管道,而不是其中流过的水。对于 AI 驱动的功能,“它是否有响应?”与“它的响应是否准确?”之间的差距,正是产品质量悄然崩塌的地方。

首个Token在撒谎:为什么上下文加载——而非推理——才是AI功能延迟的真正瓶颈

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数关于AI延迟的讨论都搞错了方向。团队痴迷于GPU利用率、模型量化和批处理大小。与此同时,真正让用户感到烦躁的延迟——AI开口说话前的那段停顿——几乎完全由推理开始前发生的事情决定。瓶颈在于上下文,而非算力。

首Token时间(TTFT)是决定AI功能感觉灵敏还是迟钝的关键指标。而TTFT主要由预填充阶段主导:在生成任何输出Token之前,处理完整输入上下文所需的时间。对于128K Token的上下文,预填充可能耗时数秒。GPU在努力工作,但用户什么也看不到。

解决方案不是更好的GPU,而是在用户提问之前就预先加载好上下文。

当 LLM 为自己批改作业:打破 AI 评估中的反馈循环

· 阅读需 11 分钟
Tian Pan
Software Engineer

这是一个大多数 AI 团队都不愿面对的发现:在一项生成了超过 150,000 个评估实例、涵盖 22 个任务的大规模研究中,大约 40% 的 LLM 作为裁判(LLM-as-judge)的对比显示出可衡量的偏见。这种偏见并非随机噪声,而是系统性的、可复现的,并且与模型的训练方式相关。当你使用一个模型来生成评估集,然后使用同一个模型(或其近亲)来对其进行评分时,你测量的并不是质量,而是一个系统与其自身的一致程度。

合成评估数据之所以成为标准实践,是有充分理由的。人工标注速度慢、成本高且难以规模化。LLM 生成的测试用例让团队能够在夜之间生成数千个示例。问题出现在生成器和裁判拥有共同祖先时——在 2025 年,这几乎是常态。结果是一个评估流水线在自信地报告高分的同时,却隐藏了你构建它原本想要捕捉的失败模式。

工具调用收敛:设计知道何时停止的智能体

· 阅读需 11 分钟
Tian Pan
Software Engineer

一对 LangChain 分析/验证智能体连续运行了 264 小时,产生了 47,000 美元的 API 费用,却没有任何有用的产出。验证智能体持续拒绝分析智能体的输出,但从未说明原因;分析智能体则默认再次尝试。没有人写过停止条件,循环一直运行,直到有人注意到账单。

这是架构图中从不出现的失败模式:知道如何调用工具,却不知道何时停止的智能体。经典的智能体循环是一个不断询问模型"我应该调用工具吗?"的 while True——但这个问题对"我已经看到足够的信息了"没有内置答案。没有收敛逻辑,你构建的不是智能体,而是一个昂贵的轮询函数。

AI 数秒生成代码,团队却花数小时审查——这笔账根本不对

· 阅读需 9 分钟
Tian Pan
Software Engineer

AI 编程工具的 ROI 宣传在纸面上看起来无懈可击:在受控实验中,开发者完成任务的速度提升了 55%,合并的 Pull Request 数量增加了 98%,每周据称节省 3.6 小时。但当组织审视真实的交付指标——Bug 率、发布周期、故障频率——时,数字几乎没有任何变化。某些东西吸走了所有增益的时间,而它并不难找。

AI 数秒生成代码。工程师的审查速度,却和以前一样慢。

自动化悬崖:当部分 AI 自动化比完全不自动化更糟糕时

· 阅读需 12 分钟
Tian Pan
Software Engineer

当一个团队第一次将 70% 的手动流程自动化,却交付了比以前更差的结果时,诊断几乎总是从错误的地方开始。工程师们会检查自动化部分:也许是模型准确率不对,也许是流水线有 Bug。他们很少检查的是,自动化本身的存在——仅仅因为它的存在——是否使得剩余 30% 的人工工作在结构上变得无法做好。

这就是自动化悬崖。这不是自动化组件的失败,而是自动化与手动之间衔接处的失败。

选择评估指标是产品决策,而非技术决策

· 阅读需 11 分钟
Tian Pan
Software Engineer

一个构建基于LLM的文献筛选工具的团队在测试集上庆祝96%的准确率。按照任何标准工程指标,他们的模型表现都非常出色。但有一个问题:它找到了零个真正的阳性结果。该模型学会了将所有内容归类为无关内容,但仍然获得了近乎完美的准确率,因为相关论文在数据集中极为罕见。失败不在于模型——而在于指标。

这种失败模式并不罕见。它每周都在AI团队中悄然上演,工程师在没有产品输入的情况下选择评估指标——就像选择排序算法一样,视其为有正确答案的技术选择。这种框架是错误的。指标选择是一个产品决策。它编码了你愿意容忍哪些失败模式、你在为哪些用户优化,以及在你的特定场景中"好"究竟意味着什么。搞错这一点会产生看起来严谨却衡量了错误事物的评估套件。

当 AI 听起来正确但事实并非如此:技术与科学领域中的 LLM 虚构现象

· 阅读需 10 分钟
Tian Pan
Software Engineer

在技术领域,LLM 虚构(confabulation)的阴险之处不在于模型会给出明显的错误答案。而在于它会生成结构优美、语气自信、技术上看似合理的答案,但其中的细微错误只有领域专家才能发现——而且往往是在造成损失之后。

一个 Monte Carlo 物理模拟,它初始化正确,但在每一步都从头重新采样粒子位置,而不是进行增量更新。一个符合命名规范但氧化态错误的化学公式。一份引用了正确标准、参考了正确单位,但载荷系数完全错误的设计规范。每个输出看起来都是正确的。每个听起来都极具权威。但每一个都是错误的,且这些错误只有在有人运行实验、对组件进行压力测试或仔细阅读推导过程时才会浮现。

A/B 测试陷阱:为什么标准实验设计在 AI 功能中会失效

· 阅读需 10 分钟
Tian Pan
Software Engineer

一个团队上线了一个改进的 LLM 提示词。A/B 测试运行了两周。指标上升了 1.2%,p=0.03。他们将其视为胜利并向所有人发布。六个月后,一次客户审计发现,新提示词一直产生细微的错误摘要——这种语义偏移是点击率和会话时长无法察觉的。A/B 测试并没有完全撒谎。它用一种从未针对 LLM 特性设计的评估方法测量了错误的东西。

标准的 A/B 测试是为确定性系统构建的:按钮更改颜色、页面加载变快、推荐算法调整排名。在给定相同输入的情况下,输出是稳定的,方差较小且易于理解,教科书中的样本量计算公式也适用。然而,对于由 LLM 驱动的功能,这些属性都不成立。如果团队不考虑这一点,他们就不是在进行实验——而是在产生带有统计显著性标签的噪声。

当准确率成为负债:用户如何围绕 AI 的失败模式构建工作流

· 阅读需 11 分钟
Tian Pan
Software Engineer

一个团队以 70% 的准确率发布了某个 AI 功能。十八个月过去了。用户起初抱怨,随后逐渐适应。他们学会了哪些提示短语能绕开边缘情况,知道了涉及日期的输出需要二次核查,因为 AI 有时会产生特定字段名称的幻觉,所以他们在工作流中加入了验证步骤。然后团队发布了新模型,准确率跃升至 85%。支持工单激增。投诉最多的用户,恰恰是那些最重度使用该功能的人。

这就是"准确率即产品契约"问题,而且大多数 AI 团队都是以惨痛的方式发现这一点的。

智能体爆炸半径:在生产事故发生前界定最坏情况的影响范围

· 阅读需 11 分钟
Tian Pan
Software Engineer

九秒。这是一个 Cursor AI 智能体在尝试修复凭证不匹配问题时,删除整个生产数据库(包括所有卷级备份)所花费的时间。该智能体持有删除权限,而实际上任何合法任务都不需要这个权限。由于没有人在部署前界定爆炸半径,破坏是全面的。

这不是模型失败的故事,而是权限范围的故事。模型做了它认为应该做的事情。工程团队只是从未问过:如果这个智能体推理出错,它最坏能做什么?

这个问题——在部署前系统性地回答——就是爆炸半径分析。