Chapter 1-ML Systems

作者:CherryYang 发布时间: 2026-07-24 阅读量:1 评论数:0

Chapter 1: ML Systems:从模型算法走向完整系统

《Machine Learning Systems》第一章的目的,并不是介绍某一种机器学习算法,也不是直接讲 GPU 集群、分布式训练或模型推理框架。作者首先希望建立一种更基础的认识:

机器学习模型不是独立运行的数学公式,而是一个受到数据、算法、硬件和部署环境共同约束的计算系统。

传统机器学习通常把注意力集中在模型结构、训练方法和准确率上,而 ML Systems 更关注另一个问题:模型如何在现实硬件上满足延迟、吞吐、成本、功耗和可靠性要求。

因此,本章主要是在建立后续内容所需要的系统分析框架。


1. 从模型指标转向系统指标

单纯从算法角度看,一个模型通常通过准确率、损失函数和泛化能力进行评价。

但模型进入实际系统后,还需要面对一系列工程约束:

  • 模型能否放入设备内存;
  • 数据能否及时送到计算设备;
  • 推理延迟能否满足业务要求;
  • 训练过程能否充分利用 GPU;
  • 系统的功耗和成本是否可以接受;
  • 网络不可用时,模型是否仍然能够运行。

因此,一个准确率更高的模型,不一定是更好的系统方案。

例如,一个模型的准确率提高了 1%,但模型大小扩大十倍、延迟增加五倍,那么它可能无法部署到手机或实时边缘设备上。ML Systems 关心的是准确率与系统代价之间的整体权衡,而不是孤立地追求单一指标。


2. 部署环境决定系统约束

本章将常见的机器学习部署环境分为四类:

部署环境 主要特点 常见约束
Cloud ML 数据中心集中计算 吞吐、成本、网络延迟
Edge ML 靠近数据源进行计算 实时性、隐私、网络稳定性
Mobile ML 手机和平板等终端 电池、散热、内存
TinyML 微控制器和传感器 极小内存、极低功耗

这里的“部署范式”并不是机器学习算法的分类,而是对模型运行环境的分类。

作者通过这些场景说明:同一个模型部署在不同位置,面临的系统问题可能完全不同。

例如,云端服务可以使用高性能 GPU,但请求需要经过网络传输;边缘设备算力较弱,却能够减少网络延迟;移动设备强调电池续航;TinyML 系统甚至首先需要解决“模型能否放得进去”的问题。

因此,系统设计的起点不应该是“使用什么模型”,而应该是:

应用需求
  ↓
部署环境
  ↓
延迟、功耗、内存和成本约束
  ↓
模型与硬件设计

3. DAM:分析 ML 系统的三个维度

作者使用 DAM 框架描述一个 ML 系统的基本组成:

  • Data:需要处理和搬运的数据;
  • Algorithm:需要执行的计算过程;
  • Machine:负责实际执行的硬件平台。

Data

Data 不仅包括训练集和输入数据,也包括数据在存储、内存和计算设备之间的移动过程。

常见问题包括:

  • 数据读取速度不足;
  • 数据预处理成为瓶颈;
  • GPU 等待 CPU 或存储提供数据;
  • 权重和激活值在内存层次间反复搬运。

Algorithm

Algorithm 决定系统需要执行多少工作,例如:

  • 模型参数规模;
  • 神经网络层数;
  • 输入序列长度;
  • 运算精度;
  • 是否存在重复或无效计算。

算法优化的本质,是减少完成任务所需的计算量或数据量,例如量化、剪枝、蒸馏和稀疏化。

Machine

Machine 是执行算法的物理平台,包括:

  • CPU、GPU、TPU、NPU;
  • 内存容量和带宽;
  • 存储与网络;
  • 功耗和散热条件。

更高的峰值算力并不必然带来更高的实际性能。只有当工作负载确实受到计算能力限制时,增加 FLOPS 才能产生明显收益。

DAM 的价值在于提醒系统设计者:性能问题并不一定来自硬件,也可能来自数据路径或算法工作量。


4. Workload Archetypes:识别主要瓶颈

为了进一步描述不同工作负载的性能特征,本章提出了几种典型工作负载原型。

Compute Beast

计算量很大,主要受计算吞吐限制。

典型场景包括大规模神经网络训练。此类工作负载通常包含大量矩阵乘法,能够较充分地使用 GPU Tensor Core。

对应传统体系结构中的:

Compute-bound workload。

Bandwidth Hog

计算单元需要不断读取模型权重和激活值,主要受内存带宽限制。

例如,大语言模型在小批量 Decode 阶段,每生成一个 Token 都可能需要读取大量模型权重。此时 GPU 的理论 FLOPS 很高,但计算单元可能长期等待 HBM 提供数据。

对应:

Memory-bandwidth-bound workload。

Sparse Scatter

工作负载需要在大型数据结构中进行大量离散、随机访问。

推荐系统中的 Embedding Table 查询是典型例子。其问题通常不是连续带宽不足,而是随机访问、缓存局部性和通信开销。

对应:

Irregular memory access 或 latency-bound workload。

Tiny Constraint

系统首先受到内存容量、功耗和设备资源的硬约束。

这种场景通常出现在微控制器、传感器和始终在线的低功耗设备中。优化目标可能不是提高峰值性能,而是让模型能够在有限资源中运行。

可以将四种原型简化为:

Compute Beast:计算量大
Bandwidth Hog:数据搬运量大
Sparse Scatter:数据访问不规则
Tiny Constraint:资源上限严格

这些原型不是模型类别,而是对运行时瓶颈的描述。同一个 Transformer 在训练阶段和推理阶段,也可能表现为不同的工作负载类型。


5. 系统平衡与硬件配置

所谓系统平衡,是指计算、内存、存储和网络能力需要与工作负载匹配。

系统性能通常由最慢的环节决定:

计算时间
内存搬运时间
存储与网络 I/O 时间
同步和启动延迟
        ↓
其中最大的部分成为主导瓶颈

如果模型受到内存带宽限制,那么继续增加计算单元不会显著提高性能;如果模型受到计算吞吐限制,仅增加内存容量同样没有意义。

因此,硬件配置不能只看单个峰值指标,而要考虑多个维度:

  • 峰值计算吞吐;
  • 内存容量;
  • 内存带宽;
  • 设备间通信;
  • 存储和网络吞吐;
  • 能耗与散热;
  • 实际硬件利用率。

例如,LLM 推理系统可能更关注 HBM 容量和带宽,而大批量训练系统通常更关注矩阵计算能力和多设备通信效率。

系统平衡并不是让所有硬件指标达到同一水平,而是避免某个组件明显无法满足工作负载要求。


6. 本章各概念之间的关系

部署范式、DAM、工作负载原型和系统平衡并不是四套相互独立的理论,而是同一个系统设计过程中的不同阶段。

部署环境
  ↓
确定延迟、功耗、容量和成本约束
  ↓
使用 DAM 分析数据、算法和机器
  ↓
识别主要工作负载瓶颈
  ↓
调整模型、数据路径和硬件配置

例如,对于 LLM Decode:

  • 部署环境可能是云端在线服务;
  • Data 侧需要频繁读取模型权重和 KV Cache;
  • Algorithm 侧每个 Token 的计算复用有限;
  • Machine 侧 GPU 计算能力可能没有完全利用;
  • 工作负载表现为 Bandwidth Hog;
  • 优化方向包括量化、批处理和提高内存带宽利用率。

这些概念最终都服务于同一个目标:找到系统中真正限制端到端性能的因素。


7. 常见误区

误区一:模型越大,系统效果越好

模型规模只是影响效果的一个因素。更大的模型意味着更多计算、内存和数据搬运成本,未必符合实际部署条件。

误区二:GPU FLOPS 越高,程序一定越快

当程序受到内存、网络或存储限制时,增加峰值算力的收益可能非常有限。

误区三:Workload Archetype 是模型分类

它不是在区分 CNN、Transformer 或推荐模型,而是在描述它们运行时暴露出的主导瓶颈。

误区四:一个模型只有一种性能特征

模型的性能特征会随训练或推理阶段、Batch Size、输入规模和硬件平台而变化。

例如,Transformer 训练可能是计算受限,而小批量 Decode 更可能受到内存带宽限制。

误区五:只需优化最明显的局部组件

局部组件加速后,瓶颈可能转移到系统的其他位置。ML Systems 更强调端到端分析,而不是孤立地优化单个算子或设备。


8. 本章的核心目的

这一章真正希望读者建立的,是一种工作负载驱动的系统观:

先明确应用需求和物理约束,再分析数据、算法和机器之间的关系,最后选择模型、优化方法和硬件配置。

对于具有体系结构或系统背景的读者,本章中的很多内容可以映射到熟悉的概念:

本章概念 传统系统概念
Compute Beast Compute-bound
Bandwidth Hog Memory-bandwidth-bound
Sparse Scatter 随机访问与局部性
Tiny Constraint 资源受限系统
System Balance 木桶效应与瓶颈分析
DAM 工作负载、程序和硬件协同

因此,本章并不是在提出一套完全不同于传统计算机系统的理论,而是在将工作负载分析、内存墙、局部性和端到端性能优化等思想应用到机器学习场景中。

总结

ML Systems 关注的并不只是模型本身,而是模型在真实计算环境中的完整生命周期。

本章可以压缩为一条主线:

运行在哪里
  ↓
受到什么约束
  ↓
需要处理多少数据和计算
  ↓
真正的瓶颈是什么
  ↓
应该优化算法、数据路径还是硬件

这也是后续理解 ML 框架、模型训练、硬件加速、模型压缩和推理服务的基础。

评论