Chapter 01 · 认识推理引擎与学习地图
如果你一上来就去看某个框架的安装命令,通常会很快陷入“命令会跑,但不知道为什么这么跑”的状态。本章的任务,就是先把地图摊开:什么是模型,什么是推理引擎,什么是服务系统,为什么后面要先学推理链路,再学硬件与显存,再学调度和优化,最后再落到框架、压测和源码。
如果你一上来就去看某个框架的安装命令,通常会很快陷入“命令会跑,但不知道为什么这么跑”的状态。本章的任务,就是先把地图摊开:什么是模型,什么是推理引擎,什么是服务系统,为什么后面要先学推理链路,再学硬件与显存,再学调度和优化,最后再落到框架、压测和源码。
这一章不是在讲“一个具体技术点”,而是在给后面所有章节定坐标系。你要先知道自己在学什么、为什么按这个顺序学,以及什么样的问题才属于推理引擎范畴。
推理引擎究竟是模型、服务框架、部署工具中的哪一层?它到底接住了哪些工程问题?
至少能把模型、推理后端、服务层、部署层分开说清楚,并说明为什么吞吐、延迟、显存和并发是核心指标。
先看地图,再记术语;先记边界,再进细节。不要把这一章当成“概念绪论”轻轻翻过,它决定你后面怎么看问题。
很多人第一次接触大模型系统,会把一切都混成“模型服务”。但工程上这并不准确。模型定义的是参数、结构和推理能力;推理引擎关心的是如何把请求组织起来,怎样让模型在硬件上高效执行;服务层又关心接口暴露、鉴权、限流、日志与监控。它们彼此相关,但不是同一层问题。
你可以把模型看成“要被执行的核心资产”,把推理引擎看成“把模型高效跑起来的执行系统”,再把服务层看成“把执行系统包装成可被业务调用的产品接口”。一旦你把这三层分开,后续很多概念就会自然归位:为什么显存问题是引擎问题,为什么压测是服务问题,为什么参数量和上下文长度会共同影响系统表现。
如果你不先做这层拆分,后面一遇到“响应变慢”“显存爆了”“吞吐上不去”就很难判断问题究竟出在模型能力、引擎调度、缓存管理,还是接口层和流量组织。
从外部看,一个用户只是在发请求、收回复;但从系统内部看,至少包含五个层次:客户端或调用方、服务入口层、请求编排与调度层、模型执行后端、以及日志监控与资源管理层。真正的大模型推理问题,往往发生在中间三层,而不是最表面的“接口能不能返回”。
这也是为什么“启动成功”远远不等于“系统设计正确”。启动只是证明你连到了模型,真正的工程能力来自能否把请求流、资源使用和性能目标串起来理解。
新手最容易把“快”理解成一个单一指标。但在线推理场景至少同时关心四件事:首 token 延迟、总延迟、吞吐和资源占用。对话产品通常特别在乎“用户多久看到第一个字”,批量任务更在乎单位时间能跑多少 token,平台团队还会关心同样预算下能不能承载更多并发。
这些指标之间并不是天然一致的。为了吞吐做大 batch,可能会抬高等待时间;为了极低延迟减少队列等待,可能牺牲资源利用率;为了省显存启用更激进的量化,可能影响兼容性和精度。你后面看到的每一个引擎优化,最终都在这些目标之间做取舍。
当你听到别人说“某个引擎更快”,第一反应应该不是接受这个结论,而是追问:在什么负载下、用什么指标衡量、为了什么目标做快。
先学链路,是为了知道请求到底怎么流动;再学硬件、显存和缓存,是为了知道成本从哪来;再学调度、batch 和量化,是为了知道系统如何优化;最后再回到具体框架、部署和源码,是为了把抽象认知落地。如果你把顺序倒过来,通常会出现两种情况:命令会跑但问题看不懂,或者名词会背但系统不会分析。
这也是本网站设计成 4 个阶段、8 个章节的原因。它不是为了“显得完整”,而是为了逼你按系统逻辑而不是按热度标签学习。
初学者最容易把 token、batch、QPS、显存、采样参数、容器配置混着记,因为它们都出现在“大模型系统”里。但这些词分别属于输入表达、引擎执行、服务指标、硬件资源和部署运维层。如果你不按层分类,后面碰到问题时就只能“全都看一遍”,没有排查顺序。
更有效的记忆方法是先问这个词在回答什么问题:是在描述模型看到的单位,还是在描述请求如何被组织,还是在描述系统如何被观测。这样术语表不是词典,而是一张问题地图。
用户通常只会描述现象,例如“今天回复慢了”“一长段资料贴进去就卡住”“有时第一句很慢但后面很快”。工程师的工作,是把这些表面现象翻译成系统语言:首 token 延迟上升、prefill 压力变大、长上下文导致缓存和显存压力提升、队列等待变长。
这层翻译能力,就是你学习推理引擎最核心的收益之一。它决定你以后是只能复述框架特性,还是能真正分析一个线上系统发生了什么。
遇到任何“推理服务有问题”的描述,第一步不是改参数,而是先判断问题更像模型层、引擎层、服务层还是部署层。
任何“更快”的结论都要追问衡量指标,否则很容易拿吞吐优化去误伤交互体验。
先理解请求链路和问题边界,再学习硬件与优化,最后再看具体框架,这样你学到的是方法,不是命令集合。
这类问题不能直接说“模型变差了”。更合理的第一判断是:首 token latency 是否上升,最近是否引入更长系统提示词、RAG 拼接内容或新的排队等待。
如果这是离线或准离线任务,系统往往更关心单位时间能处理多少 token、多少文档,而不是单个请求最先返回的那一刻。
先把四层边界放到一张图里。你后面碰到任何问题,都可以先问它更像落在哪一层。
这张图的重点不是层数本身,而是提醒你:能力、执行、服务和运行环境不是同一个问题域。
| 对象 | 它主要解决什么 | 你在学习时要关注什么 |
|---|---|---|
| 模型 | 参数、结构、能力边界、输出质量 | 它会不会回答、回答能力到哪 |
| 推理引擎 | 请求调度、batch、KV Cache、采样、执行效率 | 它怎样把模型高效地跑在硬件上 |
| 服务框架 | 接口暴露、协议兼容、鉴权、运维接入 | 它怎样让外部系统稳定调用推理能力 |
| 部署平台 | 容器、节点、资源调度、监控、扩缩容 | 它怎样把服务放到真实环境并持续运行 |
以后你看到任何“推理系统问题”,先判断它属于模型层、引擎层、服务层还是部署层,再决定去哪里找答案。
不要先背框架命令,先记住边界和目标。理解“系统为谁优化”比记“系统支持什么参数”更值钱。
把客户端、服务入口、推理引擎、执行后端、监控五层画出来,并给每层写一句职责说明。最低完成标准是:你自己能对着图讲清楚每层边界。
把 token、context、latency、throughput、batch、KV Cache、scheduler 分成“输入、执行、输出、资源、调度”几类。最低完成标准是:任意一个词你都能说出它更接近哪类问题。
例如聊天产品、批量摘要服务、RAG 问答服务。最低完成标准是:你能写出它更在乎首 token、总延迟还是吞吐,并解释原因。
要求面对有工程背景但没学过 LLM 的同学也能看懂。最低完成标准是:里面要同时提到“请求组织”“模型执行”和“性能目标”。
一张最小推理系统结构图。
一份你自己的核心术语表。
一段你能复述给别人听的“什么是推理引擎”解释。
如果你只能回答“它们都和推理有关”,说明边界还没有真正建立起来。
尝试补全它:在什么负载下、用什么指标衡量、为谁变快。
如果你能把原因和“问题定位能力”联系起来,说明你理解到位了。
如果两者你总是分不开,后面学习会反复混淆。
适合先建立“高吞吐推理引擎”长什么样的第一印象。
适合先了解 NVIDIA 路线如何组织推理优化、部署和 API。
帮助你理解“推理系统论文”关注的不是模型能力,而是服务效率和缓存管理。
把文档和真实工程代码对应起来,后面读调度、缓存和 serving 路径会用到。
适合作为“厂商路线如何组织推理栈”的对照样本。
适合后面从服务编排和高性能推理框架角度对比不同路线。
适合用来观察“轻量、本地、跨硬件”路线与数据中心 GPU 路线的差异。
这样会低估调度、缓存、采样和资源管理的重要性,后面遇到性能问题就只会从接口参数里找答案。
部署只是开始,真正的工程能力来自你能解释为什么某种流量、上下文长度和并发模式会改变系统表现。
这样学出来的信息很碎,换一个框架名词就容易失去判断力。
现在你已经知道自己在学哪一层系统了。下一章会把“推理系统”这个抽象概念落回一次真实请求:文本如何变成 token,prefill 和 decode 各自做什么,为什么输出阶段不是“一次算完”,而是一轮轮向前推进。