日报:多子集预处理与云端训练稳定化 — 2026年2月7日
一、总体进展概述
今天的主要工作集中在 多子集数据的本地预处理 与 云端训练环境的稳定性调试 上。目前整体流程已经从“数据准备阶段”正式进入“长时间训练与监控阶段”。尽管在云端训练过程中遇到了多次非预期 Bug,但通过逐步定位与参数调整,当前训练任务已进入相对稳定的运行状态。
二、本地数据预处理(Local Preprocessing)
2.1 子集范围
在本地环境中,我对 全部 11 个子集 完成了 tokenizer 处理与统一的数据预处理流程,具体包括:
ALL_SUBSETS = [ “Random-500”, “Random-1000”, “TopQ-500”, “TopQ-1000”, “ShortHQ-500”, “SuccessOnly-500”, “DimAblation-no_truncation_ratio”, “DimAblation-no_outcome_success”, “DimAblation-no_step_efficiency”, “DimAblation-no_observation_noise”, “DimAblation-no_action_diversity”, ]
这些子集覆盖了:
- 随机采样基线(Random)
- 质量排序筛选(TopQ / ShortHQ / SuccessOnly)
- 多维度消融实验(Dim Ablation)
为后续对比实验提供了结构完整、可控的输入数据基础。
三、云端训练进展(RunPod / A100)
3.1 数据迁移与环境问题
- 已将全部预处理完成的数据成功导入 RunPod 云端环境;
- 但在训练启动与运行过程中,频繁遭遇不同类型的 环境与运行时 Bug;
- 当前策略是 小步快跑 + 持续监控,在保证不浪费 GPU 时间的前提下快速定位问题。
3.2 训练时间评估
- 按当前配置估算,总训练时间约为 50 小时 A100 GPU(80GB);
- 目前训练任务仍在持续运行中;
- 需要定期人工介入检查日志,防止长时间 silent failure。
四、训练参数设计与问题修复
4.1 基本训练设置
- 每个子集训练 2 个 Epochs;
- 单个 Test Case 使用 500 条数据(即 1000 个样本);
- 采用 8 组并行配置;
- 总训练步数约为 124 steps,正好覆盖 500 个样本各训练两次,设计上是一个较为“紧凑但完整”的实验规模。
4.2 显存与 Batch Size 优化
问题 1:首次运行显存不足
- 初始配置在 A100 上出现 GPU OOM;
- 解决方案:
- 将 Batch Size 调整为 2
- 将 Gradient Accumulation 调整为 4
- 最终 有效 Batch Size 仍保持为 8,不影响实验可比性。
4.3 优化器崩溃问题(关键问题)
问题 2:第 11 步训练崩溃
- 第二次运行在 Step 11 时异常终止;
- 经排查,问题定位在:
- bitsandbytes 的 PagedAdamW 8-bit 优化器
- Page Memory 管理存在不稳定问题(在当前训练规模下触发)
解决方案:
- 将 PagedAdamW 8-bit 替换为 非 Paged 版本;
- 非 Paged 优化器的状态参数将完整驻留在 GPU 上;
- 对于 A100 80GB 显存而言,该开销是可接受的。
五、当前状态与预期
在完成上述调整后,当前训练流程已经重新启动。
核心观察点在于:
- 是否仍会在 第 11 个 Test Case 或第 11 步附近 复现相同问题;
- 如果问题不再出现,则可以基本确认此前的崩溃与 Paged Optimizer 强相关。
接下来将以 稳定性优先 为原则,持续监控训练过程,为后续结果分析与消融对比打下可靠基础。
六、下一步计划(简要)
- 持续监控当前训练任务的运行状态;
- 若本轮训练稳定完成,将开始:
- 不同子集之间的效果对比;
- 重点分析质量筛选与各维度消融对模型性能的影响。