跳转至

第一章 引言与LLM时代全景

导读

本章回答三个问题:

  1. 什么是 LLM?什么是 AI Infra?为什么它们最近突然重要起来?
  2. 一份"AI 软件栈"长什么样?我们工程师处在哪一层?
  3. 学习这本书的合理预期是什么?

读完本章你不会立刻能"调起一个模型",但应该能看懂任何一篇 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

机器学习把这个范式反过来:给计算机一堆"邮件 + 是否垃圾"的样本,让它自己学规则

model.fit(emails, labels)        # 学
model.predict(new_email)         # 用

深度学习是机器学习的子集——它用"很多层的神经网络"作为函数族。这种函数族的优势是:只要模型够大、数据够多,它能逼近几乎所有从输入到输出的复杂映射,而不需要我们手工设计特征。

LLM 是深度学习的一个特定分支——把"输入"限定为自然语言文本,把"输出"限定为"下一个 token 是什么"的预测。这个看似简单的任务,因为互联网上有海量文本可作为训练数据,加上 Transformer 架构的 scalability,最终涌现出了今天我们看到的 GPT、Claude、Llama 等模型。

1.2 AI 软件栈分层

工程师理解一个新领域最有效的方法之一,是先建立"分层心智模型"——把一个复杂的生态拆成几层,每层有清晰的边界。AI 软件栈可以粗略分成 5 层:

AI 软件栈分层

  • 应用层:用户接触的产品形态——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 推理:两条数据流

工程师最常被混淆的概念之一,是"训练"和"推理"。它们用的是同一份模型架构,但数据流方向、计算特性、硬件使用方式完全不同。

训练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 学习路径建议

如果你是工程师刚进入这个领域,推荐路径:

  1. 第一周:建立词汇表(读完本书前 6 章);
  2. 第二周:跑通一次完整的"加载模型 → 推理 → 部署"链路(用 vLLM + 一个 8B 开源模型);
  3. 第三周:跑通一次完整 RAG 流程(用 LangChain + 向量库 + 一个 embedding 模型);
  4. 第四周:选定细分方向深入(推理优化 / Agent / 评测 / 训练)。

不要从零写一个 Transformer——除非你已经在做研究。工程师的判断力来自"用过、调过、踩过坑",而非"复现过论文"。

工程实战要点

  • 不要被术语吓到:90% 的 LLM 名词背后是经典分布式系统概念换皮("PagedAttention" = "虚拟内存分页","Continuous Batching" = "动态批处理");
  • 先看显存再看算力:90% 的部署问题是显存不够,不是算力不够;
  • 延迟 vs 吞吐是核心权衡:单用户低延迟 vs 多用户高吞吐,必须先选;
  • 不要过早优化:先用 vLLM 默认配置跑通,再针对瓶颈优化。

小结

  • LLM = 用深度学习做 next-token 预测,因海量数据 + Transformer scaling 涌现出能力;
  • AI 软件栈分 5 层:应用 / 框架 / 模型 / 运行时 / 硬件;
  • 训练与推理是两条数据流,特性完全不同;
  • AI Infra = 模型之外的所有工程系统,本质是分布式系统问题;
  • 学习路径:先建词汇表 → 跑通最小链路 → 选细分方向。

练习题

  1. 用一句话解释为什么"训练 7B 模型比推理 7B 模型贵"——核心是什么?
  2. 列出 AI 软件栈的 5 层,并各举一个具体产品 / 项目作为例子。
  3. 解释"为什么 PagedAttention 是 OS 虚拟内存概念在 KV Cache 上的复用"。
  4. 一个 8B 模型在 fp16 下权重大约占多少显存?写出计算过程。
  5. 你公司想做一个客服机器人,应该选训练一个新模型还是基于开源模型微调?为什么?
  6. 解释"Continuous Batching"相对于"Static Batching"为什么能提升 GPU 利用率。
  7. 一个用户问"今天的天气",模型答非所问。从 AI 软件栈 5 层的视角,可能的问题点各是什么?
  8. 列出 3 个你认为工程师进入 LLM 领域最容易踩的认知陷阱。

下一章:第二章 深度学习基础