第一章 引言与LLM时代全景¶
导读¶
本章回答三个问题:
- 什么是 LLM?什么是 AI Infra?为什么它们最近突然重要起来?
- 一份"AI 软件栈"长什么样?我们工程师处在哪一层?
- 学习这本书的合理预期是什么?
读完本章你不会立刻能"调起一个模型",但应该能看懂任何一篇 LLM 相关技术新闻中出现的名词。
1.1 从规则到学习:AI 的范式变迁¶
传统软件的本质是"工程师写规则,计算机执行":
def is_spam(email):
if "免费" in email and "点击" in email:
return True
if email.sender in BLACKLIST:
return True
return False
机器学习把这个范式反过来:给计算机一堆"邮件 + 是否垃圾"的样本,让它自己学规则。
深度学习是机器学习的子集——它用"很多层的神经网络"作为函数族。这种函数族的优势是:只要模型够大、数据够多,它能逼近几乎所有从输入到输出的复杂映射,而不需要我们手工设计特征。
LLM 是深度学习的一个特定分支——把"输入"限定为自然语言文本,把"输出"限定为"下一个 token 是什么"的预测。这个看似简单的任务,因为互联网上有海量文本可作为训练数据,加上 Transformer 架构的 scalability,最终涌现出了今天我们看到的 GPT、Claude、Llama 等模型。
1.2 AI 软件栈分层¶
工程师理解一个新领域最有效的方法之一,是先建立"分层心智模型"——把一个复杂的生态拆成几层,每层有清晰的边界。AI 软件栈可以粗略分成 5 层:
- 应用层:用户接触的产品形态——ChatGPT、Copilot、RAG 客服机器人、Agent 工作流;
- 框架层:开发者用来组装应用的库——LangChain、LlamaIndex 提供编排抽象,vLLM、SGLang 提供推理服务;
- 模型层:GPT-4、Claude、Llama-3、Qwen、DeepSeek 等权重文件,以及它们的训练/对齐方法;
- 运行时与编译层:CUDA、cuDNN、TensorRT、Triton、FlashAttention——把高层算子编译到硬件能高效执行的指令;
- 硬件层:GPU、TPU、NPU、网络(InfiniBand、RoCE)、存储。
本书覆盖 1-4 层,但视角始终从工程师出发——我们更关心"用一层时关心什么、出问题时往哪一层下钻",而不是从晶体管开始讲起。
1.3 训练 vs 推理:两条数据流¶
工程师最常被混淆的概念之一,是"训练"和"推理"。它们用的是同一份模型架构,但数据流方向、计算特性、硬件使用方式完全不同。
训练(离线):
- 数据量:TB 级语料;
- 计算特征:稠密、批量大、通信密集(多卡同步梯度);
- 算力消耗:一次预训练 = 数万 GPU·时;
- 目标:最小化 next-token 预测的 cross-entropy loss。
推理(在线):
- 数据量:单条 prompt,几 K tokens;
- 计算特征:稀疏(一次只生成一个 token)、延迟敏感、batch 动态;
- 算力消耗:单次请求 = 几十毫秒到几秒;
- 目标:在给定 SLA(如 P99 < 1s)下吞吐量最大化。
一个常见的误解:以为"训练贵是因为模型大"。其实训练贵是因为**要重复前向 + 反向 N × 数据量次**。一个 7B 模型预训练 1T tokens,相当于做了 1 万亿次前向传播——这才是成本的真实来源。
1.4 一个 LLM 应用的最小骨架¶
让我们用一个最小例子来固化概念。一个让用户能与 Llama-3-8B 对话的最小应用,工程上需要三件事:
# 1. 模型加载(一次性)
from vllm import LLM
llm = LLM(model="meta-llama/Llama-3-8B-Instruct", tensor_parallel_size=1)
# 2. 推理
prompts = ["用三句话介绍 Transformer"]
outputs = llm.generate(prompts)
# 3. 包装成 HTTP 服务
# (省略 FastAPI 代码)
看起来只有 3 行核心代码,但**真实生产环境的 LLM 应用至少要回答这些问题**:
| 问题 | 工程决策 |
|---|---|
| 同时来 100 个请求怎么办? | Batching、排队、限流 |
| 显存装不下怎么办? | 量化、TP、CPU offload |
| 用户问的不在训练数据里怎么办? | RAG、联网搜索 |
| 模型答错了怎么定位? | 评测、trace、可观测 |
| 用户问"删我账号"怎么办? | 安全过滤、Guardrails |
| 不同租户的成本怎么算? | 多租户、计费、配额 |
| 模型更新怎么不停服? | 蓝绿部署、模型路由 |
每一个问题背后都对应本书的一个章节。读完全书后,你应该能在心里把这张表填满。
1.5 AI Infra 到底是什么¶
"AI 基础设施(AI Infrastructure)"是个被滥用的词。本书采用相对窄的定义:
AI Infra = 让训练 / 推理 / 应用层高效运行的所有"非模型本身"的工程系统。
具体包括:
- 训练侧:分布式训练框架(Megatron、DeepSpeed、FSDP)、数据流水线、checkpoint 管理、监控;
- 推理侧:推理引擎(vLLM、TensorRT-LLM)、KV Cache 管理、 batching 调度、显存管理;
- 服务侧:模型路由、负载均衡、弹性伸缩、监控告警;
- 数据侧:向量数据库、特征存储、数据版本化;
- 平台侧:GPU 集群调度、网络拓扑、存储分层。
可以看到,AI Infra 本质上仍是分布式系统工程师熟悉的那套问题——只是工作负载从 web 服务变成了"显存密集 + 通信密集"的模型计算。这是为什么这个领域现在被大量传统后端/系统工程师进入。
1.6 学习路径建议¶
如果你是工程师刚进入这个领域,推荐路径:
- 第一周:建立词汇表(读完本书前 6 章);
- 第二周:跑通一次完整的"加载模型 → 推理 → 部署"链路(用 vLLM + 一个 8B 开源模型);
- 第三周:跑通一次完整 RAG 流程(用 LangChain + 向量库 + 一个 embedding 模型);
- 第四周:选定细分方向深入(推理优化 / Agent / 评测 / 训练)。
不要从零写一个 Transformer——除非你已经在做研究。工程师的判断力来自"用过、调过、踩过坑",而非"复现过论文"。
工程实战要点¶
- 不要被术语吓到:90% 的 LLM 名词背后是经典分布式系统概念换皮("PagedAttention" = "虚拟内存分页","Continuous Batching" = "动态批处理");
- 先看显存再看算力:90% 的部署问题是显存不够,不是算力不够;
- 延迟 vs 吞吐是核心权衡:单用户低延迟 vs 多用户高吞吐,必须先选;
- 不要过早优化:先用 vLLM 默认配置跑通,再针对瓶颈优化。
小结¶
- LLM = 用深度学习做 next-token 预测,因海量数据 + Transformer scaling 涌现出能力;
- AI 软件栈分 5 层:应用 / 框架 / 模型 / 运行时 / 硬件;
- 训练与推理是两条数据流,特性完全不同;
- AI Infra = 模型之外的所有工程系统,本质是分布式系统问题;
- 学习路径:先建词汇表 → 跑通最小链路 → 选细分方向。
练习题¶
- 用一句话解释为什么"训练 7B 模型比推理 7B 模型贵"——核心是什么?
- 列出 AI 软件栈的 5 层,并各举一个具体产品 / 项目作为例子。
- 解释"为什么 PagedAttention 是 OS 虚拟内存概念在 KV Cache 上的复用"。
- 一个 8B 模型在 fp16 下权重大约占多少显存?写出计算过程。
- 你公司想做一个客服机器人,应该选训练一个新模型还是基于开源模型微调?为什么?
- 解释"Continuous Batching"相对于"Static Batching"为什么能提升 GPU 利用率。
- 一个用户问"今天的天气",模型答非所问。从 AI 软件栈 5 层的视角,可能的问题点各是什么?
- 列出 3 个你认为工程师进入 LLM 领域最容易踩的认知陷阱。
下一章:第二章 深度学习基础