附录 C 训练细节

本文为论文《s1:用简单方法实现测试时计算扩展》「中文全文翻译」板块的对应章节,与「论文原文」板块同一章节一一对应,层级保持一致。

我们采用一个已经过预训练与指令微调的模型,并进一步为其进行推理微调。具体而言,我们使用 Qwen2.5-32B-Instruct (Qwen et al., 2024),它在数学任务上总体匹配或优于更大的 Qwen2.5-72B-Instruct (Qwen et al., 2024)。我们使用词元分隔符将思考阶段与作答阶段分隔开。我们用 <|im_start|>think 和 <|im_start|>answer 将思考阶段括起来;两者前后均换行。我们数据集中的样本见 §C.2。我们使用基础的微调超参数:我们以批次大小 16 训练 5 个 epoch,共 315 个梯度步。我们以 bfloat16 精度训练,学习率为 $1e-5$,在前 5%(16 步)线性预热,然后在剩余训练(299 步)中按余弦调度衰减至 0。我们使用 AdamW 优化器 (Loshchilov & Hutter, 2019),其中 $\beta_{1}=0.9,\beta_{2}=0.95$,权重衰减为 $1e-4$。我们不对问题计算损失,仅对推理轨迹与解答计算损失。我们确保序列长度足够大,以避免截断任何样本;这一设置我们在 §C.1 中进行了消融。训练在 16 块 NVIDIA H100 GPU 上仅耗时 26 分钟。

图

图 9:s1-32B 在 s1K 上的训练动态。

C.1 训练消融:序列长度

表 7:训练序列长度消融。我们报告“准确率 / 每个样本平均思考词元数”;准确率越高、思考词元越少(推理成本越低)越好。

除了 §5.2 中的扩展消融之外,我们消融的主要训练超参数是训练时使用的序列长度。我们发现,较短的训练序列长度会导致测试时更长的推理轨迹。这是因为当以较短的序列长度训练时,训练样本的作答部分更常被截断。反之,当训练序列长度更长时,更多样本以其完整形式出现,包含模型作答的部分。因此,模型接收到更多梯度更新,从而学会在其推理链之后生成答案。这进而导致在生成的任何阶段答案部分的对数概率更高,从而在测试时产生更短的推理轨迹。在性能方面,我们发现使用不同的序列长度训练并没有显著差异,因此我们选择了最长的训练序列长度,因为它通过带来更短的推理轨迹而使推理更高效。

C.2 训练样本

,表 9、表 10 包含了来自 s1K 的训练样本。

表 8:源自 s1-prob 的 s1K 样本。黑色文本是问题,黄色文本是解答。我们仅依据问题,用 Gemini 生成浅蓝色的推理轨迹与蓝色的回复,用于训练。

表 9:源自 s1-teasers 的 s1K 样本。黑色文本是问题,黄色文本是解答。我们仅依据问题,用 Gemini 生成浅蓝色的推理轨迹与蓝色的回复,用于训练。

表 10:源自 OlympicArena 天文子集的 s1K 样本。黑色文本是问题,蓝色文本是解答。我们仅依据问题,用 Gemini 生成浅蓝色的推理轨迹与蓝色的回复,用于训练。