FDE 读 Chip Huyen 的 ML 书,从第 3 章读起
书中最犀利的一句是坏的训练数据算法救不了,这几乎就是 FDE 的工作描述,而有四章讲的正是应对之道。

要点速览
- Chip Huyen 的这本书(O'Reilly,2022)源自斯坦福大学的 CS 329S 课程,把 ML 系统作为一个整体来看待。
- 对 FDE 来说,核心是第 3、4、9、10 章:数据、训练数据、持续学习和 MLOps 基础设施。
- 值得记住的三个观点:再好的算法也救不了糟糕的数据;类别不平衡是常态;自建还是采购,是一个反复出现的问题。
这是一本讲机器学习的书,但书中最让人记得住的一句话却是:算法救不了你。如果训练数据很差,算法不可能表现良好。对前线部署工程师(FDE)来说,这句话几乎就是岗位描述。
这本书是 Chip Huyen 的 Designing Machine Learning Systems,2022 年由 O’Reilly 出版。它源自 Chip Huyen 在斯坦福大学讲授的 CS 329S 课程,这门课的目标是为开发真实世界中运行的 ML 系统提供一套迭代式框架。
不必从第一页读起。FDE 在客户现场通常要解决四件事:接入客户的数据,拿到足够好的训练数据,避免模型过时,以及回答基础设施该自建还是采购。第 3、4、9、10 章恰好对应这四件事。
为什么一本“整体视角”的书适合 FDE?
作者在本书介绍页中称,这本书以整体视角设计 ML 系统。从如何处理、构建训练数据,到选用哪些特征,每个决策都要放到整个系统的目标下衡量,而不是孤立地考虑。
本书官方 GitHub 仓库开篇就指出,ML 系统既复杂又各不相同,目标是构建可靠、可扩展、可维护的系统。FDE 的工作正是围绕这种“各不相同”展开:每个客户都有自己的数据类型和约束,因此系统思维比任何调参技巧都更有价值。
数据格式是对客户的承诺
第 3 章“数据工程基础”(Data Engineering Fundamentals)有一句话值得抄下来:对于结构化数据,写入数据的代码必须假定数据的结构。所以在集成客户数据时,选择存储格式不是小事,而是你的系统与对方系统之间的约定。
这一章还区分了两条路径。批量处理的数据产生静态特征;通过实时传输流动的数据,通常由流计算引擎处理,产生动态特征。
设想一家配送公司想预测哪些订单会被取消。“买家每月平均下单数”变化缓慢,每晚从导出文件重新计算一次就够了,这是批处理特征。“买家在过去 10 分钟内修改地址的次数”如果等到第二天早上再算就毫无意义,这是流处理特征。
最好在第一周就养成这样给特征分类的习惯,因为答案决定了你提出什么样的架构。如果所有重要特征都是批处理特征,可能暂时不必碰流处理基础设施。
95% 的准确率可能什么都没抓到
第 4 章“训练数据”(Training Data)指出,训练数据的质量决定模型表现,再巧妙的算法也无法弥补。它还点出一个令人不安的事实:在真实数据中,类别不平衡是常态,而不是例外。
算一笔小账。假设客户交来 1,000 笔交易,其中 950 笔正常,50 笔是欺诈。一个偷懒的模型把所有交易都预测为“正常”,1,000 次里对 950 次,准确率 95%,但 50 笔欺诈一笔也没抓到。
这个 95% 放在演示幻灯片上很好看,可客户请你来,恰恰是为了那 50 笔欺诈。因此在第一次工作会议上,先要标签分布,再讨论用什么模型;汇报结果时按类别分别给出,而不是只给一个数字。
真正的工作从演示之后开始
第 9 章讨论持续学习和生产环境测试,认为这是 ML 特有的问题,但主要需要靠基础设施来解决。作者还反驳了“流处理又难又贵”的担忧:流处理技术已经相当成熟。
第 10 章讲 MLOps 的基础设施与工具,称 ML 平台是一个新兴团队。搭建基础设施时,自建还是采购的问题困扰着工程经理和 CTO,书中也承认,ML 平台应包含什么,目前仍没有共识。
这个空白正是 FDE 能发声的地方,因为你最先亲眼看到客户缺什么。一页基于客户实际情况写成的自建与采购分析,往往比任何通用架构图都更有说服力。
遇到什么情况,该翻哪一章?
读一遍不够,这四章的价值在于项目卡住时知道该回到哪一页。下表是一份建议清单,可以贴在工位旁。
| 项目遇到的情况 | 翻到第几章 | 立即要做的事 |
|---|---|---|
| 客户发来从老系统导出的数据 | 3 | 写下写入数据的代码所假定的结构,先定格式再搭数据管道 |
| 部分特征需要按分钟更新 | 3 | 静态特征走批处理,把需要流处理的动态特征单独分出来 |
| 演示模型看起来不错,但客户发现它判断出错 | 4 | 统计标签分布,按类别汇报结果 |
| 上线后模型需要频繁更新 | 9 | 把它当作基础设施问题,不要因为看起来又难又贵就否定流处理 |
| CTO 问该自建还是采购 | 10 | 基于客户实际情况写一页自建与采购分析 |
什么阅读顺序能最快进入 FDE 工作状态?
比较合理的顺序是第 3、4、9、10 章,其余章节等项目需要时再回头读。打开书之前,先浏览 github.com/chiphuyen/dmls-book 上的各章摘要,心里有张地图。
作者的书籍页面在 huyenchip.com/books,课程资料在 stanford-cs329s.github.io。如果你做后端或数据工作、熟悉数据管道,这四章会自然接上你已有的经验。
读 FDE 岗位描述时,可以试着把每条要求归入这四章:数据和训练数据相关的要求对应第 3、4 章;模型运维和基础设施相关的要求对应第 9、10 章。
在简历上,一个同时包含批处理和流处理特征的小项目,再附上你如何发现并处理类别不平衡的说明,比一句“熟悉机器学习”更有分量。
读完这四章,算法水平未必会提高多少。但你会更早向客户问出对的问题,对 FDE 来说,这才是真正的优势。
这篇文章对你有帮助吗?
感谢你的反馈!