auto-cot
Auto-CoT:让大模型自动生成多样化思维链示例,显著提升推理准确率
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Auto-CoT:让大模型自动生成多样化思维链示例,显著提升推理准确率
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否有过这样的体验——问大语言模型一道数学题,它总是"秒答",却频频出错?明明模型参数庞大、能力惊人,偏偏在需要多步推理的任务上翻车。一个广泛流传的破解方法是思维链提示(Chain of Thought, CoT):在提问时给模型附上一个"思考示例",让它一步步推理,最终答案准确率大幅提升。
但问题来了:这个"思考示例"该怎么写? 人工设计高质量的思维链示例耗时耗力,不同任务还需要重新设计。Amazon Science 的 Auto-CoT 方法横空出世——让模型自己从题库里自动生成多样化的推理示例,无需人工标注,效果甚至超越人工设计。
图1:Auto-CoT 与其他方法的性能对比

图1:Auto-CoT 在多个推理基准数据集上的准确率对比。横轴为不同数据集,纵轴为准确率(%)。Auto-CoT(红线)在大多数数据集上接近甚至超越人工设计的思维链(Manual CoT)。
Auto-CoT 的核心洞察非常朴素:好的推理示例,不在于"标准答案"本身,而在于"推理过程"的多样性。 传统的 few-shot CoT 需要专家精心编写每一步推理,成本高且难以规模化。Auto-CoT 提出两阶段自动流程:问题聚类 + 演示采样。
第一阶段,研究者将目标测试集的所有问题,用语言模型提取问题特征向量,随后用 k-means 算法将其划分为若干类别。这一步确保最终选取的演示问题能覆盖测试题的各种类型,不会让模型只学到某一类问题的套路。
第二阶段,对每个类别内的候选问题,让语言模型自行生成候选推理链(利用 GPT-3 等模型的 zero-shot CoT 能力,即"Let's think step by step"),然后从生成结果中选取推理正确的样本作为演示示例。这里有一个关键设计——作者发现,多样性与正确性同样重要:即使某个推理示例答案错了,只要它能代表一类问题的特征,有时反而比一个"标准但无趣"的示例更有价值。
图2:Auto-CoT 的完整 pipeline

图2:Auto-CoT 工作流程图。左侧为问题聚类阶段(Question Clustering),右侧为演示采样阶段(Demonstration Sampling)。最终选取 k 个多样化且推理正确的示例,注入 LLM 的上下文窗口。
Auto-CoT 最令人惊喜的特性是零样本推理能力——对于测试时遇到的新问题,模型并不需要针对该问题类型准备答案,而是依赖Few-shot 示例中的推理模式来泛化。具体来说:
Auto-CoT 面向AI 研究者和 NLP 工程师。如果你正在构建需要复杂推理能力的 LLM 应用(如数学问答、代码生成、多跳推理),Auto-CoT 提供了一个低成本的提示工程基线。 上手门槛:需要一定 Python 基础,熟悉 OpenAI API 调用,能访问 kojima-takeshi188/zero_shot_cot 仓库的数据集。代码本身结构清晰,run_demo.py 构建演示,run_inference.py 执行推理,模块化程度高,代码可读性不错。 局限性也有必要提及:Auto-CoT 依赖外部大模型(GPT-3)来生成推理链,如果 API 不稳定或成本较高,实验复现会有障碍。项目目前仅支持 OpenAI API,暂不支持本地部署的 LLM(如 LLaMA、ChatGLM),对于需要本地化部署的场景并不友好。此外,演示的自动筛选策略仍有改进空间。
项目代码结构精简,核心模块:
Auto-CoT 是提示工程(Prompt Engineering)领域的一篇里程碑论文(ICLR 2023),被引用超过 1500 次。它首次系统性地证明了自动生成思维链的可行性,为后续研究(如 Self-Consistency、Tree of Thoughts)奠定了基础。Auto-CoT 的核心思想——"多样性与正确性并重"——已经成为 Prompt 自动化领域的主流范式。 对于希望提升 LLM 推理能力的开发者,Auto-CoT 提供了一个可靠的基线。无需训练新模型,只需在 prompt 层面做文章,就能获得显著收益。这条路线的兴起,也让"提示工程师"这个角色变得更加专业化和技术化。