跳转至

大模型推理系统:从原理到实现

AI Infra 知识体系教材 —— Theory ↔ Practice 双主线,以 mini-runtime 验证理论,以理论指导代码阅读。

本书不是一本传统的教材,而是一套长期维护、持续迭代的 AI Infra 知识体系。每一章都遵循统一的七段结构:动机 → 理论 → 工业实现 → mini-runtime 实现 → 性能分析 → 演进 → 总结,形成"理论建立知识地图、实践验证理论"的闭环。

知识地图

flowchart TD
    subgraph P1["第 1 部分 · 基础"]
        T[Transformer] --> G[GPU Architecture]
        G --> C[CUDA Basics]
        C --> PT[PyTorch Runtime]
        PT --> IP[LLM Inference Pipeline]
    end

    subgraph P2["第 2 部分 · 运行时架构"]
        E[Engine] --> S[Scheduler]
        S --> CB[Continuous Batching]
        CB --> CP[Chunked Prefill]
        S --> RL[Request Lifecycle]
    end

    subgraph P3["第 3 部分 · 内存系统"]
        KC[KV Cache] --> PK[Paged KV Cache]
        PK --> PC[Prefix Cache]
        PK --> MP[Memory Pool]
        MP --> CM[CUDA Memory Management]
    end

    subgraph P4["第 4 部分 · CUDA Kernel"]
        GE[GEMM] --> LN[LayerNorm / RMSNorm]
        LN --> RP[RoPE]
        RP --> FA[FlashAttention]
        FA --> CG[CUDA Graph]
    end

    subgraph P5["第 5 部分 · 并行"]
        TP[Tensor Parallel] --> PP[Pipeline Parallel]
        PP --> EP[Expert Parallel]
        EP --> SP[Sequence Parallel]
        SP --> DP[Data Parallel]
    end

    subgraph P6["第 6 部分 · 分布式运行时"]
        NC[NCCL] --> RD[RDMA / InfiniBand]
        RD --> RY[Ray]
        RY --> MN[Multi-node Serving]
    end

    subgraph P7["第 7 部分 · 性能工程"]
        PF[Profiling] --> NS[Nsight]
        NS --> RF[Roofline Model]
        RF --> KO[Kernel Optimization]
        KO --> OF[Operator Fusion]
    end

    subgraph P8["第 8 部分 · 工业系统"]
        V[vLLM] --> TR[TensorRT-LLM]
        TR --> SG[SGLang]
        SG --> DE[DeepEP]
        DE --> DS[DeepSpeed-Inference]
        DS --> LC[llama.cpp]
    end

    P1 --> P2 --> P3 --> P4
    P2 --> P5 --> P6
    P3 --> P7
    P2 --> P7
    P7 --> P8
    P4 --> P7

如何使用本书

路径一:从零构建(推荐通读)

按第 1 → 8 部分顺序阅读。每一章的理论部分建立知识地图,mini-runtime 实现部分作为理论验证,最终读者应当能够独立设计、实现、优化一个工业级 LLM Runtime

路径二:问题驱动

带着工程问题跳读:

想解决的问题 推荐章节
显存不够放 KV Cache 第 12 章 Paged KV Cache第 13 章 Prefix Cache
服务吞吐上不去 第 8 章 Continuous Batching第 9 章 Chunked Prefill
首 token 延迟高 第 5 章 Inference Pipeline第 20 章 FlashAttention
单卡装不下模型 第 5 部分 · 并行
想知道为什么慢 第 7 部分 · 性能工程
想对比工业框架 第 8 部分 · 工业系统

代码验证

本书以仓库中的 mini-runtime 作为实践主线。阅读本书时请保持仓库在本地:

git clone git@github.com:KIOSHIROI/mini-runtime.git
PYTHONPATH=. python tests/test_offset.py   # 运行 CPU 测试
PYTHONPATH=. python benchmarks/scenarios/baseline.py  # 运行基准

每章第 4 节均给出 Theory → Code 对应表,指出理论机制与 mini_runtime/ 源码的映射关系。

全书核心问题

贯穿全书,我们反复回答四个问题:

  1. 为什么慢? —— GPU 利用率、内存带宽、kernel launch、碎片化……(第 7 部分
  2. 如何利用 GPU? —— 并行、批处理、算子融合……(第 2、4、5 部分
  3. 显存从哪来、到哪去? —— KV Cache、页式管理、前缀共享……(第 3 部分
  4. 工业界怎么做? —— 从 vLLM 到 TensorRT-LLM 的工程取舍……(第 8 部分

读者前置要求

本书默认读者具备:Python 基础、基本的深度学习概念(前向/反向传播、注意力机制)、 线性代数与概率论基础。不要求 CUDA 或系统编程经验——这些会在书中逐步建立。