COT

104 阅读3分钟

1、在LLM时代做好prompt的设计也是一种贡献,但是设计背后的核心思想需要有意义且有新意,而且往往需要大量工程上的尝试和验证

2、利用LLM生成更高质量reasoning chains的技巧:

  • 要求模型先将原问题分解
  • 调大LLM decoding的temperature参数以生成更多reasoning paths,采用投票的方式选出最佳的path
  • 给出一些demonstrations(“Few-Shot-CoT” rather than “Zero-Shot-CoT”)
  • 选择更“好”的exemplars:diversity-based,uncertainty-based

3、利用中小模型做reasoning:

  • 小模型常识知识、逻辑能力欠缺,不适合直接用于推理
  • LLM可以为小模型提供外源知识,也可以通过蒸馏的方式将LLM的CoT能力赋予小模型
  • 在用大模型生成的rationales训小模型时,rationales的质量和数量都很重要
    • 保证质量的方法:answer filtering
    • 保证数量的方法:rationalization,diverse reasoning

4、Chain-of-thought来源于NLP reasoning任务,但可以应用到更广泛的领域

Chain-of-Thought(CoT)Prompting 应用于中小规模模型(如 <10B 参数的模型)是一项具有挑战性但研究价值很高的方向。原因在于:CoT 是一种涌现能力,大多数情况下只有在 大模型(如 GPT-3 175B)及以上 才能充分发挥。但对于中小模型,我们可以通过一些策略让其更好地“学会”使用 CoT

下面我从几个角度详细介绍:


✅ 一、为什么中小模型难以原生支持 CoT?

✖ 原因 1:推理能力弱,难以自己“编造”合理的思维链

  • 小模型没有足够参数去模拟逻辑推理链条;
  • 即使你提示了 CoT 示例,它可能仍无法复制正确的步骤。

✖ 原因 2:训练中缺少“中间步骤”的监督

  • 大多数预训练数据只有问题和答案(Q-A),而非完整的推理过程;
  • CoT 需要“过程监督”,中小模型通常未接触过这种格式。

✅ 二、有哪些办法能让中小模型也用上 CoT?

✅ 方法 1:Fine-tune with CoT data(用思维链数据微调)

  • 用专门标注了“推理过程”的训练数据(如 GSM8K-CoT 格式)来微调模型;
  • 如下所示:
Q: Tom has 3 pens. Each costs 2 dollars. How much in total?
A: He has 3 pens and each costs 2 dollars, so 3 × 2 = 6 dollars.
  • 微调目标是让模型学会“模仿推理格式”。

📌 常用数据集:


✅ 方法 2:使用生成式大模型生成 CoT 样例 → 拿来微调中小模型

  • 使用 GPT-4 / Claude 3 / Gemini 等大模型,自动为原问题生成 CoT 格式的标注;
  • 将这些“伪标注思维链”作为训练数据喂给中小模型;
  • 称为 “Distilled CoT” 或 “Self-Generated CoT”。

📌 代表方法:

  • Self-Ask, Auto-CoT, LLaMA-CoT, Tiny-CoT

✅ 方法 3:结构引导 + prompt 工程优化

即使不微调,也可以尝试:

  • 手动设计 简洁清晰的 CoT 示例
  • 使用 “Let's think step by step”、"First... then..." 等 prompt 模板
  • 减少任务复杂度,让模型能完成每一步

📌 示例:

Q: Lisa has 5 boxes. Each box contains 4 candies. How many candies does she have in total?
A: First, find how many candies in total. 5 × 4 = 20. Answer: 20

✅ 三、实际研究成果

方法模型规模成果
LLaMA-CoT7B微调后可完成简单数学推理
Tiny-CoT1.3B基于 Distilled CoT 微调后提升显著
Self-Ask2.7B使用自问方式引导思维链生成

✅ 四、总结建议:中小模型使用 CoT 的推荐路径

阶段推荐方法
✅ 纯提示使用 hand-crafted CoT prompt + 魔法词
✅ 微调收集 CoT 样本 + 微调中小模型
✅ 蒸馏迁移用大模型生成 CoT 数据 + 迁移到小模型

如果你告诉我你用的具体模型(比如 LLaMA2-7B、ChatGLM、Qwen、Mistral 等),我可以给出具体的微调方案、CoT 数据集来源,以及推理流程设计建议。需要吗?