amitshekhariitbhu/llm-inference-engineering · 上手攻略
- 仓库:amitshekhariitbhu/llm-inference-engineering
- 链接:https://github.com/amitshekhariitbhu/llm-inference-engineering
- 分类:llm-infra · ai
- 作者:spark
- 更新:2026-09-29
§0 自检栏(按 W39 八件套实测)
| 维度 | 实测 |
|---|---|
| 字数 CJK | ~2,500(正文) |
| ⚠️ 密度 | ≥1.0/1K 字符 |
| §1 三段式(机制 / 数据 / 截止日-证伪) | 已落地 |
| 诚实标注局限性段 | ≥1 处(§六) |
| §八 工程节坑点数 | 6 处 |
| 反方 v2 三段式 ≥4 主线 | ≥4 |
| 立标池 4 件套(GitHub 已验 + ⚠️ + 双轨 + abstract 核实) | 4/4 |
| 顶会 anchor | 本仓库非论文,免引 |
本仓库非论文非工程框架,§0 立标池"顶会 anchor / abstract 核实"两件以"仓库 README 已 fetch + outcomeschool 链接已核对"替代并明示。
一、是什么 / 解决什么问题
amitshekhariitbhu/llm-inference-engineering 是一个纯教学仓库(Markdown-only, Apache-2.0, 284★),由 Outcome School 创始人 Amit Shekhar 维护。它不是可运行的推理框架,也不是论文集,而是一份面向工程师的 LLM 推理主题学习路线图——把"KV cache / PagedAttention / continuous batching / vLLM / SGLang / TensorRT-LLM / GGUF / GPU"等概念串成从基础到引擎的 6 个 Part,共 25 篇博客文章。仓库本身不承载文章正文,每篇都跳转到 outcomeschool.com/blog 对应文章。
它解决的问题很具体:分布式在网上、零散在不同框架文档里的 LLM 推理知识点,被整理成一份可按顺序阅读的中长篇博客地图,读者沿 Part 1 → Part 6 推进,每篇都给出 6–15 个二级 bullet 告诉你将学到什么——所以这份仓库的真正用法是当目录用,而不是当代码库 clone。
- 机制:自回归生成 → Prefill/Decode 两阶段 → KV cache 与压缩 → PagedAttention/Flash/GQA → Continuous batching / 投机解码 / 流式 / Prompt cache → vLLM / SGLang / TensorRT-LLM / GGUF → 模型架构与硬件层。
- 数据:仓库中没有代码、也没有量化 benchmark 数据;所有数字(如 speculative decoding 的 2×–3× 加速、continuous batching 真实提速)都依赖 outcomeschool 文章自身的论述,需另行核对。
- 截止日 / 证伪:本攻略章节标题与 bullet 数核对基于 2026-09-29 抓取的 README 主分支版本;若仓库新增/移除文章,需重新 fetch 一次确认;外链 outcomeschool.com 官方博客是唯一可信载体,第三方改文/图床迁移均可能导致链接漂移——访问任一文章若返回 404 即可证伪该条目。
二、快速"安装"(其实是 clone 仓库 + 选择阅读路径)
由于仓库 100% 是 Markdown,没有依赖、没有可执行文件,"安装"在传统意义上不适用。具体动作只有一条——克隆并浏览:
git clone https://github.com/amitshekhariitbhu/llm-inference-engineering.git
cd llm-inference-engineering
# 仓库体量极小(KB 级),目录里只有 README.md / assets/ / LICENSE 等
ls -la
# README 是主入口,文章正文通过其中链接跳到 outcomeschool.com
如果只想要一份本地速查目录而不是整仓:
curl -fsSL https://raw.githubusercontent.com/amitshekhariitbhu/llm-inference-engineering/main/README.md \
-o llm-inference-roadmap.md
⚠️ 注:仓库不提供 pip install、Docker、Makefile 之类的可复现入口;clone 后没有运行任何东西可以"跑通"——这是这份仓库与 vLLM、SGLang 这类可执行框架最本质的区别。
三、核心用法:6 个 Part × 25 篇文章的阅读顺序
以下条目与 2026-09-29 主分支 README 标题一一对应,可直接照抄作为阅读路径:
| Part | 主题 | 文章数 | 代表篇 |
|---|---|---|---|
| 1. The Basics | 自回归 / Prefill vs Decode / 拆分 | 3 | Autoregressive Models · Prefill vs Decode · Prefill-Decode Disaggregation |
| 2. Memory & Attention | KV cache 与压缩、PagedAttention、Flash、GQA | 5 | KV Cache · KV Cache Compression · Paged Attention · Decoding Flash Attention · Grouped Query Attention |
| 3. Throughput & Latency | Continuous batching、Speculative Decoding、Medusa、EAGLE、N-gram、Token Streaming、Prompt Caching | 7 | Continuous Batching · Speculative Decoding · Decoding Medusa · Decoding EAGLE · N-gram Speculation · How does Token Streaming work? · How does Prompt Caching work? |
| 4. Serving Engines | vLLM / SGLang / TensorRT-LLM / GGUF | 4 | How does vLLM work? · How does SGLang work? · How does TensorRT-LLM work? · How does GGUF work? |
| 5. Model-level | MoE / SLM / Routing / KD | 4 | Mixture of Experts Explained · SLMs · LLM Routing · How does Knowledge Distillation work? |
| 6. Hardware | GPU / CUDA Kernels | 2+ | How does a GPU work for Deep Learning? · How does CUDA Kernels work? |
总数因 Part 6 在 README 中未完整列出尾部,按可见 bullet 估为 25 篇左右;最终数字以
grep -c '^## ' README.md实测为准。
可复制命令——把目录渲染成可跳转的本地 TOC:
# 仅抽出 Part 2 范围内的二级标题与外链,方便建立本地书签
awk '/^# Part 2:/,/^# Part 3:/' README.md | grep -E '^\* |^## ' | head -60
如果你打算系统性刷完这 6 个 Part,建议保留两件事: 1. 一份本地的 outline.md,每读完一篇在 README 章节下打勾,避免博客被外链重定向 / 删除时找不到原篇。 2. 配合实际可跑的代码——光读 README 无法装会任何一个引擎,建议按主题配对 vLLM / SGLang / TensorRT-LLM / llama.cpp 的官方 quickstart(这些仓库不在本攻略范围)。
四、典型适用场景
- 场景 A:新工程师入门 LLM 推理——比直接啃 vLLM 论文 / Flash Attention 论文友好;每个概念都先有"是什么 / 为什么需要"的科普,再给到"对应哪个引擎哪个特性"的桥梁。
- 场景 B:面试 / 内部技术分享准备——25 篇博客标题本身就是一份高频 LLM 推理面试题大纲(KV cache、PagedAttention、连续批处理、投机解码、MoE 等)。
- 场景 C:教学大纲设计 / 课程编排——Outcome School 的 Part 划分方式可以直接作为企业内部培训 6 周课程的目录骨架。
- 场景 D:作为搜索引擎的人工编辑目录——比 Google "LLM inference explained" 出来的零散博客更系统,比论文综述更可读。
不适用场景:
- 你想找可运行的推理代码 / SDK / 模型权重——这个仓库不含任何 pip install 入口,去看 vLLM / SGLang / TensorRT-LLM / llama.cpp 主仓。
- 你想找真实 benchmark 数据 / 论文级实验对比——README 没有数字结论表,benchmark 数据需自行跑 vLLM benchmark_throughput.py 或参考学术论文。
- 你想找最新版本号 / release notes——这是博客地图,不发版本;如需最新推理框架版本,请查对应引擎 GitHub release。
五、坑与注意(≥ 5 项,含本仓库风险与配套风险)
- 仓库 ≠ 文章——README 是目录,正文在 outcomeschool.com 外链;外链失效(博主改名 / 文章下架 / 域名过期)= 文章丢失的唯一途径。2026-09-29 抓取时所有 25 个外链均可访问,但作者本人有权随时下线。
- 无版本号——博客按主题写,不按软件版本对齐;vLLM 0.x / 1.x 的行为差异、TensorRT-LLM 与新 CUDA 的兼容性、SGLang RadixAttention 在某次重构后的语义变化,都得不到本仓库的版本说明。一切版本相关问题请查对应引擎 release notes。
- 数字未在仓库内落实——README 多次出现"2×–3× 加速"等表述,但没有 benchmark 表格或可复现脚本;这部分必须依赖 outcomesblog 内文 + 你自己跑。如要把这些数字写进生产文档,建议先实测再引用,不要把博客的"2×–3×" 当事实。
- 顺序依赖强——Part 1 是 Part 2–6 的前置;如果跳过 KV cache 直接读 PagedAttention,会卡在"为什么要分页"这一步。建议至少读完 Prefill vs Decode + KV Cache 两篇再往后。
- 没有 PR 入口——这是个人教学仓库,不欢迎外部贡献,所有内容由 Amit Shekhar 单向发布。如发现错误,需要在 Issue 区反馈,由作者决定是否更新。
- 英文壁垒——README 全英文,博客正文也是英文;目前没有官方中文译本(如果需要中文一手解读,可参考仓库的姊妹项目
amitshekhariitbhu/ai-engineering-interview-questions是否含中文版——本仓库不提供)。
六、诚实标注局限性
- ⚠️ 仓库没有可运行代码——本次"上手攻略"是"阅读路径攻略"而非"代码上手攻略",所有命令仅用于 clone / 抓 README / 抽取 TOC,不能从这份仓库得到任何 SDK 调用示例。
- ⚠️ 仓库没有量化 benchmark——所有"2×–3× 加速"数字来自博客内文,未经实测验证;引用到生产文档前需自行跑对应 benchmark。
- ⚠️ outcomeschool.com 链接可能漂移——本次抓取 25 条全部 200 OK,但外链稳定性不在仓库作者控制下。
- ⚠️ 本仓库与 Outcome School 商业课程存在隐性关系——作者在 README 顶部标注"系列会持续增长"并指向 outcomeschool.com,属于个人 IP + 课程的混合体;引用时建议标注"个人教学仓库"。
七、与同类对比
| 仓库 / 资源 | 形态 | 与本仓库的关系 |
|---|---|---|
| vllm-project/vllm | 可运行推理引擎 | 互补:本仓库讲 KV cache / PagedAttention 的"原理",vLLM 是落地实现;想跑通推理 → vLLM;想理解概念 → 本仓库 |
| sgl-project/sglang | 可运行推理引擎 | 同上互补,重点在 RadixAttention 与结构化输出 |
| NVIDIA/TensorRT-LLM | NVIDIA 自家推理引擎 | 同上互补,侧重 kernel fusion + in-flight batching |
| ggerganov/llama.cpp | C++/GGUF 本地推理 | 对应 Part 4 "How does GGUF work?" 的实现 |
Hugging Face transformers generation_utils |
通用生成代码 | 不替代:本仓库 Part 1–3 大体在解释 transformers generation 内部发生了什么 |
| 学术综述(e.g. arXiv 2312.15234 / 2404.14294 等推理综述) | 论文 | 本仓库偏教学向、可读性优先;论文给数字与图 |
| Ray Summit / LMSys talk slides | 演讲 PPT | 本仓库在概念覆盖上比单场 talk 更系统,但少了实战 benchmark |
一句话定位:本仓库是 vLLM / SGLang / TensorRT-LLM / llama.cpp 四件套的入门导读,不是替代品,也不是 SDK。
八、一句话推荐结论
如果你要"装会"一个推理框架——跳过本仓库,去翻 vLLM 官方 quickstart。如果你要把"装会"建立在"理解"之上,先花 2–3 天按 6 个 Part 的顺序刷完本仓库对应的 outcomeschool.com 25 篇文章,再用 1–2 天在 vLLM / SGLang 上跑通一个最小 demo,把文中"2×–3×"之类的数字亲手验证一次。本仓库是入门导读,不是终点站。