Skip to content

总体架构解剖

本页速览 一个生产级 LLM 推理系统的完整骨架:应用、编排、引擎、算子、模型、硬件六层。本文是本站的内容地图,每一层指向对应的深入文章,读完它你就拥有推理工程的全局视角。

总体架构解剖

一个"推理系统"到底由什么组成?多数初学者的想象是"加载模型、跑 forward",但真实的生产级 LLM 服务远不止于此。本文把一套完整的推理系统拆成六层,每层一句话讲清"干什么、为什么、坑在哪",并链接到全站对应页面。这一页是全站的地图——读完它,你对整个领域的骨架就有了。

一、全景图

text
┌─────────────────────────────────────────────────────────────────────┐
│ ⑥ 应用层   │ API 网关 · 流式 · Function Calling · RAG · Agent       │
│            │ 用户与模型的边界:把 token 流变成产品体验              │
├────────────┼──────────────────────────────────────────────────────┤
│ ⑤ 编排层   │ 请求调度 · Batching · 路由 · 多模型路由 · 缓存        │
│            │ 多请求与多模型的调度器:让 GPU 喂饱、让请求各走各路    │
├────────────┼──────────────────────────────────────────────────────┤
│ ④ 引擎层   │ vLLM · TensorRT-LLM · SGLang · TGI · Triton · llama.cpp│
│            │ 把模型权重变成可调用的服务:执行 forward、管 KV cache  │
├────────────┼──────────────────────────────────────────────────────┤
│ ③ 算子层   │ FlashAttention · FlashInfer · 算子融合 · 自定义核     │
│            │ 单算子的极致优化:把访存与算力的差距压平               │
├────────────┼──────────────────────────────────────────────────────┤
│ ② 模型层   │ 量化 · 剪枝 · 蒸馏 · 稀疏化                           │
│            │ 把模型本身变小:降显存、降访存、提算力密度             │
├────────────┼──────────────────────────────────────────────────────┤
│ ① 硬件层   │ GPU (H100/A100/L40) · NPU (昇腾/ANE) · CPU (AMX/AVX)   │
│            │ 物理算力与带宽:一切优化的天花板                       │
└────────────┴──────────────────────────────────────────────────────┘
        ▲ 越上层越接近用户、越偏工程;越下层越接近硬件、越偏算法 ▼

六层不是孤立的——上层依赖下层的能力,下层通过上层变现。一个真实的生产 LLM 服务(如 ChatGPT、Claude API)通常是六层全部叠加优化的结果。下面逐一解剖。

二、六层解剖

① 硬件层:物理算力与带宽

一切优化的天花板。推理硬件分三大类:

  • GPU:LLM 推理的事实标准。NVIDIA H100(80GB HBM3、2TB/s 带宽、FP8 Tensor Core)、A100(80GB HBM2e、1.5TB/s)、L40/L40S(48GB,性价比卡)、消费级 RTX 4090(24GB,社区部署常用)。详见GPU 优化硬件入门
  • NPU:国产化与端侧场景的替代。华为昇腾 910B、Apple Neural Engine(M 系列芯片)、寒武纪 MLU 等,对推理友好但对训练支持弱。
  • CPU:边缘部署与极端低成本场景。Intel AMX(Sapphire Rapids 起)、AVX-512/VNNI,配合 OpenVINOllama.cpp 可在服务器 CPU 上跑 7B 模型。

为什么硬件层是优化的天花板

任何上层优化都受限于硬件的物理参数。LLM 推理最关键的两个硬件指标:HBM 带宽(决定 decode 阶段 token/s 上限)和显存容量(决定能装多大模型、多少 KV cache)。A100 80GB 带宽 1.5TB/s,单请求跑 Llama-2-70B FP16 的 token/s 上限约 1.5TB/s ÷ 140GB ≈ 10.7 tokens/s——这就是为什么单请求 LLM 推理的"快"不能靠优化算力,只能靠降显存(量化)或抬并发(batching)。详见访存与带宽Roofline 模型

② 模型层:把模型变小

模型层优化不改变推理引擎,只改变模型本身。三大手段:

  • 量化(Quantization):FP16 → INT8/INT4/FP8,降显存 + 降访存 + 提算力,是性价比最高的优化。LLM 主流量化方案见模型量化基础权重 only 与混合精度
  • 剪枝(Pruning):去掉不重要的权重/通道/头。结构化剪枝(去整行整列)能真省算力,非结构化需要稀疏核支持,LLM 上工程化难度大。详见剪枝
  • 蒸馏(Distillation):用大模型教小模型,让小模型逼近大模型质量。对 LLM 而言蒸馏成本高,但在分类/检索等任务上仍是重要手段。详见知识蒸馏

模型层是上层引擎能否跑得动的先决条件——70B 模型不量化到 INT4,单卡 80GB A100 装不下;而装不下就要走张量并行,复杂度立即上升一个量级。

③ 算子层:把单算子写快

算子层是"针对单个最热算子写优化 kernel",是推理工程的技术深水区。

  • FlashAttention-2/3:把 attention 的中间 QK^T 矩阵分块到 SRAM 计算,避免 HBM 来回读写——单算子 2-4x 加速,是 LLM 推理的绝对标配。详见算子融合
  • FlashInfer:UC Berkeley 出的算子库,统一 prefill/decode 的 attention 实现,被 vLLM/SGLang/TensorRT-LLM 大量采用。
  • 手写 CUDA/Triton kernelvLLMSGLang 的核心竞争力之一就是自家特制的 attention/rmsnorm/rope kernel。

算子层的关键判断:当 GPU 利用率 < 30% 时,瓶颈在算子,需要手写核;当 GPU 利用率 > 60% 时,瓶颈在调度,需要靠 batching。这个判断决定了你应该优化哪一层。

④ 引擎层:把权重变成服务

引擎层是推理工程师日常打交道最多的一层——它把"模型权重 + 硬件 + 算子 + 调度"打包成一个可调用的服务。

引擎主场强项弱项
vLLM开源 LLM 服务PagedAttention、continuous batching、易用算子极致性不如 TensorRT-LLM
TensorRT-LLMNVIDIA 闭源极致H100 上最快、FP8/FP4 支持最好部署复杂、社区小
SGLang结构化生成、AgentRadixAttention(前缀共享)、compressed FSM通用对话场景优势小
TGIHuggingFace 生态与 HF 模型库无缝性能略逊 vLLM
Triton Server多模型多框架多模型管理、企业级对 LLM 优化不如专用引擎
llama.cppCPU/边缘极致跨平台、量化好大流量场景性能不足
ONNX Runtime非 LLM 模型跨硬件、生态成熟LLM 支持弱
OpenVINOIntel 硬件CPU/iGPU 优化好仅 Intel 生态

引擎选型的核心逻辑见引擎对比。一句话总结:NVIDIA GPU + 大流量 → vLLM/TensorRT-LLM;CPU/边缘 → llama.cpp/OpenVINO;多模型混合 → Triton Server

⑤ 编排层:把多请求喂饱

编排层是 LLM 推理工程化的核心创新层,也是 2023 年后推理工程师最关心的层。

  • Continuous batching:让长短不一的请求动态加入和退出 batch,把 GPU 利用率从 <5%(单请求 decode)拉到 60%+。详见批处理与调度
  • KV cache 管理:PagedAttention 把 KV cache 分页,消除碎片,把并发数从个位数拉到几十。详见vLLM 案例
  • 请求路由:简单请求走小模型、复杂请求走大模型,整体成本下降 50%+。详见模型服务
  • 投机解码:用草稿头先猜几个 token、大模型并行验证,2-6x 加速且不改输出分布。详见投机解码案例
  • 多模型路由:A/B 测试、金丝雀发布、按流量切流。

编排层的价值在于:在不改变模型权重、不更换硬件的前提下,把吞吐提升 10-100 倍。这是 vLLMSGLang 的核心竞争力所在。

⑥ 应用层:把 token 流变成产品

应用层是用户与模型的边界,决定了推理系统的产品形态:

  • API 网关:鉴权、限流、计费、日志——把推理引擎包装成稳定 API。
  • 流式输出:SSE/WebSocket 让用户看到 token 一个个出来,首 token 延迟(TTFT)比末 token 延迟更重要。详见延迟与吞吐
  • Function Calling / Tool Use:模型生成结构化调用,应用层执行后回填——这要求引擎支持结构化输出加速(如 SGLang 的 compressed FSM)。
  • RAG(检索增强生成):检索 → 拼 prompt → 推理,prompt 前缀可被 RadixAttention 共享缓存,详见vLLM/SGLang
  • Agent:多轮推理 + 工具调用 + 循环,对推理引擎的延迟与并发提出新要求。

应用层决定了优化的方向:流式场景优先 TTFT;批处理场景优先总吞吐;Agent 场景优先前缀共享与并发数。脱离应用形态谈"哪个引擎最快"是耍流氓。

三、六层的权重与岗位画像

不同岗位在这六层上的精力分布差别很大,直接对应求职与 JD 分析的岗位版图:

推理工程师算法工程师基础设施工程师应用工程师
⑥ 应用层★★★★★★★★★
⑤ 编排层★★★★★★★★★★★★★
④ 引擎层★★★★★★★★★★★★
③ 算子层★★★★★★★★★★
② 模型层★★★★★★★★★
① 硬件层★★★★★★★★★★★

给入门者的建议:⑤ 和 ④ 是推理工程师的"主战场"——⑤ 决定吞吐上限、④ 决定单请求延迟下限。② 是算法背景强的人最易上手的入口(量化/剪枝),③ 是硬核系统工程师的护城河,① 是基础设施工程师的加分项。按学习路径的三条路线对号入座。

四、贯穿全站的四个视角

这一页怎么用

  • 想快速建立全局观:通读本文即可;
  • 想深入某一层:点链接进对应页面;
  • 想动手:直接去从零构建推理服务,对照本文六层看 demo 覆盖了哪些、缺了哪些——缺的正是你该补的。

五、一张总图:六层叠加的真实生产栈

把今天一个典型的 Llama-3-70B 生产服务(vLLM on H100)摆开看,六层叠加是这样的:

text
应用层:   OpenAI 兼容 API + 流式 SSE + Function Calling
编排层:   vLLM continuous batching + PagedAttention + EAGLE-3 投机解码
引擎层:   vLLM 0.6+ (含 RadixAttention 前缀共享)
算子层:   FlashAttention-3 + FlashInfer + RMSNorm/RoPE 融合核
模型层:   AWQ INT4 权重量化 + FP16 激活 (混合精度)
硬件层:   8×H100 80GB + NVLink + IB

这套组合在 Llama-3-70B 上单节点聚合吞吐可达 5000-10000 tokens/s——相比 HuggingFace Transformers 单请求 ~20 tokens/s,约 250-500 倍提升,且模型权重一字未改。这就是六层叠加的威力,也是推理工程作为独立学科存在的理由。

延伸阅读

参考资料