VRAM扩展策略指南 | AI生成和翻译

首页 2026.07

现在让我们检查一下当前的 VRAM 使用情况,看看还有多少余量:

第约 996 步(3.4%)时的当前状态:


批次缩放策略

你有 90 GB 空闲 VRAM——这是一个巨大的优势。以下是何时以及如何增加批次大小:

训练阶段 步数区间 损失范围 批次大小 原因
早期(当前) 0–20,000 10.4 → ~2.5 524K(当前) 学习速度快,较小的批次 = 更多探索
中期 20,000–26,000 ~2.5 → ~2.3 2M tokens(4×) 接近收敛时梯度更清晰
最终 26,000–29,000 ~2.3 → 最终 4M tokens(8×) 微调最小值

何时采取行动:瓶颈大约从 第 20,000 步(70%)开始,此时损失趋于稳定。每 5000 步评估一次——当损失每 500 步下降幅度小于 0.01 时,就是时机。

在拥有 90 GB 空闲内存的 H200 上,你可以从 device_batch=16 增加到 device_batch=64(大约使用 108 GB,仍然在容量范围内):

Device Batch Total Batch VRAM 估计 作用
16(当前) 524K 54 GB 探索模式
32 1M ~75 GB 适度平滑
48 2M ~95 GB 良好的收敛提升
64 4M ~115 GB 最大——仅用于最终微调

如何实施

约在第 20,000 步时,停止训练(在 tmux 中按 Ctrl+C),然后:

tmux new -s train-d24-phase2
source .venv/bin/activate
export NANOCHAT_DATA_DIR=/workspace/zz/datasets/fineweb-edu/

python -m scripts.base_train \
  --depth=24 \
  --device-batch-size=48 \
  --total-batch-size=2097152 \
  --max-seq-len=2048 \
  --window-pattern SSSL \
  --fp8 \
  --resume-from-step=20000 \
  --num-iterations=22360 \
  --eval-every=200 \
  --save-every=1000 \
  --run=h200-d24-760m-phase2 \
  --tracker=wandb

--resume-from-step=20000 用于加载保存的检查点和数据加载器状态,--num-iterations 已重新计算,以确保总 token 数量保持不变。

一个注意事项

在收敛时使用较大的批次可能会陷入泛化能力较差的 尖锐极小值。为了缓解:略微降低学习率(代码会自动缩放),或者在批次更改后添加一个短暂的学习率预热。现有的 --warmdown-ratio=0.65 处理了尾段调度。

需要我设置一个监控损失并在缩放时机到来时提醒你的 cron 任务吗?


AI生成和翻译,但整理分享仍需精力。如果觉得有帮助,欢迎 捐助支持。 微信:@lzwjavaWeChat QR · X: @lzwjava · 打个招呼 👋

返回 捐助