这道题,说白了就是在问:当我们只有最终答案对错这种粗糙信号,没有中间推理步骤的标注时,怎么让大模型自己学会生成简洁有效的推理链,而不是啰里啰嗦写一堆。核心是先建立可核验的任务信号,再比较推理质量与输出长度。
我重点讲两个方向。先说训练方法。STaR用少量带推理示例生成推理与答案,筛选答案正确的样本再训练推理生成;它不是mask掉所有推理token。Quiet-STaR研究的是在一般文本多个位置产生潜在思考,并依据后续token预测效果训练。两者的监督与目标不同,不能把仅做输入到答案SFT叫作这两种方法,也不能据此声称已经学会内部演算。
另一个方向是长度控制。在线强化学习可以给可验证正确性奖励附加长度成本,但不保证自动找到最短推理。标准[[DPO]]直接训练偏好对,没有外置reward调用;可以把正确且简洁的回答作为偏好样本,仍要检查长度偏差与准确率。还可以限制推理分布和简洁先验的 KL散度,防止它过度展开。这里有个前提是 reward 信号要足够准确,如果答案对错本身就有噪声,那惩罚可能会把正确的长推理也砍掉。
再说提示策略,这个在[[零样本]]和[[少样本]]场景下更直接。比如我可以在 system prompt 里写“用3个关键词思考,然后直接回答”,或者“推理部分不超过20个字”。给 few-shot 示例时,只给输入和输出,不给中间步骤,这样模型会模仿这种隐式推理风格。
举个例子,在客服退款场景里,用户问“我买了东西但没收到,能退款吗”,如果模型写一大段推理“用户未收到货,根据规则第5条,需要先联系物流,确认丢件后发起退款”,虽然准确但用户等不及。更简洁的做法是只输出“可以,请提供订单号,我们核实后为您办理”,把推理留在内部。但这里有个风险:如果模型内部推理错了,直接输出结论就没法调试。所以落地时我会特别关注一个点,准确性 vs 简洁性的平衡。我会在验证集上调那个长度惩罚系数 α,找到能保持准确率不降的临界点。
额外的自检也要验证。Self-RAG研究检索与反思token,不能直接当作通用推理置信度计。若要基于不确定性追加解释,应先校准信号,再看它是否确实减少错误。
所以整体上,我更倾向于把这两种方法结合起来:先比较直接分类与经过验证的推理样本,再按明确的在线RL或偏好优化目标控制长度,提示用于约束可见输出风格。上线后我会持续监控准确率和平均推理长度,一旦发现简洁性导致准确率下降,就回退到带摘要的版本。