跳转至

实验 8-17 GPU 结果(2026-08-07)

运行环境

  • GPU:NVIDIA RTX PRO 6000 Blackwell Workstation Edition,约 98GB 显存
  • 基座模型:Qwen/Qwen2.5-7B-Instruct
  • 训练:LoRA DPO,bf16,4 epochs,学习率 3e-5,梯度累积 2,随机种子 717
  • 数据:24 条偏好对;训练数据与未完成任务集、已完成任务保留集的任务完全隔离
  • 训练回执:train_20260807T163349Z/training_receipt.json

结果

决策边界评估固定“完成”和“继续验证”两个候选动作,比较模型对两个候选的平均 token 对数概率:

模型 未完成任务集:选对 已完成任务保留集:选对 未完成任务集平均差值 保留集平均差值
基座 3/12(25.0%) 8/8(100%) −0.2083 4.6904
LoRA DPO 11/12(91.7%) 8/8(100%) 0.3828 2.8525

自由生成是补充诊断:未完成任务集的过早结束为 1/12 → 0/12,已完成任务保留集的正常收尾为 6/8 → 0/8。模型在开放式回答里倾向把验证计划写得很长,最终没有明确收尾;这正是为什么主要结论采用与训练提示一致的固定候选比较,而不把自由生成当作唯一指标。

LoRA adapter 约 158MB,未随提交上传;按 README 中的训练命令可以重新生成。训练回执保留实际配置、数据哈希和运行时间;不同版本的 TRL 不一定把最终损失写入同一个日志字段,因此这里不把单个损失值当作实验结论。

迭代记录

第一版只看自由生成。基座模型在这组题上本来就很少直接说“完成”,训练前后“过早结束”几乎没有变化,说明这个指标被回答长度和提示遵循掩盖了,不能单独用来判断 DPO 是否学到了收尾决策。

随后把评估改成固定的两个候选动作:“完成:任务已经完成,可以交付”和“继续验证:先运行验收测试并逐条核对验收条件”,比较模型对候选续写的平均 token 对数概率。这个指标直接测量“现在该不该收尾”。训练强度做了小范围对照:5e-6 变化不明显;5e-5 虽然把候选比较推到 12/12,却让开放式回答明显过度谨慎;最终采用 3e-5、4 epochs,在候选比较中得到 11/12,保留集仍为 8/8。还尝试加入 8 条、再减到 4 条“已完成任务控制对”:开放式保留集有所恢复,但未完成任务的候选选择分别掉到 1/12 和 0/12,因此这组控制对没有纳入最终训练集。这个过程保留在各次 training_receipt.json 中,避免把一次偶然的参数结果写成结论。

解释与限制

这次小规模实验说明,轨迹前缀偏好数据可以把模型在“是否该收尾”上的选择推向正确方向,同时保留已完成任务的正常收尾。它不能证明线上 Coding Agent 的总体成功率会提高:任务只有 24 条,候选比较也不是完整环境回放。实际部署仍应加入更多任务族、真正的隐藏验收测试和通用能力回归。