LoCo:在“想多了”的那一步教推理模型收尾(Think Less, Locally: Local Preference Learning for Reasoning Compression)

一种压缩思维链长度的偏好学习方法。它不笼统地奖励短答案,而是从模型自己的推理轨迹里找出“信息已经够了还在想”的候选状态,冻结到这一步为止的推理前缀,从同一状态重新生成更短、答案经过验证的续写,组成“同一状态下继续想 vs 收尾”的偏好对,再用 DPO 训练,让模型学会什么时候该停。训练数据全部来自模型自产的数学推理轨迹。

一种压缩思维链长度的偏好学习方法。它不笼统地奖励短答案,而是从模型自己的推理轨迹里找出“信息已经够了还在想”的候选状态,冻结到这一步为止的推理前缀,从同一状态重新生成更短、答案经过验证的续写,组成“同一状态下继续想 vs 收尾”的偏好对,再用 DPO 训练,让模型学会什么时候该停。训练数据全部来自模型自产的数学推理轨迹。

点赞 65 · 代码星数 6

理由

  • 作者称在五个数学和三个代码基准上,数学输出长度减少 41.7%–45.4%、代码减少 23.4%–36.3%,准确率持平或提升,代码基准上的 AUC 全部最好;只用数学数据训练也能迁移到代码。
  • 权重已放:抱脸 MuyaoYuan/LoCo-7B(DeepSeek-R1-Distill-Qwen-7B 的压缩版,MIT),vLLM 可直接加载;仓库有造数据、训练、评测全流程,代码 MIT。
  • 抱脸当日点赞第三(只代表关注度);“只在过度思考的状态上做偏好对”的造数据方式不绑定模型,可以搬到别的推理模型上。

用法

  • 直接用:vLLM 加载 MuyaoYuan/LoCo-7B(模型卡示例 max_model_len=36864、temperature 0.6、top_p 0.95、max_tokens 32768),提示词末尾要求逐步推理并把答案放进 \boxed{}。
  • 自己造数据:下载底模 DeepSeek-R1-Distill-Qwen-7B 和评判模型 Qwen3-30B-A3B-Instruct-2507,在仓库自带的 math14k 题库上依次跑 construction/ 下 1_rollout 到 6_build_dpo 六步脚本,得到 out/6_build_dpo/dpo.jsonl。
  • 训练与评测:bash script/train/run.sh(默认 4 卡、2 轮、DeepSpeed ZeRO-2),python train/merge.py 把 LoRA 合并进底模,bash script/eval/run.sh math500 或 aime24 aime25 评测。

风险

  • 只放了一个 7B 检查点,底模是较早的 R1 蒸馏模型;换别的推理模型要自己重跑造数据和训练,造数据还要一个 30B 级评判模型。
  • 开发环境是 NVIDIA H20、CUDA 12.8、Python 3.12,依赖版本锁得很死(vllm 0.23.0、trl 0.29.1 等)。
  • 长度和准确率数字为作者报告;论文只评测了数学和代码,开放式对话里会不会过早收尾没有数据。

打开 · 代码 · 抱脸论文页

Hugging Face Daily Papers

浏览最新 AI 动态