AI 系统架构

AI 系统看起来很复杂,但核心可以压缩成三句话:

  1. 尽量少搬数据:很多时候不是算不动,而是数据搬运太慢。
  2. 尽量提高有效计算密度:让硬件更多时间在做有价值的乘加计算。
  3. 尽量重叠计算与通信:训练和推理都要避免"设备空等"。

换句话说,AI 性能问题本质上是 计算(Compute)+ 访存(Memory)+ 通信(Communication) 的协同问题。

1. AI 系统栈

层级 主要职责 典型问题 常见关键词
L7 AI 应用层 提供用户可见功能 回答是否准确、体验是否流畅 Chat、Copilot、推荐
L6 业务编排层 把业务逻辑组织成可执行流程 如何用最少 token 获得最好结果 Prompt、RAG、Agent
L5 模型服务层 把模型能力稳定对外提供 如何高可用、可扩展、可治理 网关、限流、灰度、A/B
L4 推理引擎层 把请求高效变成 token 输出 如何降 TTFT/TPOT、提并发 Batch、KV Cache、PagedAttention
L3 训练框架层 训练与微调模型 如何在多卡多机稳定收敛 Autograd、DDP/FSDP、计算图
L2 编译运行时层 把模型算子变成高效程序 如何逼近硬件峰值性能 IR、Fusion、Tiling、CUDA
L1 硬件系统层 提供真实算力与带宽 算力/带宽/通信瓶颈在哪里 Tensor Core、HBM、NVLink

2. AI 硬件与体系结构:算力的物理根基

2.1 CPU、GPU、ASIC 的职责划分

  • CPU(中央处理器):通用控制能力强,擅长复杂分支和系统调度。
  • GPU(图形处理器):并行吞吐高,擅长大规模矩阵乘法。
  • ASIC(专用芯片):针对 AI 运算固化电路(如 TPU/NPU),能效高但通用性低。

类比:

  • CPU 像"总指挥 + 少量专家"。
  • GPU 像"超大规模流水线工人"。
  • ASIC 像"只做某几类工序但极快的专机"。

2.2 GPU 的执行单位:SIMT、Warp、Block

  • SIMT(Single Instruction Multiple Threads):同一程序由大量线程并发执行。
  • Warp:GPU 调度基本单位(NVIDIA 常见 32 线程)。
  • Thread Block(线程块):多个 warp 组成,可共享片上内存。

关键性能点:

  1. Warp Divergence(分支发散):同一 warp 走不同分支会串行执行,吞吐下降。
  2. Coalesced Access(内存合并访问):连续地址访问可减少内存事务。
  3. Occupancy(占用率):同时驻留 SM 的线程比例;不是越高越好,要平衡寄存器压力。

2.3 内存层级决定"真实速度"

从快到慢大致是:

  1. Register(寄存器)
  2. Shared Memory / SRAM(共享内存/片上存储)
  3. L2 Cache
  4. HBM(高带宽显存)
  5. Host Memory(主机内存)
  6. Remote Memory(远端节点)

高性能 kernel 的共同目标:尽量让热点数据停留在更靠近计算单元的层级

2.4 互联与通信:单机多卡到多机集群

  • PCIe:通用互联,带宽相对有限。
  • NVLink/NVSwitch:GPU 间高带宽低延迟互联。
  • InfiniBand + RDMA:多机高性能网络。

训练常见通信原语:

  • All-Reduce:聚合并广播(常用于梯度同步)。
  • All-Gather:把各卡分片收集到每卡。
  • Reduce-Scatter:先归约再分发(常与 All-Gather 配合)。

3. AI 编译与计算架构:模型代码如何变成硬件指令

3.1 为什么需要 AI 编译器

如果每个框架都手写每种芯片的底层代码,会形成 N 框架 × M 硬件 组合爆炸。AI 编译器通过中间表示把问题变成:

前端框架 -> IR(中间表示) -> 后端硬件

代表系统:TVM、XLA、TensorRT、MLIR 生态

3.2 多级 IR(Intermediate Representation,中间表示)

常见分层:

  1. High-level IR(高层图 IR):表达算子依赖关系,便于图级优化。
  2. Tensor/Loop IR(张量或循环 IR):表达循环、访存、布局,便于调度优化。
  3. Low-level IR(低层 IR):接近目标指令(如 PTX、LLVM IR)。

3.3 前端优化(硬件无关)

  • Constant Folding(常量折叠):编译期算掉常量表达式。
  • Dead Code Elimination(死代码消除):删掉无用分支。
  • Operator Fusion(算子融合):合并多个小算子,减少中间读写。
  • Shape Inference(形状推导):提前推断维度,减少运行期开销。

例子:

MatMul -> Add -> GELU 三个 kernel 可以融合为一个 fused kernel,减少两次中间张量落地。

3.4 后端优化(硬件相关)

  • Tiling(分块):把大矩阵切小块,提升缓存命中。
  • Vectorization(向量化):一条指令并行处理多个元素。
  • Unrolling(循环展开):减少分支跳转和调度开销。
  • Double Buffering(双缓冲):计算当前块时预取下一块,隐藏访存延迟。
  • Auto-Tuning(自动调优):自动搜索 block size、tile size、pipeline 深度。

3.5 CUDA 编程模型(理解"手写 kernel 为何快")

CUDA 核心概念:

  • Grid(网格):一次 kernel launch 的全体线程块集合。
  • Block(线程块):可共享 shared memory 的线程组。
  • Thread(线程):最小执行单元。

手写 kernel 价值高的场景:

  1. 小算子链可融合。
  2. 特殊 shape(如超长序列)导致通用库不最优。
  3. 延迟极其敏感链路(在线推理)。

4. AI 框架核心模块:训练引擎的心脏

4.1 Tensor 与计算图

  • Tensor(张量) :带 shape/dtype/layout/device/stride 的多维数组。
  • Computational Graph(计算图):节点是算子,边是张量依赖关系。
  • DAG(有向无环图):计算图通常是 DAG,保证依赖可拓扑排序。

动态图与静态图:

  • Dynamic Graph(动态图):边执行边建图,调试灵活(如 PyTorch eager)。
  • Static Graph(静态图):先建图再编译执行,优化空间大(如 XLA 图模式)。

现代方向:动静结合(开发用动态图,部署时图编译)。

4.2 Autograd(自动微分)到底在做什么

自动微分不是数值差分,也不是纯符号求导,它是"程序级链式法则"。

简化例子:

  • 前向:y = (w*x + b)^2
  • 反向:框架自动记录依赖并计算
    • dy/dw = 2*(w*x+b)*x
    • dy/db = 2*(w*x+b)

你只写 loss.backward(),框架完成拓扑回溯和梯度累加。

关键工程点:

  1. Activation Checkpointing(激活重计算):省显存,代价是额外计算。
  2. Mixed Precision(混合精度):常用 BF16/FP16 提升吞吐。
  3. Loss Scaling(损失缩放):防止低精度下梯度下溢。

4.3 分布式并行:LLM 训练为什么离不开它

单卡常见瓶颈:参数放不下、激活放不下、吞吐不够。

并行策略:

  1. DP(Data Parallel,数据并行):模型复制到多卡,数据切分。
  2. TP(Tensor Parallel,张量并行):单层矩阵按维度切到多卡。
  3. PP(Pipeline Parallel,流水线并行):按层切分到不同设备。
  4. FSDP/ZeRO(全分片数据并行):参数、梯度、优化器状态分片,显存友好。

类比:

  • DP:每家分店做同一菜单,不同顾客。
  • TP:一道超大菜由多位厨师同时做不同部分。
  • PP:后厨分工流水线,A 备料,B 烹饪,C 装盘。

4.4 集合通信库 NCCL 的地位

  • NCCL:NVIDIA 的 GPU 集合通信库。
  • 对大规模训练而言,通信效率直接决定扩展效率。
  • 优化目标是 Overlap(重叠):反向计算的同时进行梯度通信,减少空等。

5. AI 推理系统与引擎:走向生产的最后一公里

5.1 训练关注"学会",推理关注"服务好"

训练目标:高吞吐 + 收敛精度。

推理目标:低延迟 + 高并发 + 低成本 + 稳定性。

5.2 推理引擎的核心职责

  1. 模型加载与图优化。
  2. 请求排队、动态批处理、并发调度。
  3. KV Cache 管理。
  4. kernel 选择与执行。
  5. 监控指标上报(TTFT、TPOT、P95/P99)。

5.3 Prefill 与 Decode 的优化重点不同

  • Prefill:计算密集,重点看吞吐和 Tensor Core 利用率。
  • Decode:访存+调度密集,重点看单步延迟和 cache 命中。

5.4 模型转换:训练框架与部署环境解耦

常见链路:

  1. 训练框架导出模型(如 ONNX 或引擎专有格式)。
  2. 引擎做图优化与算子替换。
  3. 构建硬件相关执行计划(engine build)。
  4. 发布到线上并灰度验证。

术语:

  • ONNX(Open Neural Network Exchange):跨框架模型交换格式。
  • Engine Build(引擎构建):针对目标硬件生成最优执行计划。

5.5 模型轻量化:量化、剪枝、蒸馏

  1. Quantization(量化):FP16/FP32 -> INT8/INT4,降低显存与带宽开销。
  2. Pruning(剪枝):删除低贡献连接/通道。
  3. Knowledge Distillation(知识蒸馏):大模型指导小模型学习。

生活化例子:

  • 量化像把照片从 RAW 压成高质量 JPEG,体积显著变小,细节轻微损失。
  • 剪枝像裁掉盆景无效枝杈,让营养集中到主干。
  • 蒸馏像名师把重点题型浓缩成小册子给学生。

5.6 LLM 推理热点技术

  • PagedAttention(分页注意力):把 KV Cache 分页管理,降低碎片。
  • Continuous Batching(连续批处理):动态拼批,提升设备利用率。
  • Prefix Cache(前缀缓存):复用共享前缀,避免重复 prefill。
  • Speculative Decoding(投机解码):小模型草拟,大模型校验提速。
  • CUDA Graph:复用固定执行图,降低 kernel launch 开销。

5.7 线上必须看的指标与告警

  • 业务层:QPS、成功率、P95/P99 延迟。
  • 模型层:TTFT、TPOT、tokens/s。
  • 资源层:GPU 利用率、显存水位、KV 命中率。
  • 稳定性:OOM 次数、重试率、超时率、节点漂移。

6. 端到端工程实战:一条训练与部署链路

下面是一条常见流程,适合作为团队实施模板。

  1. 训练侧

    • 准备数据与特征。
    • 选择并行策略(DP/TP/PP/FSDP)。
    • 开启混合精度与梯度检查点。
    • 监控 MFU、通信时间占比、loss 曲线。
  2. 导出与优化侧

    • 固化模型版本与权重 checksum。
    • 导出 ONNX 或目标引擎格式。
    • 跑量化标定(PTQ)或量化感知训练(QAT)。
    • 进行 engine build 与 benchmark。
  3. 推理侧

    • 上线前压测:TTFT/TPOT/P99。
    • 打开连续批处理与 KV 分页。
    • 设置多级降级策略(限流、降精度、短路回复)。
    • 灰度发布,监控回归。
  4. 回路闭环

    • 采集线上 bad case。
    • 进入下一轮训练与蒸馏。
    • 通过 A/B Test 验证收益。

7. 常见误区(给技术分享现场可直接讲)

  1. 误区:只要换更大 GPU 就一定更快。

    事实:如果是 memory-bound 或通信瓶颈,换卡收益有限。

  2. 误区:量化一定"免费提速"。

    事实:精度回退、算子不支持、校准集偏差都可能抵消收益。

  3. 误区:分布式就是把卡数加倍。

    事实:通信拓扑、并行策略、微批大小决定扩展效率。

  4. 误区:推理优化只看 tokens/s。

    事实:线上体验更看 TTFT 与长尾延迟(P99)。


8. 结语

model.forward(x) 到 GPU 上数十亿晶体管翻转,AI 系统是一套跨学科工程:

  • 体系结构决定物理上限。
  • 编译器决定代码能否逼近上限。
  • 框架决定训练是否可扩展、可维护。
  • 推理系统决定模型能否稳定创造业务价值。

真正稀缺的能力,不只是"会训练模型",而是能把模型在真实生产中 稳定、低成本、高性能 地跑起来。


附录A:训练与推理全链路组件图(数据流/控制流)

flowchart TB subgraph Train["训练面(Offline)"] D["Dataset 数据集"] --> DL["DataLoader 数据加载"] DL --> FE["Framework Frontend(PyTorch/TF)"] FE --> CG["Computational Graph 计算图"] CG --> CMP["Compiler 编译器(图优化+代码生成)"] CMP --> RT["Runtime 运行时与调度器"] RT --> KR["Kernels(CUDA/cuDNN/cuBLAS)"] KR --> HW["GPU/TPU 集群"] HW --> BW["Backward 反向传播(Autograd)"] BW --> OPT["Optimizer 优化器"] OPT --> CKPT["Checkpoint 模型权重"] CKPT --> REG["Model Registry 模型仓库"] end subgraph Serve["推理面(Online)"] U["User Request 用户请求"] --> GW["API Gateway 网关"] GW --> TOK["Tokenizer 分词"] TOK --> BS["Batch Scheduler 批调度"] BS --> MS["Model Server(vLLM/TensorRT-LLM/ORT)"] MS --> PF["Prefill 阶段"] PF --> DE["Decode 阶段"] DE --> KVC["KV Cache 管理(PagedAttention)"] KVC --> EK["Execution Kernels 执行算子"] EK --> GH["GPU"] GH --> DET["Detokenizer 反分词"] DET --> RESP["Streaming Response 流式返回"] end REG --> MS OBS["Observability 可观测(Metrics/Logs/Tracing)"] -.监控.-> HW OBS -.监控.-> GH CTRL["Control Plane 控制面(K8s/Ray/Airflow)"] -.调度.-> RT CTRL -.调度.-> BS

附录B:难点知识点"白话例子"速查

  1. SIMD:像老师一声口令让一排同学同时举手。
  2. SIMT:像一群实习生执行同一脚本,但每人处理不同文件。
  3. 算子融合:原本三道工序三次搬运,融合后一次进锅。
  4. 自动微分:像自动记账,结算时系统自动反推每笔贡献。
  5. All-Reduce:各组先算小计,再汇总成全员一致结果。
  6. 张量并行:一张巨型海报裁成几段并行打印再拼接。
  7. 流水线并行:工厂分站作业,多个产品同时在不同工位流动。
  8. 量化:视频从 4K 压到 1080p,体积大减、细节小损。
  9. 剪枝:给果树修枝,去掉弱枝让养分集中。
  10. 蒸馏:高手给你"压缩版心法",小模型更轻更快。
  11. KV Cache:开卷考试做了重点索引,后续查找更快。
  12. PagedAttention:像虚拟内存分页,按页管理缓存避免碎片。
  13. Continuous Batching:电梯动态拼单上客,不等满员才发车。
  14. Speculative Decoding:助理先写草稿,专家快速审核定稿。
  15. Roofline:跑车速度上限由"马力"和"路况限速"共同决定。

附录C:AI 术语词典(按模块整理)

用法建议:演讲时遇到术语,可直接引用本词典的一句话解释。

C.1 硬件与体系结构

术语 英文全称 一句话解释
AI Infra Artificial Intelligence Infrastructure 支撑 AI 训练与推理的软硬件系统工程。
CPU Central Processing Unit 通用处理器,强控制与通用计算。
GPU Graphics Processing Unit 高并行吞吐处理器,擅长矩阵运算。
ASIC Application-Specific Integrated Circuit 面向特定任务定制的专用芯片。
TPU Tensor Processing Unit Google 的 AI 专用加速芯片。
NPU Neural Processing Unit 面向神经网络运算的专用单元。
Tensor Core - GPU 上用于矩阵乘加的专用计算单元。
FLOPS Floating Point Operations Per Second 每秒浮点运算次数,常用算力指标。
Bandwidth - 单位时间可传输的数据量。
Roofline - 用算力上限和带宽上限分析性能边界的模型。
SIMD Single Instruction Multiple Data 一条指令并行处理多个数据元素。
SIMT Single Instruction Multiple Threads 同一程序由多个线程并发执行。
Warp - GPU 调度的基本线程组。
SM Streaming Multiprocessor GPU 的核心计算资源单元。
HBM High Bandwidth Memory GPU 高带宽显存。
SRAM Static Random Access Memory 片上低延迟存储,常用于缓存。
PCIe Peripheral Component Interconnect Express 通用高速总线接口。
NVLink - NVIDIA GPU 间高速互联。
RDMA Remote Direct Memory Access 跨节点低开销远程内存访问技术。

C.2 编译与执行

术语 英文全称 一句话解释
Compiler - 将模型计算转换为目标硬件可执行程序。
IR Intermediate Representation 编译器内部的中间抽象表示。
Frontend - 负责解析模型并做图级优化。
Backend - 负责硬件相关调度与代码生成。
Constant Folding - 编译期预计算常量表达式。
DCE Dead Code Elimination 删除不影响结果的无效计算。
Operator Fusion - 把多个算子融合为一个更高效算子。
Codegen Code Generation 将 IR 翻译为目标代码。
Tiling - 按块划分计算以提升局部性。
Vectorization - 把标量操作改写为向量并行操作。
Unrolling Loop Unrolling 展开循环减少跳转开销。
Auto-Tuning - 自动搜索最佳 kernel 参数配置。
CUDA Compute Unified Device Architecture NVIDIA 的 GPU 编程平台。
Kernel - 在 GPU 上执行的函数。
PTX Parallel Thread Execution NVIDIA 的中间指令表示。
cuBLAS CUDA Basic Linear Algebra Subprograms 高性能线性代数库。
cuDNN CUDA Deep Neural Network library 深度学习算子加速库。

C.3 框架与训练

术语 英文全称 一句话解释
Tensor - 多维数组,AI 数据基本形态。
Shape - 张量各维度大小。
DType Data Type 张量元素精度类型。
Stride - 张量在内存中的步长布局信息。
Computational Graph - 表示计算依赖关系的图结构。
DAG Directed Acyclic Graph 有向无环图,便于拓扑执行。
Dynamic Graph - 运行时构图,调试灵活。
Static Graph - 先构图再执行,优化空间更大。
Autograd Automatic Differentiation 通过链式法则自动计算梯度。
Forward Forward Pass 从输入到输出的正向计算。
Backward Backward Pass 从损失反向传播梯度。
Gradient - 参数对损失的导数信息。
Optimizer - 根据梯度更新参数的算法。
Mixed Precision - 用低精度计算提升吞吐、节省显存。
Loss Scaling - 对 loss 放缩以避免低精度梯度下溢。
DP/DDP Data Parallel / Distributed Data Parallel 多卡复制模型、切分数据并同步梯度。
TP Tensor Parallel 将单层张量运算切分到多卡。
PP Pipeline Parallel 将不同层分配到不同设备流水执行。
FSDP Fully Sharded Data Parallel 参数与状态全分片的数据并行策略。
ZeRO Zero Redundancy Optimizer 降低并行训练冗余内存占用的技术。
NCCL NVIDIA Collective Communications Library GPU 高性能集合通信库。
All-Reduce - 聚合并广播,常用于梯度同步。
All-Gather - 汇聚各卡分片数据到每卡。
Reduce-Scatter - 先归约再分发的通信原语。

C.4 推理与服务

术语 英文全称 一句话解释
Inference - 使用训练好的模型进行预测/生成。
Latency - 单次请求延迟。
Throughput - 单位时间处理能力。
QPS Queries Per Second 每秒请求数。
TTFT Time To First Token 首 token 返回时间。
TPOT Time Per Output Token 平均每个输出 token 的耗时。
P95/P99 - 95/99 分位延迟,衡量长尾性能。
ONNX Open Neural Network Exchange 跨框架模型表示与交换格式。
TensorRT - NVIDIA 推理优化与执行引擎。
vLLM - 面向 LLM 的高吞吐推理服务框架。
ORT ONNX Runtime ONNX 模型运行时与优化执行引擎。
Prefill - 处理输入上下文的首轮计算阶段。
Decode - 逐 token 生成阶段。
KV Cache Key-Value Cache 缓存历史注意力状态以复用计算。
PagedAttention - 分页管理 KV Cache 的注意力实现。
Continuous Batching - 动态接入请求并持续拼批执行。
Prefix Cache - 复用公共提示词前缀的缓存机制。
Speculative Decoding - 小模型草拟、大模型校验的加速解码。
Quantization - 用低比特表示参数/激活以提速降耗。
PTQ Post-Training Quantization 训练后量化,无需完整再训练。
QAT Quantization-Aware Training 训练中模拟量化误差以保精度。
INT8/INT4 - 8 位/4 位整型量化精度。
Pruning - 删除冗余参数连接以压缩模型。
Distillation Knowledge Distillation 大模型指导小模型训练。
CUDA Graph - 录制并复用 GPU 执行图以降低启动开销。
相关推荐
普通网友3 小时前
Android Jetpack 架构组件最佳实践之“网抑云”APP
android·架构·android jetpack
礼拜天没时间.8 小时前
JumpServer堡垒机部署与实战:从0到1搭建统一运维入口
linux·运维·架构·堡垒机·jumpserver·sre
智算菩萨10 小时前
人工智能智能体研究综述:从理论架构到前沿应用
人工智能·机器学习·架构
古城小栈12 小时前
后端视角:拆解春晚背后的高可用技术架构
后端·架构
羑悻的小杀马特15 小时前
从虚拟化基石到云原生架构的降维打击:用dd/mkfs玩转namespace隔离,解锁Docker/K8S资源密码,看透物理机到云服务器的进化之路
docker·云原生·架构·namespace
CappuccinoRose15 小时前
HTML语法学习文档(九)
前端·学习·架构·html5
小小工匠15 小时前
极客防御美学:在微服务架构中落地 PoW 工作量证明与防重放机制
微服务·云原生·架构·pow
SmartBrain16 小时前
技术洞察:SpringAI与LangGraph选型对比
人工智能·spring boot·架构·langchain·aigc·fastapi
香芋Yu17 小时前
【2026大模型面试圣经】(2)主流大模型架构全景 | GPT/LLaMA/DeepSeek/Qwen深度对比
gpt·面试·架构