LLM训练生命周期中常见指标
2026/7/23大约 4 分钟
二、 算力与配置参数板块(“给机器排产”)
这一板块是算法同学每天在训练脚本里修改最多的核心控制台。
1. 核心参数
- Micro Batch Size (MBS / 单卡单步批次大小): 极其关键!指单张 GPU 在单次前向传播中,一次性吃进去的文本样本数量(比如
MBS=2)。调得太大显存直接炸,调得太小显卡“吃不饱”。 - Gradient Accumulation Steps (GAS / 梯度累积步数): 显存不够、无法一次性吃下大 Batch 时的保命参数。让显卡连续闷头算 $N$ 步,把梯度在本地叠加,不触发网络通信。
- Global Batch Size (GBS / 全局总批次大小): 算法真正关心的、模型每更新一次权重所看过的总样本数。
$$
\text{计算公式:} \text{GBS} = \text{MBS} \times \text{GAS} \times \text{数据并行卡数 (DP_Size)}
$$
- Sequence Length (SeqLen / 上下文长度): 训练时输入的单条文本有多长(如 4K、8K、32K)。它对显存(尤其是激活值)的消耗呈二次方($O(N^2)$)爆炸级增长。
2. 核心优化技术
- Activation Checkpointing (重计算): 拿算力换显存。前向传播算完后,把庞大的激活值直接从显存里丢弃;反向传播需要用时,GPU 现场重新算一遍。能让单卡 MBS 瞬间翻倍。
三、 分布式并行与通信板块(“大卸八块与传小纸条”)
当一个模型大到单卡装不下、必须上多卡或多机时,这就是 Infra SRE 的技术主战场。
1. 3D 并行策略
- DP / DDP (数据并行): 每个人手里拿着全套模型,各自吃不同的数据,最后用
NCCL AllReduce对答案(同步梯度)。 - TP (张量并行): 把模型内部的矩阵切开,GPU 0 算左半边,GPU 1 算右半边。通信极度频繁,物理上必须锁死在单机内部的 NVLink 高速公路上,绝对不能跨机。
- PP (流水线并行): 纵向切分层数。GPU 0 算 1-10 层,算完把边界结果像接力棒一样扔给 GPU 1 算 11-20 层。通信量小,适合跨机。
- FSDP2 (完全分片数据并行第二代): 现代大厂的首选。原生基于 DTensor,完全保留参数的矩阵形状,把参数、梯度、优化器状态平均切分到各卡上。前向时用
AllGather现拼现算,算完立删,反向时用ReduceScatter同步,完美兼容 TP。 - HSDP (混合分片数据并行): 针对“跨机网络慢”发明的折中策略。机内走 FSDP(切分省显存),跨机走 DDP(复制省通信带宽)。
2. NCCL 底层原语
- AllReduce: DDP 的核心。所有人手里的局部梯度互相求和,最后每个人都拿到一份完全一致的全局平均梯度。
- AllGather: FSDP2 的核心。每个人出自己的一小块切片,互相交换后,所有人手里都拼出了一份完整的大模型参数。
- ReduceScatter: 所有人手里形状相同的梯度一边传递一边相加,但最后切开,每张卡只保留属于自己的那 1/4 梯度切片。
四、 核心监控指标板块(“年终 KPI 与故障排查”)
这是你作为 SRE 在 Prometheus、Grafana 或者训练日志里需要死死盯住的仪表盘。
1. 效率指标
- MFU (Model FLOPs Utilization / 模型算力利用率): Infra 团队的终极 ROI 指标。 硬件实际干正事的有效算力占理论巅峰算力的百分比。及格线 30%,优秀线 >50%,大厂顶尖调优能压榨到 60% 以上。
- TFLOPS (每秒万亿次浮点运算): 显卡当前每秒实际吐出的算力数值。
- Tokens/s/GPU: 平均单张卡一秒钟能吞吐多少个 Token,反映了整体数据流水线的通畅度。
2. 稳定性与故障指标
- Loss (损失值): 算法同学最看重的值,代表模型有多笨。如果 Loss 突然变成
NaN或者Inf,说明模型彻底训练崩溃(崩盘)了,SRE 需要配合检查是不是发生了精度溢出。 - Distributed Hang (分布式挂起/假死): 极其经典的故障。表现为 GPU 功耗全部瞬间掉到十几瓦(摸鱼状态),日志停止输出。通常是因为集群网络有坏节点或丢包,导致 NCCL 在进行
AllReduce时某个节点死等,全盘卡死。
💡 SRE 实战速查口诀
显存炸了(OOM) $\rightarrow$ 找算法降 MBS,开 Activation Checkpointing,或者把 DDP 升级为 FSDP2。
速度太慢(MFU低) $\rightarrow$ 开 NCCL_DEBUG=INFO 查是不是跨机没走 RDMA 走了慢速 Socket;或者加大 GAS 减少通信频率。模型崩了(NaN) $\rightarrow$ 检查代码里的 Dtype 是不是配错了 FP16,立刻强推换成 BF16。
这份全景图基本涵盖了你目前在 8 卡服务器上死磕 PyTorch 期间会遇到的所有核心词汇。把这张图刻进脑海里,整个大模型训练的物理运行轨迹在你眼里就是完全透明的了!
在这四大板块里,你目前手头在看的 PyTorch 文档或报错,正对应着哪一个板块的内容?
