日报:多子集预处理与云端训练稳定化 — 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 强相关。

接下来将以 稳定性优先 为原则,持续监控训练过程,为后续结果分析与消融对比打下可靠基础。


六、下一步计划(简要)

  • 持续监控当前训练任务的运行状态;
  • 若本轮训练稳定完成,将开始:
    • 不同子集之间的效果对比;
    • 重点分析质量筛选与各维度消融对模型性能的影响。