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 项,含本仓库风险与配套风险)

  1. 仓库 ≠ 文章——README 是目录,正文在 outcomeschool.com 外链;外链失效(博主改名 / 文章下架 / 域名过期)= 文章丢失的唯一途径。2026-09-29 抓取时所有 25 个外链均可访问,但作者本人有权随时下线。
  2. 无版本号——博客按主题写,不按软件版本对齐;vLLM 0.x / 1.x 的行为差异、TensorRT-LLM 与新 CUDA 的兼容性、SGLang RadixAttention 在某次重构后的语义变化,都得不到本仓库的版本说明。一切版本相关问题请查对应引擎 release notes。
  3. 数字未在仓库内落实——README 多次出现"2×–3× 加速"等表述,但没有 benchmark 表格或可复现脚本;这部分必须依赖 outcomesblog 内文 + 你自己跑。如要把这些数字写进生产文档,建议先实测再引用,不要把博客的"2×–3×" 当事实。
  4. 顺序依赖强——Part 1 是 Part 2–6 的前置;如果跳过 KV cache 直接读 PagedAttention,会卡在"为什么要分页"这一步。建议至少读完 Prefill vs Decode + KV Cache 两篇再往后。
  5. 没有 PR 入口——这是个人教学仓库,不欢迎外部贡献,所有内容由 Amit Shekhar 单向发布。如发现错误,需要在 Issue 区反馈,由作者决定是否更新。
  6. 英文壁垒——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×"之类的数字亲手验证一次。本仓库是入门导读,不是终点站。