读书笔记 · 约 21,657 字 · 预计推送 3 部分

《Designing Machine Learning Systems》选读精读:数据中心的 ML 工程,与 LLM 应用视角互补 未开始

目录

题记与说明


一、主题概述

Chip Huyen 的《Designing Machine Learning Systems》(下称 DMLS,2022)是"ML 系统设计"方向被引用最多的教科书之一。它的核心立场可以概括为一句话:生产中的 ML 系统里,算法只是一小部分,数据与围绕数据的工程才是主体——全书 11 章中有近一半篇幅(Ch3 数据工程、Ch4 训练数据、Ch8 分布漂移、Ch9 持续学习)在回答"数据从哪来、怎么变好、怎么漂移、怎么持续更新"。

三年后,同一作者用《AI Engineering》(AIE,2025)回答了另一个问题:当模型从"自己训练"变成"直接调用别人的基础模型",工程重心如何改变。作者本人在 aie-book README 中明确给出两书关系:AIE 是 DMLS 的 companion——DMLS 管表格数据标注、特征工程、模型训练;AIE 管 prompt 工程、上下文构造、参数高效微调;而且"真实世界的系统往往同时包含传统 ML 模型与基础模型"。

本笔记按七维提取 DMLS 的"数据中心 ML 工程"主线,并用对照表回答:这套 2022 年的方法论,在 LLM 应用时代哪些升值、哪些贬值、哪些原样迁移。


二、七维提取

1. 核心问题

DMLS 要解决的问题是:为什么大量 ML 项目在实验室里表现优秀,进入生产后却失败、退化甚至无人敢碰?以及,如何从一开始就把"生产"而非"刷榜"作为设计目标?

书中把这个问题拆成四层(对应四个数据侧子问题):

  1. 边界问题:什么问题该用 ML,什么不该?(Ch1 "When to Use Machine Learning")
  2. 基础问题:数据在进入模型之前的基础设施——格式、模型、存储、管道——如何决定系统能力上限?(Ch3)
  3. 质量与经济性问题:训练数据的采样偏差、标注成本、类不平衡,如何系统地而非碰运气地处理?(Ch4)
  4. 时间问题:数据在变化(分布漂移),模型会过时,如何让系统"活下去"?(Ch8–Ch9)

而"与 LLM 应用视角互补"是本次选读加上去的第二问:这套数据中心方法论,对建立在基础模型之上、不自己训练模型的 LLM 应用开发者还剩多少效力?

2. 主要主张

  1. 算法只是系统的一小部分(Ch1 开篇即立论):"Many people, when they hear 'machine learning system,' think of just the ML algorithms... However, the algorithm is only a small part of an ML system in production." 系统还包括业务需求、交互界面、数据栈、开发/监控/更新逻辑与基础设施。
  2. 用 ML 有严格前置条件(Ch1):书中给出 ML 的五要素定义——"Machine learning is an approach to (1) learn (2) complex patterns from (3) existing data and use these patterns to make (4) predictions on (5) unseen data"——并追加四个利好特征(重复性、错误代价低、规模化、模式持续变化)与三条禁用条件(不道德、更简单的方案可行、不划算)。"更简单的方案先行"被写进模型开发流程:"In Chapter 6, we'll cover the four phases of ML model development where the first phase should be non-ML solutions."
  3. 研究 vs 生产是两个游戏(Ch1 表 1-1):需求(单一 benchmark vs 多方利益相关者)、计算优先级(训练快 vs 推理快/低延迟)、数据(静态 vs 持续漂移)、公平与可解释性(常被忽视 vs 必须考虑)五个维度系统性错位。作者用餐厅推荐案例说明:ML 工程师、销售、产品、平台、经理五方目标互相冲突,"successful research projects might not always be used in production"。
  4. 生产 ML 系统有四条硬性要求(Ch2):可靠性(reliability)、可扩展性(scalability)、可维护性(maintainability)、适应性(adaptability)。其中最反直觉的是可靠性——"ML systems can fail silently"(ML 系统会静默失败:调用没报错,预测全错,用户毫不知情)。这与传统软件"崩溃即报警"的失败模式根本不同,也是后续 Ch8 监控全章的动机。
  5. 开发是迭代循环,不是流水线(Ch2 "Iterative Process"):作者以自己踩过的坑为例——上线前以为"收集数据→训练→部署→完工",实际是"错误分析发现标签错了→重标→发现 99.99% 负样本→补采样→模型过期→业务方说收入降了→换优化目标→回到第 1 步"的 13 步循环。六个阶段(项目定界→数据工程→模型开发→部署→监控与持续学习→业务分析)首尾相接。
  6. 数据是成功 ML 的主要变量,但"更多"不等于"更好"(Ch2 "Mind Versus Data"):"Progress in the last decade shows that the success of an ML system depends largely on the data it was trained on. Instead of focusing on improving ML algorithms, most companies focus on managing and improving their data." 作者同时呈现了反方(Pearl:"Data is profoundly dumb";Manning:结构与归纳偏置让系统"用更少数据学更多")与正方(Sutton 的 The Bitter Lesson、Norvig:"We don't have better algorithms. We just have more data."),而自己的落脚点是有保留的数据中心论:"more data doesn't always lead to better performance for your model. More data at lower quality, such as data that is outdated or data with incorrect labels, might even hurt your model's performance."
  7. 数据工程决定 ML 系统的地基(Ch3):数据格式(行式 vs 列式:CSV/JSON/Parquet/Avro/Protobuf/TFRecord)、数据模型(关系/文档/图)、存储引擎(OLTP vs OLAP,存算分离)、数据传递(数据库/服务请求/实时传输 Kafka-Kinesis)、处理范式(批处理 vs 流处理)——并直接映射到特征工程:"Batch features... are also known as static features" / "Streaming features... are also known as dynamic features"(如网约车定价:司机历史评分为批特征,"最近 1 分钟请求量"为流特征)。
  8. 训练数据是一门经济学(Ch4):
    • 采样:非概率采样(便利/滚雪球/判断/配额)"riddled with selection biases",且在现实中无处不在——语言模型用 Wikipedia/Common Crawl/Reddit(可得性偏差)、情感分析用 IMDB/Amazon 评论、自动驾驶早期数据集中在阳光充足的凤凰城和湾区。概率采样(简单随机/分层/加权)是为了控制偏差。
    • 标注:手工标注"贵(专家级如放射科医生)、慢(音素级语音标注耗时是语音时长 400 倍;肺癌 X 光项目等标签等了近一年)、有隐私风险",且存在标签多重性(label multiplicity,三个标注者对同一段《星球大战》文本给出 3/6/4 个实体)。出路是自然标签(推荐系统点击等反馈)、弱监督(Snorkel 标注函数)、迁移学习、主动学习。
    • 类不平衡是常态不是例外:"It was a shock for me to start working and realize that class imbalance is the norm."(欺诈检测、流失预测、疾病筛查都是极小正类;甚至"分类器的默认行为"都会制造不平衡——公司邮箱库里垃圾邮件很少,因为过滤层先挡掉了 85% 的垃圾邮件)。
    • 一个贯穿全书的术语坚持:"We use the term 'training data' instead of 'training dataset' because 'dataset' denotes a set that is finite and stationary. Data in production is neither finite nor stationary."
  9. 部署不是终点,模型必然退化(Ch8 开篇案例):某公司花六个月请咨询公司做的补货预测模型,一年后"高估的需求导致货物过期,低估的需求导致丢单",最后面临"付更多钱请咨询公司更新、或自建团队维护"的困境。"Deploying a model isn't the end of the process. A model's performance degrades over time in production." 退化主因是数据分布漂移,分三个子型:covariate shift(P(X) 变,P(Y|X) 不变)、label shift(P(Y) 变)、concept drift(P(Y|X) 变)——但作者明确提醒生产者别纠结分类:"In production, when encountering a distribution shift, data scientists don't usually stop to wonder what type of shift it is. They mostly care about what they can do to handle this shift."
  10. ML 工程首先是工程(Ch8):Google ML 工程师 Daniel Papasian 与 Todd Underwood 复盘 96 起大型 ML 管线故障,"60 out of these 96 failures happened due to causes not directly related to ML"(多数是分布式系统/数据管道问题)。作者由此推论:"ML engineering is mostly engineering, not ML."
  11. 持续学习本质是基础设施问题,核心是训练方式而非频率(Ch9):"continual learning is largely an infrastructural problem"。区别 stateless retraining(每次从零重训)与 stateful training(从上次 checkpoint 继续训,即 fine-tuning/incremental learning),并给出 Grubhub 案例:"Going from daily stateless retraining to daily stateful training reduced their training compute cost 45 times and increased their purchase-through rate by 20%." 同时对"该多久重训一次"给出清醒回答:如果周更到日更没有收益、只有开销,"there's no need to do it"。
  12. LLM 应用视角(来源 2、3):Chip Huyen 2023 年的判断——"It's easy to make something cool with LLMs, but very hard to make something production-ready with them"——与 DMLS 的"研究 vs 生产"是同一个母题。关键结构性变化:成本重心反转("The cost of LLMOps is in inference",传统 ML 的成本在采数据+训练,LLM 的实验成本低到"25 个 prompt 版本 × 20 个样本"只要 ~$300,但 DoorDash 级别每天 100 亿次预测若每次 $0.004 就是每天 $4000 万);静默失败变形("if someone accidentally changes a prompt, it will still run but give very different outputs"——改代码会报错,改 prompt 不会);向后兼容消失("if you want to use a newer model, there's no way to guarantee that all your prompts will still work as intended with the newer model")。作者给两书的官方定位(来源 3 原文):"AIE can be a companion to DMLS. DMLS focuses on building applications on top of traditional ML models, which involves more tabular data annotations, feature engineering, and model training. AIE focuses on building applications on top of foundation models, which involves more prompt engineering, context construction, and parameter-efficient finetuning."

3. 方法

4. 数据与证据

书内引用的实证数据(DMLS,本次抽取自 PDF 原文):

主张证据定位
成熟度决定部署速度Algorithmia 2020 调查:模型在生产 5 年以上的公司约 75% 可在 30 天内部署;刚起步的公司 60% 需要 30 天以上Ch2
互联网时代的语言建模数据爆炸One Billion Word(2013,0.8B tokens)→ GPT-2(10B)→ GPT-3(500B tokens)Ch2 图 2-8
小性能提升的大生意"a 0.2% improvement in the click-through rate for a product recommender system can result in millions of dollars increase in revenue"Ch1
采集用户很贵app 每获取一个会内购的用户平均 $86.61(2019);Lyft 约 $158/骑手;获新客比留旧客贵 5–25 倍Ch1
规模化的极端案例作者合作过的初创公司为 8,000 家企业客户维护 8,000 个生产模型Ch2
静默失败"ML systems can fail silently. End users don't even know that the system has failed"Ch2 可靠性节
故障归因Google 96 起大型 ML 管线故障中 60 起与 ML 无直接关系(多为分布式系统/数据管道)→ "ML engineering is mostly engineering, not ML"Ch8
标注成本音素级语音标注耗时为语音时长 400 倍(1 小时语音 ≈ 400 小时人工);肺癌 X 光项目等标签近一年Ch4
标注者分歧同一句《星球大战》文本,3 个标注者分别标出 3/6/4 个实体Ch4 表 4-1
类不平衡是常态"class imbalance is the norm";2018 年每 $100 持卡消费 $6.8 为欺诈;Talos Intelligence 2021-05:近 85% 的邮件是 spam(故公司邮箱库里的"自然"数据反而稀缺垃圾样本)Ch4
高基数分类的数据门槛"ML models typically need at least 100 examples for each class"(1,000 类 → 至少 10 万样本)Ch2
stateful training 收益Grubhub:日级 stateless 重训 → 日级 stateful 训练,训练算力成本降 45 倍,购买转化率 +20%Ch9
模型必然退化开篇案例:补货预测模型上线一年后系统性高估/低估,最终不可用Ch8

LLM 侧的实证数据(来源 2,2023 博文全文):

主张证据
LLM 实验便宜、推理贵GPT-4、10k token 输入 + 200 token 输出 ≈ $0.624/次预测;对照:AWS Personalize 约 $0.0417/千次预测
prompt 的数据价值Scao & Rush (2021) "How Many Data Points is a Prompt Worth?":"a prompt is worth approximately 100 examples"
推理延迟gpt-3.5-turbo:51 token 输入 + 1 token 输出 p50 ≈ 0.58s;输出 26 token 后 p50 > 1.4s(输出长度主导延迟,因 token 逐个生成)
静默失败"if someone accidentally changes a prompt, it will still run but give very different outputs"
兼容性风险换新模型无法保证旧 prompt 仍按原意工作 → "it's important to unit-test all your prompts using evaluation examples"

证据是否充分:书内数字多为二手引用(Algorithmia、Talos、Grubhub 工程博客等)且止于 2021–2022,成本/工具类数字已明显过时;但其"框架性主张"(四要求、迭代循环、漂移三型、stateful training)有独立于具体数字的生命力,AIE README 的延续与"自发布起长期位居 O'Reilly 阅读榜第一"(来源 4 自述)可作侧证。引述与页码均可从本次抽取文本复核。

5. 结论与效果

  1. DMLS 的核心结论:ML 生产系统的设计必须以数据为中心、以业务指标为锚、以迭代循环为常态。四条系统要求(可靠/可扩展/可维护/可适应)中,"可适应"(数据漂移下的持续更新)是 ML 区别于传统软件的根本约束,由此推出监控(Ch8)+ 持续学习/生产测试(Ch9)是系统的第一公民而非附属。
  2. 数据哲学的落点不是"数据越多越好",而是"数据的质与量都要工程化":作者站在 data-over-mind 一侧,但用"低质量数据会伤害性能"给数据中心论加了限制条款——这与 2023 年之后"data quality > data quantity"的 LLM 数据工程共识一致。
  3. 与 LLM 应用视角的互补结论(本次选读的核心增量):LLM 应用不是推翻了这套方法论,而是把同一组问题搬到了新位置:
    • 成本从"训练侧"搬到"推理侧",但"先算业务账再做 ML"的纪律不变;
    • 静默失败从"分布漂移导致预测全错"变成"prompt 改一个词输出全变、不报任何错",监控与评估反而更急迫;
    • 采样/标注经济学变成"评估集构造 + few-shot 示例选择"("a prompt is worth ~100 examples"正是 Ch2 "至少 100 例/类"经验法则的镜像);
    • 持续学习从"周级重训"变成"换模型/加 RAG 语料/增量微调",stateful training 的思想原样迁移;
    • 数据工程从"特征管道"变成"上下文管道"(RAG 检索、向量库、数据组织),Ch3 的"批 vs 流、静态 vs 动态特征"直接对应"静态知识库 vs 实时上下文注入"。

作者的官方结论(来源 3):"A real-world system often involves both traditional ML models and foundation models, so knowledge about working with both is often necessary."——两本书不是替代关系,而是同一工程哲学的两个声部。

  1. 效果:DMLS 出版至今仍是 ML 系统设计事实上的标准教材(被译成 10+ 语言,来源 4),其框架(如"何时用 ML"清单、静默失败、分布漂移三型、champion/challenger)已成为行业标准语汇。

6. 局限

作者承认或书中明示的:

我(精读者)判断的:

7. 对我的启发

结合我此前精读过的条目(Anthropic Building Effective Agents 的工作流 vs Agent、RAG 评估方法论 RAGAS/TruLens、上下文工程综述、LLM 可观测性 Langfuse/Phoenix):

  1. 把 DMLS 的"四要求"当 LLM 应用的验收清单。可靠性→LLM 的静默失败更隐蔽(prompt 回归不报错),需要 prompt 版本化 + 回归测试集(呼应 2023 博文"unit-test all your prompts");可扩展性→上下文窗口/token 成本随用量线性放大;可维护性→prompt/检索配置/工具描述都该进 git 并可归因;适应性→语料与用户行为漂移下的持续评估。
  2. "评估先行"的两代同构:Ch4 说"每类至少 100 个样本"才学得会;2023 博文说"一个 prompt 值约 100 个样本"。共同原则是——模型能力上线之前,先有带标签的评估集。做 LLM 应用时第一个交付物不是 demo,而是 50–200 条覆盖边界情况的评估样例(这直接复用 RAGAS/TruLens 条目里"指标必须挂在本项目数据上"的结论)。
  3. 采样偏差警觉直接迁移到 RAG:DMLS 批评 LM 训练语料是"可得性采样"(Wikipedia/Common Crawl);RAG 系统的知识库同样是便利采样——内部文档全、客服记录缺、线下渠道零覆盖。检索评估集要按"真实查询分布"采样,而不是按"库里有什么"采样。
  4. 类不平衡 → LLM 应用中的"稀有情况覆盖":DMLS 说生产中"稀有事件更有趣(或更危险)"。LLM 应用里对应:多语言输入、超长文档、对抗性 prompt、空结果等稀有路径,恰恰是 demo 覆盖不到、生产最容易静默失败的地方。
  5. stateful training 的思想用于微调决策:如果 LLM 应用要做领域微调,别从零训练——从通用基座 checkpoint 继续训(DMLS 的 Grubhub 案例:45 倍算力节省),并且只在"数据量大到 prompt 装不下/成本压不平"时才动(2023 博文的 prompting vs finetuning 数据量分界)。
  6. 业务指标锚点:Ch2 的 13 步循环里最扎心的一步是"模型指标很好,业务方来敲门问为什么收入降了"。LLM 应用的等价事故:AIME 分数大涨、付费转化不动。每个 LLM 项目立项时应同时写下 ML 指标(评估分)与业务指标(留存/转化/工单量),并预设二者的连接假设。
  7. 阅读顺序建议:做 LLM 应用的人先读 AIE(Ch1 的 ML engineering vs AI engineering 对照表),再回读 DMLS 的 Ch1/2/4/8/9 当"基础设施补课"——作者的官方建议是两书可独立读,"self-contained and modular",但真实系统两头都要。

三、原文引述集(本次抽取核对)

摘录均为短引(1–3 句),用于精确表达原意;版权属作者与 O'Reilly,完整内容请读原书。
  1. 算法只是小部分(Ch1):
"However, the algorithm is only a small part of an ML system in production. The system also includes the business requirements that gave birth to the ML project in the first place, the interface where users and developers interact with your system, the data stack, and the logic for developing, monitoring, and updating your models, as well as the infrastructure that enables the delivery of that logic."
  1. ML 五要素定义(Ch1 "When to Use Machine Learning"):
"Machine learning is an approach to (1) learn (2) complex patterns from (3) existing data and use these patterns to make (4) predictions on (5) unseen data."
  1. 静默失败(Ch2 "Reliability"):
"With traditional software systems, you often get a warning, such as a system crash or runtime error or 404. However, ML systems can fail silently. End users don't even know that the system has failed and might have kept on using it as if it were working."
  1. 数据心智之争(Ch2 "Mind Versus Data"):
"Progress in the last decade shows that the success of an ML system depends largely on the data it was trained on. Instead of focusing on improving ML algorithms, most companies focus on managing and improving their data."
Peter Norvig: "We don't have better algorithms. We just have more data."
Judea Pearl: "Data is profoundly dumb."
Richard Sutton: "The biggest lesson that can be read from 70 years of AI research is that general methods that leverage computation are ultimately the most effective, and by a large margin."
  1. 数据质量条款(Ch2 末):
"Even though much of the progress in deep learning in the last decade was fueled by an increasingly large amount of data, more data doesn't always lead to better performance for your model. More data at lower quality, such as data that is outdated or data with incorrect labels, might even hurt your model's performance."
  1. training data 而非 dataset(Ch4 开篇):
"We use the term 'training data' instead of 'training dataset' because 'dataset' denotes a set that is finite and stationary. Data in production is neither finite nor stationary."
  1. 数据的危险(Ch4 开篇):
"Data is messy, complex, unpredictable, and potentially treacherous. If not handled properly, it can easily sink your entire ML operation."
"Use data but don't trust it too much!"
  1. 类不平衡是常态(Ch4 "Class Imbalance"):
"When I was in school, most datasets I was given had more or less balanced classes. It was a shock for me to start working and realize that class imbalance is the norm. In real-world settings, rare events are often more interesting (or more dangerous) than regular events."
  1. 模型必然退化(Ch8 开篇):
"Deploying a model isn't the end of the process. A model's performance degrades over time in production."
  1. ML 工程首先是工程(Ch8):
"60 out of these 96 failures happened due to causes not directly related to ML."(Papasian & Underwood, Google,2020)
"addressing them is beyond the scope of this book. Because of the importance of traditional software engineering skills in deploying ML systems, ML engineering is mostly engineering, not ML."
  1. 持续学习是基础设施问题(Ch9):
"how do we adapt our models to data distribution shifts? The answer is by continually updating our ML models... continual learning is largely an infrastructural problem."
Grubhub 案例: "Going from daily stateless retraining to daily stateful training reduced their training compute cost 45 times and increased their purchase-through rate by 20%."
  1. LLM 应用视角(来源 2, 2023-04-11):
"It's easy to make something cool with LLMs, but very hard to make something production-ready with them."
"The flexibility in user-defined prompts leads to silent failures... if someone accidentally changes a prompt, it will still run but give very different outputs."
"The cost of LLMOps is in inference."
"If you expect the models you use to change at all, it's important to unit-test all your prompts using evaluation examples."
  1. 两书互补的官方表述(来源 3, aie-book README):
"AIE can be a companion to DMLS. DMLS focuses on building applications on top of traditional ML models, which involves more tabular data annotations, feature engineering, and model training. AIE focuses on building applications on top of foundation models, which involves more prompt engineering, context construction, and parameter-efficient finetuning. Both books are self-contained and modular, so you can read either book independently."
"A real-world system often involves both traditional ML models and foundation models, so knowledge about working with both is often necessary."
  1. 作者的方法论自述(来源 4, huyenchip.com/books):
"This book discusses a holistic approach to designing ML systems. It considers each design decision—such as how to process and create training data, which features to use, how often to retrain models, and what to monitor—in the context of how it can help your system as a whole achieve its objectives."

四、DMLS(数据中心 ML 工程)× LLM 应用(AI Engineering)互补对照表

维度DMLS(2022,传统 ML)LLM 应用 / AIE(2025,基础模型)迁移关系
模型来源自己训练(选型/调参/特征工程)调用现成基础模型(prompt/RAG/微调适配)中心从训练移到适配
成本重心采数据 + 训练(实验贵)推理(实验便宜,推理随规模爆炸)反转,但"先算业务账"不变
数据工作采样、标注、类不平衡、特征管道上下文构造、RAG 语料组织、评估集、few-shot 示例"数据的质与量要工程化"原样保留,位置变了
数据经济学经验法则每类 ≥ 100 个样本(高基数 → 10 万级样本)"a prompt is worth approximately 100 examples"同一量级的直觉镜像
静默失败分布漂移/数据管道错误 → 预测全错不报错prompt 改动/换模型 → 输出全变不报错LLM 侧更隐蔽,评估即监控
适应机制持续学习:stateless retraining vs stateful training;champion/challenger换模型版本、增量微调、检索库更新stateful 思想 = 增量微调
漂移来源covariate/label shift、concept drift、反馈环语料时效、用户行为、供应商换模型(向后兼容消失)Ch8 框架仍可给漂移分类,需补"模型方漂移"
系统四要求可靠/可扩展/可维护/可适应同四条,验收对象换成应用级(含工具调用、agent 控制流)直接作为验收清单
最优先工程数据管道(Ch3)评估管道(eval harness、LLM-as-judge)"第一个交付物是评估集"
真实系统传统 ML 模型为主两者常共存(如 RAG 里的传统检索排序 + LLM 生成)作者:both is often necessary

五、本次学到什么(可复用原则)

  1. "数据中心"不是口号而是账本:它等价于把工程预算从模型侧搬到数据侧(采样策略、标注经济性、漂移监控),搬多少取决于"错误代价 × 模式变化速度 × 规模"三个杠杆——这套账本在 LLM 应用里换了个名字(评估集、上下文管道、回归测试),但没有消失。
  2. 框架 > 算法 > 工具:DMLS 三年不过时的原因是它只承诺框架;写笔记/做技术选型时同样应把"哪些内容会过时、哪些不会"显式分层。
  3. 静默失败是 ML/LLM 系统的第一性风险:传统软件失败会喊疼,这两个范式都不会——所以"评估与监控"在两代系统里都不是附属品,而是唯一能听见疼的器官。
  4. 精读方法沉淀:对整本技术书,先抽取全文定位章节边界,再按"论点密度"选 4–6 章精读 + 其余只读框架,配合作者后续作品/自述做互证,比逐页线性读性价比高得多。

附:来源清单与链接

  1. Chip Huyen, *Designing Machine Learning Systems*, O'Reilly, 2022 — 官方页:<https://www.oreilly.com/library/view/designing-machine-learning/9781098107956/>;本次使用的公开镜像 PDF:<https://softouch.on.ca/kb/data/Designing%20Machine%20Learning%20Systems.pdf>
  2. Chip Huyen, *Building LLM Applications for Production*, 2023-04-11 — <https://huyenchip.com/2023/04/11/llm-engineering.html>
  3. Chip Huyen, *AI Engineering* 官方仓库 README(含 "Reading AIE with DMLS" 节)— <https://github.com/chiphuyen/aie-book>(raw:<https://raw.githubusercontent.com/chiphuyen/aie-book/main/README.md>)
  4. Chip Huyen 著作页 — <https://huyenchip.com/books/>
  5. O'Reilly *AI Engineering* 书目页 — <https://www.oreilly.com/library/view/ai-engineering/9781098166298/>
← 资料库今日播报 →