bojieli/ai-infra-book

《深入理解 AI Infra:量化分析与系统设计》(李博杰 著)开源书稿:从硬件约束和模型架构出发,量化推导 LLM 推理与训练系统设计。含全书正文、PDF、配套计算工具与实验

字段 README 实际内容
是什么 一本开源书籍,标题为“深入理解 AI Infra:量化分析与系统设计”。它是作者前作《深入理解 AI Agent》(GitHub 星标超过 50,000)的姊妹篇。手稿仍为草稿,正在持续修订中。
作者 李博杰(GitHub: @bojieli)。仓库所有者,简体中文原版作者。本书基于 Apache License 2.0(原文、图片、代码)许可。版权所有 © 2026 李博杰。
为何存在 作者阐明的动机:构建基于模型的应用意味着理解其底层基础设施,就像软件工程师即使不开发操作系统和编译器也要学习它们一样——因为每次内存分配、文件读取、函数调用都有资源和时间成本。对于 LLM 应用,延迟和成本差异会改变产品和商业模式。作者的框架:LLM 已成为 LLM 时代的“操作系统”,而 AI Infra 是其“计算机体系结构”。本书旨在填补空白——此前没有一本书从硬件约束和模型架构出发定量推导系统设计。作者还引用了博士导师的建议:优化到物理极限;本书先计算硬件的理论上限,再与实际测量结果对比。
核心方法(“五个问题”) 全书反复出现的主题是数据搬移。每种场景都会反复提出五个问题:搬什么、搬多少、搬几次、从哪里搬(哪条路径)、谁在等它——即被搬移的内容、数量、传送次数、路径、依赖/等待。全书的方法始终是“从约束出发推导设计”:先明确任务与质量要求,列出计算/存储/通信/依赖需求,再对照硬件容量、带宽、算力做数量级估算。README 强调这容易出错:忘记 KV 缓存、只顾峰值算力不顾带宽、跨 GPU 拆分任务却忽略卡间通信——任何遗漏都可能让结论偏差数倍甚至几个数量级。
内容——12 章 1) AI 基础设施入门——单次生成需要多少内存、计算和数据 I/O。2) 模型架构——注意力、历史状态、专家结构如何改变系统需求。3) 推理与训练工作负载——任务阶段、到达模式、状态生命周期如何影响资源需求。4) 加速器架构——计算、存储、带宽、功耗、成本之间的权衡。5) 算子与运行时——融合、复用、并发、调度如何降低执行开销。6) 超级节点——多设备协作如何平衡容量、吞吐、同步成本。7) 数据中心网络——带宽、通信模式、拥塞如何影响计算效率。8) 推理优化——批处理、KV 管理、卸载、投机解码何时有用。9) 分布式推理——如何放置计算和状态,处理扩缩容与恢复。10) 训练系统——如何安排内存、通信、重计算以提高效率。11) 资源调度与运行环境——模型服务和工具环境如何共享资源、减少等待。12) 端-云-设备协同——在本地、边缘、云之间如何放置任务,以平衡质量、延迟、成本。
面向读者 调用过模型 API 或在本地运行过模型、想理解模型为何慢以及如何降低成本的人;以及系统、网络、芯片领域的工程师,以及这些领域的研究者和学生。前置要求:一些 Python、线性代数和计算机系统基础。README 建议先读第 1–3 章,再按章选择路径:应用/推理读者 → 第 8–9 章,再第 11–12 章;系统/网络读者 → 第 5–7 章,再第 9–10 章;芯片/架构读者 → 第 4–7 章及后续章节的算例。
配套计算工具 calculations/ 中的命令行工具,可重新计算书中的数字或估算不同模型和输入下的资源需求。静态计算只需 Python 3.10+ 标准库,无需 GPU 或模型权重。命令示例:python3 calculations/calc.py models(列出支持的模型);python3 calculations/calc.py forward --model qwen3-8b --tokens 8192 --format md(估算 Qwen3-8B 在 8192 token 预填充下的每算子资源需求)。包含结果索引和模型配置。
配套实验 按章节组织在 experiments/chXX/XX-YY/ 中;每个实验都有运行方法、输入条件和结果说明。需要 GPU 的实验会注明硬件和依赖要求;没有该硬件的读者仍可阅读已有记录。README 说明复现或引用时需注明手稿版本、模型、硬件和输入参数。
仓库大小与 Git LFS 大文件(论文、大输入、测量记录)通过 Git LFS 存储,总计约 20 GB。仓库的 .lfsconfig 默认跳过所有 LFS 文件——克隆只得到指针文件;正文、图片和静态计算不需要它们。只获取特定实验:git lfs pull --include="experiments/ch05/05-01/**" --exclude=""。
可用格式与语言 原版:简体中文(作者自著)。社区翻译:英语(@tg1482)、繁体中文(@edward821220)、俄语(@ilkruglov 组织的社区版)。每个版本都提供 PDF、EPUB 和在线阅读网站。在线网站提供章节导航、全文搜索、深色模式,右上角可切换语言(根目录为简体中文,en/、zh-tw/、ru/ 子路径)。PDF 使用 XeLaTeX 排版;EPUB 适合手机/阅读器重排。每次推送到 main 都会自动构建并发布发布版——下载链接始终指向最新版本。
本地构建 网站:Python 3.10+,创建 venv,pip install -r website/requirements.txt,然后 python scripts/build_site.py,可选 python scripts/check_site.py,用 --serve 在 http://127.0.0.1:8000 预览。完整 PDF:需要 Pandoc、XeLaTeX、字体——脚本 book/build_pdf.sh(zh)、book-en/build_pdf.sh(en)、book-zh-tw/build_pdf.sh(zh-TW)。EPUB:python3 book/build_epub.py --edition zh(edition 可为 zh、en、zh-tw、ru),只需要 Pandoc 和 Poppler。翻译图片资源在 Git LFS 中——构建前用 git lfs pull --include="book-en/images/**,book-zh-tw/images/**" --exclude="" 拉取。CI(GitHub Actions)会检查所有语言的网站和 PDF/EPUB 的 PR 构建。
贡献 欢迎;README 列出了:通过勘误 issue 模板或 PR 修复事实错误(错误的数字、单位/数量级、引用不匹配、错误的公式/图片);重写不清楚的段落(跳过的推导步骤、首次出现未定义的术语、不连贯的示例);补充缺失的重要机制/架构/权衡;修复配套代码(experiments/ 和 calculations/ CLI)中的 bug;改进网页版(布局、导航、搜索、移动体验);翻译成更多语言(英语和繁体中文已有参考结构;开始前先开 issue 协调)。文本的唯一权威来源是 manuscripts/ 中的 Markdown——网页和 PDF 都由其构建,因此修改都应在那里进行。
结构 仓库目录:manuscripts/(前言、12 章、图片、绘图脚本);experiments/(每章实验与记录);calculations/(计算工具、固定输入、重算结果);case-studies/(按章索引的模型/硬件/系统分析);references/(引用、来源列表、版本快照);research/(支撑调查与修订记录);book/(PDF 模板、构建/检查工具);book-en/、book-zh-tw/(各自脚本的翻译版本);website/、scripts/(站点资源和构建/检查);archive/(历史大纲、评审、协调笔记)。

相关

  • 项目
  • 项目
  • 项目
  • 项目