harvard-edge/cs249r_book
GitHub: harvard-edge/cs249r_book
哈佛大学开源的机器学习系统(MLSys)课程与配套教材,旨在填补 AI 模型训练与实际工程化部署之间的认知鸿沟。
Stars: 24066 | Forks: 2883
# 机器学习系统
*工程化人工智能系统的原则与实践*
## 使命
这一差距正是我们所说的 AI 工程。
**AI 工程是一门致力于构建在现实世界中高效、可靠、安全且鲁棒的智能系统的学科,而不仅仅是孤立的模型。** 我们的使命是通过教授如何设计、构建和评估端到端的智能系统,将 AI 工程确立为一门与软件工程和计算机工程并列的基础学科。
**我们的目标:** 今年帮助 **100,000 名学习者** 掌握 ML Systems,并在 2030 年前达到 **100 万人**。
## 为什么是单一仓库
我将其设计为一个单一的整合课程,而不是独立项目的集合。教科书讲授理论。TinyTorch 让你*构建*内部机制。硬件套件迫使你面对*真实的*限制。模拟器让你能够对你无法负担租金的基础设施进行推理。每一部分的存在都是因为我发现只阅读的学生无法内化,而只写代码的学生无法泛化。
一个不断壮大的贡献者社区正帮助改进它的每一个部分:修复错误、精炼解释、在新的硬件上进行测试。他们的工作让这一切对每个人都变得更好,我感激每一个 pull request。
## 课程体系
每个组件都是相互关联的。教科书为你提供心智模型。实验室让你通过交互方式在 MLSys·im(一个用于你无法物理访问的基础设施的建模引擎,其本身也是一个独立工具)的驱动下进行权衡推理。TinyTorch 让你亲手构建底层机制。硬件套件让你直面真实的部署限制。StaffML 测试你是否真正理解了它。Socratiq 在学习体验中增加了 AI 引导的阅读、情境测验和间隔重复。而讲师中心、幻灯片和通讯则为教育工作者提供了将这一切带入课堂所需的一切。
### 致教育工作者
## 选择你的路径
这些部分被设计为协同工作的,但你不需要一次性采用所有内容。
| 如果你是... | 从这里开始 | 然后深入学习 |
|---|---|---|
| **学生或自学者** | 阅读[卷 I](https://mlsysbook.ai/vol1/) 并尝试[实验 00](https://mlsysbook.ai/labs/vol1/lab_00_introduction/) | 构建 [TinyTorch](https://mlsysbook.ai/tinytorch/),使用 [MLSys·im](https://mlsysbook.ai/mlsysim/),并通过 [StaffML](https://mlsysbook.ai/staffml/) 练习 |
| **讲师** | 打开 [AI 工程蓝图](https://mlsysbook.ai/instructors/) | 使用[课程地图](https://mlsysbook.ai/instructors/course-map.html)、[幻灯片](https://mlsysbook.ai/slides/)、量规和助教指南 |
| **贡献者** | 选择你最常用的组件 | 改进章节、实验、测试、示例、硬件说明、模拟器模型或评估内容 |
学习循环为:**阅读 → 探索 → 构建 → 建模 → 部署 → 练习 → 教授**。
### 相关与实验性工作
有些项目被有意设计为比主干课程处于更早期的阶段:
- [Socratiq](socratiq/README.md) 探索了面向静态学习网站的 AI 引导阅读、情境测验和间隔重复。
- [MLPerf EDU](mlperf-edu/README.md) 是一个与 MLCommons MLPerf 对齐的、正在建设中的教学基准测试套件。
- [ML 系统元素周期表](periodic-table/README.md) 是一个用于组织反复出现的系统思想的紧凑概念图。
## 你将学到什么
这本教科书教你如何在机器学习和系统工程的交叉点上进行思考。每一章都将算法概念与使其在实践中发挥作用的基础设施联系起来。
### 书籍结构
本教科书遵循 Hennessy & Patterson 的教学模式,分为两卷:
## 快速入门
## 分支指南
### 🧪 实验室贡献者
### 🎞️ 幻灯片贡献者
### 🗺️ 讲师网站贡献者
### ⚗️ ML 系统元素周期表贡献者
世界正在争先恐后地构建 AI 系统,却并未对其进行工程化。
这个仓库就是课程。
| 组件 | 在课程中的作用 | 链接 | |
|---|---|---|---|
| 📖 | 教科书 | 两卷本 MIT Press 教科书。理论、心智模型和定量推理是其他所有内容的基础。 | 卷 I · 卷 II |
| 🔬 | 实验室 | 交互式 Marimo 笔记本,你可以在其中探索教科书中的权衡:更改一个参数,看看哪里会出问题,从而建立直觉。底层由 MLSys·im 驱动。 | 启动实验室 · 仓库指南 |
| 🔥 | Tiny🔥Torch | 通过 20 个循序渐进的模块从零开始构建你自己的 ML 框架。在你亲手构建过一个系统之前,你无法真正理解它。 | 开始使用 |
| 🛠️ | 硬件套件 | 将 ML 部署到 Arduino、Seeed、Grove 和 Raspberry Pi 设备上。真实的内存限制、真实的功耗预算、真实的延迟。 | 浏览实验室 |
| 🔮 | MLSys·im | 在你无法物理访问的基础设施规模上计算内存瓶颈、网络饱和度和调度限制。 | 使用模拟器 · 仓库指南 |
| 💼 | StaffML | 针对 ML 系统岗位的基于物理原理的面试题。题库、练习、模拟面试和进度跟踪。 | 开始练习 · 仓库指南 |
| 组件 | 提供的功能 | 链接 | |
|---|---|---|---|
| 🎓 | 讲师中心 | AI 工程蓝图:两份 16 周的教学大纲、教学指南、评估量规和助教手册。 | 查看中心 · 仓库指南 |
| 🎬 | 讲义幻灯片 | 每章的 Beamer 幻灯片组,提供四种主题变体。直接加入你的课程即可开始教学。 | 浏览幻灯片 · 仓库指南 |
| 📬 | 通讯 | 课程更新、新章节以及社区的构建动态。 | 订阅 |
| 你已经知道... | 你将学到... | |
|---|---|---|
| 如何训练模型 | → | 训练如何在 GPU 集群上扩展 |
| 量化可以缩小模型 | → | INT8 数学如何在硅片上映射 |
| 什么是 transformer | → | 为什么 KV-cache 在推理时主导内存 |
| 模型在 GPU 上运行 | → | 调度器如何平衡延迟与吞吐量 |
| 边缘设备存在限制 | → | 如何协同设计模型与硬件 |
| 卷 | 主题 | 范围 | |
|---|---|---|---|
| 📗 | 卷 I | 构建、优化、部署 | 单机 ML 系统(1–8 个 GPU)。基础、优化和单节点部署。 |
| 📘 | 卷 II | 扩展、分布式、治理 | 生产规模的分布式系统。多机器基础设施、容错和治理。 |
① |
阅读教科书。 从卷 I开始,或继续阅读卷 II。这是其他所有内容的基础。 |
② |
选择一个动手路径。 构建一个框架(TinyTorch),探索权衡(实验室),建模限制(MLSys·im),或部署到真实硬件(套件)。 |
③ |
测试自己。 通过 StaffML 进行训练:涵盖云、边缘、移动端和 TinyML 的基于物理原理的系统设计问题。 |
④ |
教授它。 结合 AI 工程蓝图 和 讲义幻灯片 来采用本课程。 |
| 分支 | 包含内容 | 状态 | |
|---|---|---|---|
| 🟢 | mainmlsysbook.ai |
单卷本教科书(当前版本) | 上线中 —— 这是读者今天看到的内容。 |
| 🟡 | dev← 你在这里 |
卷 I —— 两卷本拆分(内容完成,编辑润色中) 卷 II —— 大规模扩展(积极开发中) 课程 —— TinyTorch、套件、MLSys·im、实验室、StaffML |
TinyTorch 和硬件套件已上线。 MLSys·im、实验室和 StaffML 处于早期发布阶段,正在积极迭代。 |
两卷本拆分将在发布时取代单卷本版本。
## 许可证 这是一个多组件仓库,**每个组件都在其各自的许可证下发布**以符合其用途。每个目录内的文件(例如 `tinytorch/LICENSE`、`interviews/staffml/LICENSE`)具有权威性。 | 组件 | 许可证 | 含义 | |---|---|---| | 教科书 (`book/`)、实验室 (`labs/`)、套件 (`kits/`)、幻灯片 (`slides/`)、讲师 (`instructors/`) | [CC-BY-NC-SA 4.0](LICENSE.md) | 仅限**非商业性**共享及改编,需注明出处并以相同许可证共享。 | | [TinyTorch](tinytorch/LICENSE) | MIT | 宽松许可 —— 可使用、修改、再分发,包括商业用途。 | | [MLSys·im](mlsysim/LICENSE.md) | Apache 2.0 | 宽松许可,包含明确的专利授权。 | | [StaffML](interviews/staffml/LICENSE) | AGPL v3 | 强 Copyleft —— 对已部署服务的修改必须公开发布。可提供商业授权;请联系作者。 | | [StaffML 题库](interviews/vault/questions/LICENSE) | CC BY-NC 4.0 | 仅供研究与教育使用;商业使用需获得许可。 | | [TinyDigits 数据集](tinytorch/datasets/tinydigits/LICENSE) | BSD 3-Clause | 宽松许可(与其 sklearn 血统相匹配)。 | | [TinyTalks 数据集](tinytorch/datasets/tinytalks/LICENSE) | CC BY 4.0 | 宽松许可,需注明出处;允许商业使用。 | 面向用户的摘要请访问 [mlsysbook.ai/about/license](https://mlsysbook.ai/about/license.html)。 如果您是考虑采纳本课程的机构,或是对 Copyleft 组件的商业条款感兴趣的公司,请通过 [edu@tinyML.org](mailto:edu@tinyML.org) 联系我们。 ### 🛠️ 硬件套件贡献者![]() Vijay Janapa Reddi 🪲 🧑💻 🎨 ✍️ 🧪 🛠️ |
![]() Marcelo Rovai ✍️ 🧑💻 🎨 |
![]() Farhan Asghar 🪲 🧑💻 |
![]() Salman Chishti 🧑💻 |
![]() Pratham Chaudhary 🧑💻 |
![]() Rocky 🪲 |
![]() Vijay Janapa Reddi 🧑💻 🎨 ✍️ |
![]() Rocky 🪲 🧑💻 🎨 |
![]() Salman Chishti 🧑💻 |
![]() Pratham Chaudhary 🧑💻 |
![]() Peter Koellner 🪲 |
![]() Vijay Janapa Reddi 🧑💻 🎨 ✍️ |
![]() Vijay Janapa Reddi 🧑💻 🎨 ✍️ |
![]() Farhan Asghar 🪲 🧑💻 🎨 |
![]() Rocky 🧑💻 ✍️ 🔎 |
即将推出!
标签:AI工程, Arduino, MLSys, PyTorch, TinyML, 人工智能, 可观察性, 哈佛课程, 嵌入式系统, 开源书籍, 技术教程, 机器学习工程, 机器学习系统, 模型优化, 深度学习, 物联网, 用户模式Hook绕过, 硬件加速, 系统架构, 计算机科学, 边缘计算, 逆向工具, 防御加固






