Skip to content

AI 训练和推理系统的整体架构

1.2.1 训练系统架构

一个典型的 AI 训练系统由以下核心组件构成:

层次 典型组件 主要作用

数据层 数据集、数据加载器、预处理流水线 提供训练样本,并完成清洗、增强、分片等处理

计算层 GPU 集群、CPU 节点、网络互联 执行前向计算、反向传播、梯度同步等训练任务

存储层 并行文件系统、对象存储、Checkpoint 存储 保存训练数据、模型权重、优化器状态和中间结果

调度层 任务队列、资源管理、容错恢复 负责资源分配、任务编排、故障恢复和运行监控 训练系统的整体形态可以概括为:

数据流详解

训练过程中的数据流动大致如下: 训练系统关注的是 吞吐量稳定性:如何让大量 GPU 长时间高效协同工作,并在故障后尽快恢复。

1.2.2 推理系统架构

推理系统与训练系统有显著不同:它更注重 低延迟高吞吐。 一个典型推理系统的请求链路如下: 推理服务集群内部通常包含:

模块 主要职责

推理引擎(vLLM) 请求调度、KV Cache 管理、批处理优化、量化推理

GPU 推理节点 模型权重加载、Attention 计算、Token 生成

负载均衡器 将请求分发到合适的推理实例

API 网关 对外提供服务入口,处理鉴权、限流、路由等能力 以 vLLM 这类推理引擎为例,系统内部通常会持续做以下优化:

  • 请求调度:决定哪些请求进入当前批次;
  • KV Cache 管理:减少重复计算,提升长上下文场景下的效率;
  • 批处理优化:通过动态批处理提升 GPU 利用率;
  • 量化推理:使用 INT8 / INT4 / FP16 等精度降低显存和计算成本。

1.2.3 训练与推理的关键差异

维度 训练(Training) 推理(Inference)

计算目标 更新模型参数 生成预测结果

精度要求 FP32 / FP16 / BF16 INT8 / INT4 / FP16

批处理方式 通常使用固定 batch size 更依赖动态 batching

内存使用 参数 + 梯度 + 优化器状态 参数 + KV Cache

通信模式 AllReduce 等集合通信频繁 主要是请求、权重、KV Cache 等数据传输

容错要求 依赖 Checkpoint 机制 需要快速失败恢复和服务高可用

优化重点 吞吐量 延迟 + 吞吐量 简单来说:

  • 训练 追求“更快训练出模型”;
  • 推理 追求“更快、更稳定、更便宜地服务用户请求”。 BF16(Brain Floating Point 16,也叫 bfloat16) 是一种 16 位浮点数格式,主要用于深度学习(训练/推理)里的低精度计算。它最早由 Google Brain 团队提出并在 TPU 上大规模使用,后来也被 GPU(例如 NVIDIA Ampere 架构起)和主流框架(PyTorch/TensorFlow/JAX 等)广泛支持。

1.2.4 Mooncake 架构简介

Mooncake 是月之暗面(Moonshot AI)开源的大模型推理服务平台。 其核心架构可以概括为: Prefill 阶段:把你输入的整段 prompt “一次性读进去”,并把中间结果保存为 KVCache(Key/Value cache):对应这 n 个 token 的 K/V 都会被存起来。 Decode 阶段:一个 token 一个 token 地“续写”,从第一个生成 token 开始,进入自回归循环: Mooncake 的核心创新包括:

  • Prefill-Decode 分离
  • 将计算密集型的 Prefill 阶段和内存带宽密集型的 Decode 阶段分离;
  • 让不同阶段使用更匹配的硬件资源。
  • KV Cache 池化
  • 将 KV Cache 作为可管理、可复用的系统资源;
  • 支持跨请求共享和复用,降低重复计算。
  • 全局调度
  • 根据请求特征和集群负载进行智能路由;
  • 在吞吐量、延迟和资源利用率之间做平衡。

小结

本节从训练系统、推理系统、两者差异和 Mooncake 架构四个角度介绍了 AI Infra 的整体结构。 训练系统重在高吞吐,推理系统重在低延迟;Mooncake 的核心思想是通过 Prefill-Decode 分离和 KV Cache 池化,让大模型推理系统更高效。

用心记录,持续成长