s1: simple test-time scaling
摘要 test-time scaling 利用额外的测试时计算来提高性能。最近,OpenAI 的 o1 模型展示了这种能力,但没有公开分享其方法,这导致了许多复制尝试。 我们寻求实现测试时缩放和强大推理性能的最简单方法。首先,我们策划了一个==小型数据集 s1K==,其中包含 1000 个问题,并配有推理过程的轨迹,这些轨迹基于我们通过消融实验验证的三个标准:难度、多样性和质量。其次,我们开发了==预算强制方法来控制测试时计算,具体做法是强制终止模型的思考过程,或者在模型尝试结束时通过多次附加“等待”来延长其思考过程。这可以引导模型仔细检查其答案,通常会修正不正确的推理步骤==。在对 s1K 上的 Qwen2.5-32B-Instruct 大语言模型进行监督微调,并为其配备预算强制后,我们的模型 s1-32B 在竞赛数学问题上的表现比 o1-preview 高出 27%(MATH 和 AIME24)。此外,使用预算强制缩放 s1-32B 允许在没有测试时干预的情况下将其性能外推:在 AIME24 上从 50% 提高到 57%。 引言 DeepSeek R1 成功地复制了 o1 级别的性能,也采用了通过数百万样本和多个训练阶段的强化学习。然而,尽管有大量的 o1 复制尝试,但没有一个公开复制了清晰的测试时缩放行为。 因此,我们提出问题:==实现test-time scaling和强大的推理性能的最简单方法是什么?== 我们证明,仅使用1000个样本进行下一个 Token 预测训练,并通过一种简单的测试时技术(我们称之为预算强制)来控制思考时长,可以得到一个强大的推理模型,其性能随着测试时计算量的增加而扩展。具体来说,我们构建了 s1K,它包含1000个精心策划的问题,这些问题与从 Gemini Thinking Experimental 中提取的推理轨迹和答案配对。我们对一个现成的预训练模型在我们的少量数据集上进行了监督微调(SFT),仅需在 16 个 H100 GPU 上训练 26 分钟。训练后,我们使用预算强制来控制模型在测试时花费的计算量: (I) 如果模型生成的思考 Token 超过了期望的限制,我们将通过附加一个思考结束 Token 分隔符来强制结束思考过程。以这种方式结束思考会使模型过渡到生成答案。 (II) 如果我们希望模型在问题上花费更多的测试时计算量,我们会抑制思考结束 Token 分隔符的生成,而是将“等待”附加到模型当前的推理轨迹中,以鼓励更多的探索。 有了这个简单的配方——在 1000 个样本上进行 SFT 和测试时预算强制——我们的模型 s1-32B 表现出测试时扩展。此外,s1-32B 是最节省样本的推理模型,并且优于像 OpenAI 的 o1-preview 这样的闭源模型 。我们进行了广泛的消融实验,目标是 (a) 我们选择的 1000 个 (1K) 推理样本和 (b) 我们的测试时扩展。对于 (a),我们发现将难度、多样性和质量度量共同纳入我们的选择算法非常重要。随机选择、选择具有最长推理轨迹的样本或仅选择最大多样性的样本都会导致性能显著下降(在 AIME24 上平均下降约 ->30%)。在我们包含 59K 个示例的完整数据池(s1K 的超集)上进行训练,并不能比我们的 1K 选择提供实质性的提升。这突出了仔细数据选择的重要性,并呼应了先前关于指令微调的发现。对于 (b),我们为测试时扩展方法定义了期望,以比较不同的方法。预算强制导致最佳的扩展,因为它具有完美的控制性,并且具有清晰的正斜率,从而带来强大的性能。 ...