跳到主要内容

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

查看所有标签

非确定性系统的 SLO:当每次响应都不同时如何定义可靠性

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的 AI 功能返回 HTTP 200,在 180ms 内完成,生成了有效的 JSON。按照所有传统 SLI 指标,这个请求是成功的。但答案是错的——一个编造的产品规格、一条捏造的法律引用、一个微妙错误的计算。你的监控一片绿色,用户却怒火中烧。

这就是 SRE 在 AI 系统上失效的根本性断裂。传统可靠性工程假设成功的执行会产生正确的结果。非确定性系统在每一个请求上都违反了这个假设。同样的提示、同样的上下文、同样的模型版本,每次都可能产生不同的——且错误方式各异的——答案。

自主性旋钮:安全交付 AI 功能的五个层级

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数发布 AI 功能的团队都犯同样的错误:他们直接从"让 VP 印象深刻的原型"跳到"生产环境中完全自主"。然后出了问题——一个错误的推荐、一个不正确的自动回复、一笔本不该被批准的金融交易——整个功能被撤掉。不是调低,是撤掉。

问题不在于 AI 自主性是危险的。问题在于大多数团队将自主性视为一个二元开关——关或开——而它应该是一个旋钮,在这两个极端之间有明确的、被监控的位置。

遗忘问题:无限膨胀的 Agent 记忆如何拖垮性能

· 阅读需 10 分钟
Tian Pan
Software Engineer

一个记住所有事情的 agent,最终什么有用的都记不住。这听起来像是悖论,却是每个在没有遗忘策略的情况下上线长期运行 AI agent 的团队的亲身体会。记忆存储不断膨胀,检索质量持续下降,某一天你的 agent 开始自信地引用用户的前雇主、一个已废弃的 API 端点,或者一个六个月前就已放弃的项目需求。

行业在赋予 agent 记忆能力上投入了大量精力,却很少关注那个更难的问题:教会 agent 如何遗忘。

指令遵循悬崖:为什么在系统提示中多加一条规则会破坏另外三条

· 阅读需 9 分钟
Tian Pan
Software Engineer

你的系统提示最初只有十二行,运行得非常顺畅。后来产品团队要加语气规范,法务部门要加免责声明,安全团队又追加了三条约束。现在你有了四十条规则,模型却忽略了其中一半——而且每次忽略的还不是同一批。

这就是指令遵循悬崖:当你在提示中多加一条规则时,不仅仅是这条新规则的合规率下降——昨天还运转良好的其他规则也会跟着失稳。而且与大多数工程故障不同,这种失败方式令人抓狂地不确定。

信任校准曲线:用户如何学习(误)信任 AI

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数 AI 产品都以同样的方式走向终结。演示(Demo)很成功。测试用户赞不绝口。你发布了产品。然后,在大约三个月后,会话时长(session length)下降,功能闲置,你最活跃的早期用户开始绕过 AI,直接使用底层工具。

这不是模型质量问题,而是信任校准(trust calibration)问题。

“过度信任 → 失败 → 过度修正”的生命周期是 AI 产品采用率最可靠的杀手,而且如果你理解发生了什么,这几乎是完全可以预防的。研究已经很明确,失败模式是可预测的,设计模式也已经存在。大多数团队在看到留存曲线并想弄清楚出了什么问题之前,都会忽视这一切。

准确率阈值难题:当你的 AI 功能好到无法忽视却又差到无法信任

· 阅读需 11 分钟
Tian Pan
Software Engineer

麦当劳将其 AI 语音点餐系统部署到了 100 多个网点。在测试中,它达到了似乎可行的准确率—— 80% 左右。客户开始发布系统在未经提示的情况下向订单添加九杯甜茶、在冰淇淋上放培根,以及信誓旦旦地听错简单要求的视频。两年内,合作伙伴关系解散,该技术从所有网点移除。实验室的准确率是真实的,但现实世界的数据分布并非实验室所测试的那样。

这就是准确率阈值问题。存在一个区域——大约 70% 到 85% 的准确率——在这个区域内,AI 功能的精确度足以让它看起来有效,但在没有持续人工干预的情况下,其可靠性不足以真正发挥作用。团队之所以发布这个区域的产品,是因为数字看起来足够接近。用户会感到困惑,因为该功能刚好足够好到诱使他们产生依赖,又刚好足够差到在关键时刻失效。

代码智能体中的束搜索:为什么贪婪生成是可靠性陷阱

· 阅读需 13 分钟
Tian Pan
Software Engineer

一个通过了 90% HumanEval 测试的代码智能体 (code agent) 并不算是一个可靠的代码智能体。它只是一个在那些设计为可以单次生成 (single-pass) 解决的问题上表现良好的智能体。如果给它一个带有严格约束的竞赛编程问题,或者一个具有微妙相互依赖关系的多文件重构任务,你会看到通过率骤降至 20–30%。模型失败并不是因为它缺乏知识,而是因为贪婪的单次生成策略会锁定在第一个看起来合理的 Token 序列上,并且永不回头。

解决方案不在于更好的模型,而在于更好的生成策略。最近的研究表明,将树状探索 (tree exploration) 应用于代码生成——在多个候选解决方案中进行分支、对部分程序进行评分并剪掉没有希望的路径——在处理难题时可以将通过率提高 30–130%,而无需更改底层的模型权重。

认知工具支架:在不增加成本的情况下获得接近推理模型的性能

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的推理模型账单可能很高,但能力差距可能比你想象的要小。在 AIME 2024 数学基准测试中,一个运行四个结构化认知操作的标准 70B 模型,其准确率从 13% 跃升至 30% —— 以极低的推理成本,几乎赶上了 o1-preview 的 44%。在像 GPT-4.1 这样更强大的基础模型上,同样的技术将准确率从 32% 提升到 53%,这实际上在这些基准测试中超越了 o1-preview。

这种技术被称为认知工具脚手架 (cognitive tool scaffolding),它是过去十年研究如何让语言模型在不改变权重的情况下实现更好推理的最新演变。

AI 个性化中的冷启动问题

· 阅读需 13 分钟
Tian Pan
Software Engineer

一个用户注册了你的 AI 写作助手。他们输入了第一条消息。你的系统此时只有一个数据点 —— 并且必须做出决定:是正式还是随性?是冗长还是简洁?是提供技术深度还是通俗概览?大多数系统都会采取折中方案,提供一个通用的默认设置。少数系统尝试立即进行个性化。而那些立即进行个性化的系统往往会让事情变得更糟。

AI 个性化中的冷启动问题与 Netflix 十五年前解决的问题并不相同。它在结构上更难,失败模式更隐蔽,而且常见的修复方案会主动引入新的 Bug。以下是交付过个性化系统的从业者在应对这一问题时学到的经验。

DAG 优先的智能体编排:为什么线性链在大规模场景下会失效

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数多智能体系统最初都是以链式结构开始的。智能体 A 调用智能体 B,B 调用 C,C 调用 D。这种模式在演示中运行良好,在处理简单任务的五个智能体中也运行良好。但当你增加到第六个、第七个智能体时,原本 8 秒就能运行完的流水线开始需要 40 秒。你在第三步增加了一个重试机制,结果第三步的失败会无声地级联,导致第六步出现状态损坏。你尝试添加一个并行分支,却发现你的框架从设计之初就无法支持。

问题不在于智能体的数量。问题在于执行模型。线性链式结构固有的缺陷在于它将本可以并行的工作串行化,且故障只能单向传播,这使得局部恢复在结构上变得不可能。解决方法并不是在现有系统之上增加更多的基础设施,而是从一开始就围绕有向无环图(DAG)重建执行模型。

可解释性陷阱:当 AI 解释成为一种负担

· 阅读需 13 分钟
Tian Pan
Software Engineer

在利益相关者首次提出“可解释 AI”的需求,到你的产品团队规划出“AI 为什么会做出这个决定?”功能之间的某个时刻,一个陷阱已经布下。这个陷阱就是:你的模型并不知道它为什么做出那个决定,而要求它解释并不会产生真正的解释——它只会产生看起来像解释的文本。

这种区别在生产环境中至关重要。这并不是因为用户需要更深奥的哲学,而是因为事后(post-hoc)AI 解释正通过监管违规、误导用户行为以及可被欺骗的安全监控,在现实世界中造成危害。如果不理解这一点就交付解释功能的工程师,所构建的系统虽然能通过法律合规检查,但实际上会使结果变得更糟。

微调 vs. RAG 知识注入:工程师经常搞错的决策框架

· 阅读需 12 分钟
Tian Pan
Software Engineer

一家金融科技团队花了三个月时间,根据其内部合规文档(数千份监管 PDF、政策更新和程序指南)对模型进行了微调。结果差强人意。模型仍然会对具体的规则编号产生幻觉。它忘记了最近的政策变化。而唯一真正重要的指标(即顾问是否足够信任它的答案从而停止反复核对)几乎没有变化。两周后,另一个团队在同样的文档语料库上构建了一个 RAG 流水线。顾问们在一周内就开始信任它了。

微调团队并没有犯技术错误。他们犯了一个定义性错误:他们试图用一种行为修改工具来解决知识检索问题。