AI Pulse

Hamel AI产品工程13场讲座浓缩笔记,给出优化优先级

Hamel AI产品工程13场讲座浓缩笔记,给出优化优先级

Hamel Husain(以 LLM Evals 方法论闻名)在其 Maven 课程「AI Product Engineering」13 场、共 9.5 小时讲座后沉淀的笔记索引(2026 年 8 月发布)。他把全部内容提炼到约 20 分钟的阅读量,按 Evals(评测)、Context(上下文)、Systems(系统) 三大主题组织。

核心命题:什么是 AI 产品工程

Hamel 给出的定义很直接:AI 产品工程 = 把模型变成一个有用产品的工作。

模型能力是买来的(API 或开源权重),但产品价值不是。模型到手后,真正的工程工作才开始——而这份工作的核心矛盾是:可调节的旋钮很多,每个旋钮的收益和代价各不相同。这整份笔记的价值就在于他给出了旋钮的优先级。

最重要的结论:优化的顺序

先优化检索与上下文(context)——最低垂的果实

再改进系统与执行框架(systems / harness)

最后才考虑 post-training(微调等后训练)——且仅在前面手段穷尽之后

这个排序背后的逻辑值得展开:

上下文决定模型表现的下限。 同一个模型,喂给它干净、相关、充分的上下文,与喂给它噪声数据,表现可能天差地别。这是投入产出比最高的杠杆,而且完全在你的掌控之内,不依赖模型厂商。Context 主题下有 5 场讲座(数量最多),本身就说明这是他眼中的重心:多向量检索、搜索 Agent 优化、检索嵌入调优、OCR 选型、用脚注引导 AI 写作——本质上都是在回答“怎么把对的信息送进上下文窗口”。

系统层决定体验的上限。 再好的答案,如果延迟不可接受、成本失控,也不是产品。Systems 主题涵盖推理延迟调试、开源模型经济学(自托管 vs API 的决策)、Agent 沙箱设计——这些是工程交付层面的问题。

Post-training 是最后手段,不是第一步。 很多团队的直觉是“效果不好就微调”,Hamel 明确反对:微调成本高、周期长、且往往是在用一个昂贵的手段去弥补本可以靠检索和上下文解决的问题。正确姿势是让 evals 积累的错误数据最终流向 post-training(对应那场「Turn Eval Results Into a Better Model」),形成闭环——但它是终点站,不是起点。

贯穿一切的前提:Evals

Hamel 反复强调的一点是:这份笔记里几乎每一项改进,都始于好的评测。 没有评测,你既不知道当前产品的真实水平,也无法判断任何一个旋钮拧动后是变好还是变坏——优化就退化成玄学。Evals 主题的 4 场讲座也体现了他的方法论特色:

Evals for Data Agents:用混乱的真实数据仓库构建 benchmark,而非理想化的玩具数据——评测环境必须反映生产环境的脏乱。

模型级联降低分类成本:小模型有信心时直接出结果,不自信时才升级到大模型,在几乎不损失精度的前提下砍成本。这是“评测不仅找错,还能省钱”的典型例子。

自动化错误分析:借鉴主动学习(active learning),用 AI 本身来加速人工错误分析——把“看 bad case”这个最耗时也最有价值的环节自动化一部分。

落地案例:一家教育初创公司如何真的把 evals 部署到生产环境,发现课程规划助手的问题——证明这套方法不只是理论。

第一部分:Evals(评测)—— 一切改进的眼睛

1. Evals for Data Agents(Shreya Shankar:数据 Agent 评测)

内容:数据 Agent 承担原本属于数据分析师的工作(如“哪个 cohort 流失率最高”),但长期缺乏好的 benchmark。Shreya 团队推出 DAB(Data Agent Benchmark),其核心设计理念是刻意还原真实生产数据仓库的“脏”:任务数据分散在至少两个数据库系统、join key 不一致、关键值埋在自由文本里、schema 含义模糊。

关键发现:Agent 失败的主因不在于选错数据,是计划和实现本身错误。最值得注意的是一个行为缺陷——Agent 先写好计划,即使数据已经与计划矛盾,仍固执执行原计划,不会根据证据修正。

解读:这份失败分析对所有 Agent 开发者都有迁移价值。“先计划后死磕”是当前 LLM Agent 的系统性弱点(计划即承诺的倾向),调试自己的 Agent 时应专门检查这一模式。另外要区分 DAB 这类通用 benchmark 与产品自有 evals——前者看模型行业水位,后者看自家产品问题,不能互相替代。

2. Cut Classification Costs With a Model Cascade(Shreya Shankar:模型级联降本)

内容:大规模分类任务用最大模型跑太贵。BARGAIN 方法利用小模型输出标签时的概率(置信度)作为路由信号:置信度高的记录由小模型直接出结果,低的升级到大模型。落地只需三步:抽样约 500 条记录用大模型打标 → 遍历每个置信度阈值找满足精度目标的最便宜阈值 → 同一样本还能验证小模型 logits 与大模型标签的相关性是否足够。

重要前提:精度目标衡量的是与大模型的一致性,而非与人类标注的一致性——目标是“模仿大模型”,这是另一个独立任务。

效果:八个数据集上比同类方法最多多降本 86%。后续的 Task Cascades 论文进一步叠加三种优化(把 prompt 改写成小模型能答的简单问题、只读文档最相关片段、搜索最优级联序列),再降本 48.5%。

解读:这是“评测即省钱工具”的典范。工程直觉常停留在“换小模型会掉点”,而这篇给出的是一条可控的、按精度目标定制的成本-质量曲线——你可以精确指定“允许比大模型差多少”。500 条样本即可启动,门槛极低。

3. Automating Error Analysis(Shreya Shankar:自动化错误分析)

内容:写任何 eval 之前必须先做错误分析(对日志做数据分析,弄清到底发生了什么错误)。最常见错误是还没看真实数据就先写 rubric。错误分析也是整个 evals 流程中最依赖人力的环节——需要人工逐条阅读和标注 trace。开源的 Error Discovery skill 用三个机制降低人力成本:分类体系(taxonomy)从真实人工审查中演化生成(而非让 LLM 凭空发明)、发现新错误模式后回溯检查历史记录、用主动学习挑选下一个最值得人看的样本。

解读:这里有一个深刻的方法论立场:失败模式的 taxonomy 必须来自真实数据,不能让 LLM 编造。LLM 的角色是加速器(选样本、维护分类、回溯检查),人是定义者。这与 Hamel 一贯主张的“error analysis 先于写测试”一脉相承——不基于真实错误的评测是想象出来的评测。

4. Case Study: Putting Evals Into Production(Lucas Machado Rocha:评测落地案例)

内容:巴西教育非营利组织 Nova Escola(月活约 100 万、20 万教师)用 evals 改进 AI 备课助手。流程:错误分析 → rubric 开发与人工标注 → 用 eval skills 自动化(写 LLM judge 并对照人工标注验证 judge)→ 每日对 2% 生产流量跑评测套件捕捉回归。

三个用血泪换来的教训:

先写 rubric 后做错误分析:大部分评分标准对应的失败从未实际发生,白白浪费标注资源;

给本该简单修复的问题建评测:助手偶尔输出两个学习目标(正确只有一个),改一行 prompt 就解决了——不是每个失败模式都值得一个自动评估器;

两名标注员的一致率低于随机:根因是团队没定义清楚“什么是好”。与教学专家重写 rubric 并重新标注后才解决。

解读:这是全系列最有“落地体温”的一篇。低标注一致性(inter-annotator agreement)不是标注员的问题,是rubric 未定义清楚的症状——把它当作诊断信号而非麻烦。另一个洞见是自动化的时机判断:先确认问题不能用 prompt 修复,再投资评估器。每日跑 2% 生产流量则是“评测从实验走向基础设施”的标志。

第二部分:Context(上下文)—— 收益最高的杠杆

5. An Intro to Multivector Retrieval(Marek Galovic:多向量检索)

内容:传统检索把整篇文档压成一个向量,造成信息瓶颈。多向量检索改为每个 token 一个向量,用 MaxSim 打分:每个查询 token 找到文档中最匹配的 token,求和得文档得分。代价:算力约为单点积的 2000 倍、存储多 10–100 倍——这正是它长期困于论文的原因。SMVE 优化方案:每 token 投影到大量随机方向只保留 top-8 值 → 汇成稀疏向量进倒排索引 → 不与查询共享条目的文档直接跳过 → 幸存候选才做精确 MaxSim。结果:十亿文档规模下 p99 延迟低于 100ms。配套的 Iso-ModernColBERT 模型在 bf16 精度下快约 3 倍且几乎无质量损失。

解读:“检索质量的瓶颈不在算法而在成本”是本篇的核心认知。MaxSim(late interaction)思路其实源于 ColBERT,SMVE 的贡献是把工程成本压到生产可用。对实践者的提示:如果单向量 RAG 在长文档/细粒度匹配上明显不足,多向量已不再是纸上谈兵。

6. How to Improve Search Agents(Nandan Thakur:改进搜索 Agent)

内容:三个项目,一个主题——同时度量答案质量和搜索效率。

ORBIT(合成评测数据):朴素地从文档生成的问题太容易(一跳搜索即可回答)。ORBIT 反向出题——描述实体属性但不点名,并验证每题确实需要多跳搜索(Agent 需逐条主张对照来源确认 + 独立 judge 仅凭文档复现答案)。产出 2 万条已验证问题,零搜索 API 与 LLM 费用。

Hawkeye(轨迹可视化):可视化每次 Agent 运行。关键发现:成功的运行搜索轮数远少于未解决的运行——据此可以科学地设定“最大搜索轮数”阈值。

BrowseComp-Plus(可复现难基准):最震撼的数据——检索器而非模型是精度瓶颈。GPT-4.1 自己用 BM25 找文档时得分 14.6%,直接喂给它正确文档时得分 93.5%。

解读:14.6% vs 93.5% 是整个系列最有说服力的单一数据,直接验证了总纲“上下文优先”的排序——模型的推理能力往往远超其所得的检索质量。ORBIT 的方法论(合成数据必须刻意做难并独立验证)对没有标注数据的团队是条实用路径;Hawkeye 提示轨迹可视化这类轻量工具可以放心交给编码 Agent 自己造。

7. How to Optimize Retrieval Embeddings(Radu Gheorghe:检索嵌入优化)

内容:选嵌入模型不能只看 MTEB 榜单——它只排质量不讲成本,且在专业领域排名可能大幅洗牌(多语言支持和上下文长度是常见短板)。成本侧的“免费午餐”:CPU 上 INT8 比 FP32 快约 3 倍且保留大部分质量(GPU 用 FP16);向量存储 FP32→二值可省 32 倍,bfloat16 省 2 倍且无可测质量损失;Matryoshka 模型可截断尾部维度换取存储与速度。当模型在自有领域仍不足时,微调嵌入模型比微调 LLM 容易得多、影响往往更大——工具 VespaEmbed(Apache 2.0)已做到免代码:选底座、上传数据对、选损失函数、开训。

解读:本篇把“嵌入模型选择”从一个查榜动作变成一个多维决策(质量 × 量化 × 向量精度 × 可截断性 × 自有领域表现)。最反直觉的一点:大家谈微调色变时,嵌入微调其实是低成本高回报的隐藏杠杆——它是纯监督学习问题,没有 LLM 后训练的复杂性。

8. How to Choose an OCR Model(Joe Barrow:OCR 选型)

内容:用决策矩阵选 OCR——两根轴:需要纯文本块还是完整文档结构;用托管 API 还是自托管。四类选项:大云厂商(Textract、Google Vision,$0.6–1.5/千页)、文档初创(Reducto、Datalab 等,$5–20/千页,贵但功能全)、开源流水线(Tesseract、PaddleOCR,便宜快但能力窄)、开源 VLM(需 GPU,接近功能完整)。PDF 的意外失败模式:TeX 编译的 PDF 没有空格字符(字形靠坐标摆放,朴素抽取得到一长串无空格字母);双栏页面没有阅读顺序(逐行抽取器跨栏乱读);恶劣扫描件会让云 API 凭空造字(Textract 曾把 "the" 重复一百次);空白页会让 VLM 幻觉出样板页眉。还有许可证陷阱(如 Chandra/Surya 仅对年收入低于 200 万美元且不与 Datalab 竞争的机构免费)。推荐流程:定两轴 → 抽 50–100 页代表性页面 → 所有候选模型跑同一批 → 逐个检查原始输出与失败模式后再决策。只有约 5% 的团队应该自托管。

解读:OCR 是“上下文质量”链条上最前端也最被低估的一环——垃圾进垃圾出,检索再好也救不回乱序的 PDF 文本。本篇的普适方法论是用自己的 50–100 页文档做实证对比,而非信任任何 benchmark,与全系列“在自己数据上度量”的主张完全一致。

9. Steer AI Writing With Footnotes for Agents(Bischof & Conway:Subtext)

内容:Theory Ventures 的投资人写详细投资备忘录,重要决策嵌在行文中。AI Agent 改写这类文本时,这些决策可能被悄悄丢失或扭曲——Agent 偏离作者本意。开源工具 Subtext 的方案:给每个句子附上元数据(作者的澄清、待解问题),句子原文本身不动——相当于“给 Agent 看的脚注”。附带的演示中,聊天界面每条消息旁直接展示发送者关联的工单和通话记录,人类读者也无需自己去翻背景。

解读:这是全系列里最“产品思维”的一篇。它指出一个微妙的问题:自然语言散文是意图的有损压缩,Agent 改写时丢失的是文字背后未写出的决策上下文。解法优雅——不改文本、加旁注层,人机双受益。对任何“AI 辅助改写人类重要文档”的场景(合同、方案、报告)都有直接启发。

第三部分:Systems(系统)—— 决定产品能否交付

10. Debugging Inference Latency(Abi Aryan:推理延迟调试)

内容:优化延迟前必须先分清两个阶段——prefill(并行处理输入,单 token 成本低一个数量级)和decode(逐 token 串行生成,天生慢)。三种请求形态:长入短出(RAG、分类、抽取——最友好,prefill 主导且可并行);短入长出(Agent 轨迹、代码生成、长文写作——最差,被串行 decode 主导);短入短出(聊天——GPU 喂不饱,靠 vLLM 的 continuous batching 把大量小请求打包进同一次前向传播)。优化决策树:decode 主导 → 先砍输出长度,再考虑投机解码/小模型/更好硬件;prefill 主导 → 批处理请求 + 缩短上下文。动手实验建议:同模型跑三种形态对比计时;换推理引擎(llama.cpp 或 vLLM 对 decode 速度影响最大);试 int8/int4 量化观察显存下降与吞吐提升。

解读:本篇的价值是给了一个诊断先于优化的物理模型——“推理慢”是两种完全不同的问题。多数人换硬件、换模型瞎试,而正确路径是先测量两阶段占比。换引擎 > 换硬件这个优先级也非常实用。

11. Open Weight Model Economics(Zach Mueller:开源模型经济学)

内容:三问——用什么开源模型干什么活、模型塞不塞得进硬件、怎么租算力最经济。按任务选型(来自他数月日常使用):Qwen 27B dense 适合日常 Agent(邮件、查网、调 API);GLM 5.2 是编码主力“老黄牛”,专注且少犯小错;DeepSeek V4 Flash 定位“Claude Haiku 的直接替代品”;Kimi 最适合写作但全精度服务需要 8 卡 B200 节点,自托管不现实。显存估算公式:权重 GB = 参数量(B) × N × 0.5(N:4-bit 为 1、8-bit 为 2、16-bit 为 4、32-bit 为 8)——例:27B 模型 4-bit 约 13.5GB,加上激活和 KV cache 塞进 16GB 显卡。第三方路由警告:私有代码别走 OpenRouter 这类路由(落到的宿主数据隐私实践不可控);中途换供应商会使 prompt cache 失效;用了路由就用 evals 量化其对延迟和成本的影响。租卡策略:单台顶级节点优于多机 H100 集群——H100 只便宜 10–20%,多机互联却成瓶颈。

解读:这是全系列最“拿来即用”的一篇。显存公式一行就能避免“买错卡”的经典事故(别忘了权重之外的激活与 KV cache 开销);“单快节点优于多慢节点”与多机互联的通信瓶颈认知,对任何自托管决策都适用。

12. The Case for Agent Sandboxes(Adam Azzam:Agent 沙箱)

内容:本地偶尔跑跑编码 Agent 或许不需要沙箱,但一旦并行跑多个 Agent、速度提上来、或与人协作,沙箱就成了必需——它隔离每个 Agent 的代码,“出事时控制爆炸半径”。为什么 CI/CD 是错误工具:启动慢且生命周期短(Agent 可能连续工作数小时到数天);Agent 需要修改自己环境的依赖,CI 环境不支持;Agent 代码无人审查,坏改动可能搞垮机器或泄露环境中的凭证。两个设计要点:预烘焙镜像解决启动慢(Ramp 每 30 分钟烤一次全量镜像,Agent 启动后 git pull,“一秒内进入工作状态”);工具与 Agent 进程分离——加载大 CSV 内存溢出的工具不该杀死长时运行的 Agent 轨迹。Modal 给出了“快到感觉像本地”的云沙箱实现。

解读:本篇修正了一个流行的错误映射——“Agent 的隔离运行环境 ≈ CI"。两者的本质差异在于生命周期与自治权:CI 是短命且只读的,Agent 环境是长命且需要 root 级改动的。“工具崩溃不连坐 Agent”这条设计原则,在构建任何长时 Agent 系统时都值得默写。

13. Turn Eval Results Into a Better Model(Brown & Brand:评测结果→更好的模型)

内容:全系列的收官与总纲呼应:微调是提升 eval 分数的最后一根杠杆。核心警句:“Post-training 需要一个奖励正确行为的 eval,因为 RL 会钻任何空子”。推荐顺序:读 trace → 先修 eval 和环境 → 改进检索/上下文/harness → 才考虑 post-training。最震撼的例子:Terminal-Bench 2 上仅把任务超时上限×5,分数从 46.3% 涨到 60.97%——纯基础设施修复,模型一字未动。评测基础设施的常见坑:强制 temperature=0 而模型训练时按 1 采样(反而损害可复现性);max tokens / 轮数上限掐断推理;Agent 沙箱 CPU/内存配给不足;用了臃肿的 harness 而非让模型直接跑 bash;没把任务专属 skills 加进上下文就断言模型不行。Post-training 的两个前提条件(须同时满足):正确答案可自动验证 + 模型得分在 0 到 100 之间(既非无望也非已解决)。工具:Prime Intellect 的 verifiers 库与托管 RL。

解读:这一篇是整个系列的“闭环论证”。46.3%→60.97% 这个 14.7 个百分点的提升,与前面 BrowseComp 的 14.6%→93.5% 形成呼应:分数低时,锅多半不在模型,而在 eval 本身、环境配置和上下文供给。“RL 会钻任何空子”则解释了为什么 eval 正确性是 post-training 的硬前提——奖励函数的每个漏洞都会被优化器放大成行为。两个前提条件(可验证 + 分数在中间地带)是可以直接抄走的决策清单。

综合观察:贯穿 13 场讲座的五条主线

模型很少是瓶颈。 两处数据互相印证:喂对文档,GPT-4.1 从 14.6% 到 93.5%;改个超时,分数涨 14.7 个点。整个系列的隐含立场是:先把上下文、环境、评测基础设施这些“你完全可控的因素”做到位,模型能力往往已经够用。

先看数据,再写规则。 三篇不约而同:错误分析先于 rubric(Nova Escola 用浪费掉的标注资源买教训);taxonomy 从真实标注演化而非 LLM 编造;OCR 用自家 50–100 页实测而非信 benchmark。一切从实证开始是 Hamel 方法论的底色。

成本是可编程的。 级联降本(最多 86% + 48.5%)、嵌入量化(3 倍速/32 倍存储)、OCR 四象限定价($0.6 vs $20/千页)、单节点 vs 集群——几乎每个主题都有明确的价格标签和取舍公式。AI 产品工程的“工程”二字,大半落在这里。

失败模式比成功指标更有信息量。 数据 Agent “死守错误计划”、OCR 的 TeX 空格陷阱、标注一致率低于随机、双栏乱读——这些具体的失败模式才是可操作的工程知识,也是 error analysis 值得高投入的原因。

自动化有正确的时机。 prompt 一行能修的别建评估器;500 条样本能验证的级联就先跑起来;嵌入微调比 LLM 微调优先;post-training 放在最后且需满足两个硬前提。整个系列本质上是一份“先做什么、后做什么、什么时候不做什么”的决策手册。

阅读原文

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新