跳到主要内容

4 篇博文 含有标签「eval」

查看所有标签

没上线新功能的 AI 工程师该如何写晋升材料

· 阅读需 13 分钟
Tian Pan
Software Engineer

你团队中晋升理由最充分的 AI 工程师,其晋升材料(Promotion Packet)看起来却可能是空洞的。两个季度的努力,影响力图表却是一条平线。曾经在每次模型切换时都会飙升至 12% 的评估回退率(Eval-regression rate),现在稳定在 4%。财务部门差点就要介入调查的每月 4 万美元成本飙升从未发生,因为有人在网关中加入了预算守卫(Budget Guard)。本会导致公司状态页(Status Page)挂彩的 P0 级事故从未发生,因为紧急开关(Kill-switch)被触发,将流量导向了之前的 Prompt 版本。

这种材料在“已发布功能 X”一栏无话可说。定级委员会面对两个并排坐着的工程师:一个是这半年发布了两个显性功能的工程师,另一个是默默承担了让这些功能成为可能的负载的工程师。委员会一如既往地给发布功能的工程师打了高分。那位基建型(Infra-shaped)工程师要么拿了一个不应得的“符合预期”评分并在一个季度内辞职,要么学会用委员会真正能听懂的语言来撰写材料。

Agent 降级模式规范是你没有撰写的文档

· 阅读需 12 分钟
Tian Pan
Software Engineer

当搜索索引失效、供应商 API 对你限流、数据库只读副本出现延迟,或者下游微服务开始返回 503 错误时,你的智能体(agent)必须决定该做什么。在大多数生产环境的智能体系统中,这个决定从未被真正做出。它是被“默默继承”下来的——往往来自于编写工具封装(tool wrapper)的工程师在项目第三周周二下午 4 点随手写下的代码。

其结果就是你的客户最终替你写出的内容:一个 Reddit 帖子、一份客服对话记录,或者是新闻稿中的一段引述。“助手告诉我余额是 0 美元,但其实我的账户没问题——结果发现是他们的查询服务挂了。”那段话就是你的团队没写的降级模式规范。现在它公开了,它属于客户了,而且你的工程部门在接下来的整个季度里都将忙于应对它。

你的工具结果缓存是一份你从未签署过的过期数据契约

· 阅读需 12 分钟
Tian Pan
Software Engineer

追踪记录看起来很干净。Agent 调用了 get_inventory_status,工具返回了 {"available": 142, "warehouse": "SEA-3"},模型将这些信息编织成了一个自信的回答。客户下单了。仓库却说该商品自上午 9 点以来一直缺货。缓存的行数据是四小时前的。团队中没人决定过四小时是可接受的 —— 这只是平台团队连接包装器(wrapper)时,缓存框架默认的设置。

这种失效模式经常被误归类为幻觉。模型并没有在胡编乱造;它是在忠实地根据一个过期的工具结果进行推理,而没人费心将该结果标记为过期。追踪记录显示的是一次干净的调用和干净的响应,评估集(eval set)从未见过过期缓存的情况,而这种退化在每一个撞上相同 TTL 窗口的客户身上悄无声息地累积。

你不该上线的 AI 功能:任务形态错位核查清单

· 阅读需 11 分钟
Tian Pan
Software Engineer

演示总是成功的。这是 AI 产品开发中最昂贵的一句话。产品经理看到模型处理好了理想路径(happy path),工程师发布了该功能的直观版本,六周后,支持队列里塞满了指标未能预见的投诉。模型本身没有退化。提示词(prompt)也没有变糟。只是该功能的形态并非模型所擅长的,而团队在工作开始前没有办法指出这一点。

相当大一部分已发布的 AI 功能都是以这种方式失败的——不是因为模型不好,而是因为任务错了。产品需要的输出是确定性的,而引擎是随机性的。用户对长尾误差的容忍度是千分之一的错误率,而模型的失败分布比这更厚。单位经济效益(unit economics)要求的延迟预算只有你在可负担范围内模型所能提供的一半。评估质量所需的地面真值(ground truth)并不存在,也无法低成本创建。这些都不是模型问题。它们是任务形态(task-shape)问题,应该在写下第一条提示词之前就被筛选出来。