当前位置: 首页 > news >正文

草稿链(CoD):提示词技术的新王者

深入探讨全新的草稿链(CoD)提示法,它不仅性能优于思维链(CoT)提示法,还能以前所未有的幅度降低LLM的推理成本和延迟。

推理型大语言模型(LLM)是当今AI研究的热门话题。我们从GPT-1一路发展到Grok-3这样的高级推理模型。

这段历程令人瞩目,期间发现了一些非常重要的推理方法。

其中之一便是思维链(CoT)提示法(少样本和零样本),它在很大程度上推动了我们如今所见的LLM推理革命。

令人兴奋的是,Zoom通信公司的研究人员发表了一种更优的技术。这种名为草稿链(CoD)提示法的技术,在准确性上超过了CoT提示法,回答查询时仅使用全部推理 tokens 的7.6%。

使用直接回答(标准)、思维链(CoT)和草稿链(CoD)提示Claude 3.5 Sonnet解决不同推理领域任务时的准确性和token使用情况对比

对于目前存在冗余表达、需要大量计算时间且延迟较高的推理型LLM而言,这是一个重大突破——这些问题在许多现实世界的时间敏感型应用中都是瓶颈。

本文将深入探讨草稿链(CoD)提示法的工作原理,以及如何利用它让你的LLM在准确性和token效率上达到前所未有的水平。

但首先,我们来谈谈提示法

研究人员不断在LLM中发现新的行为。

Transformer架构为我们带来了生成式预训练Transformer(即GPT),不久后我们发现,将其扩展到GPT-2(15亿参数)时,它能充当无监督多任务学习器(无需在特定任务数据集上进行监督学习/微调就能执行多项任务)。

随着进一步扩展到GPT-3(1750亿参数),研究发现该模型只需在输入提示中提供几个示例(少样本提示法),就能快速适应并出色完成新任务。

随后,研究人员发现,将问题解决过程分解为中间推理步骤,并提示大语言模型(LLM)生成这些步骤,能在算术、常识和符号推理任务中实现最先进的性能。

这种方法被称为思维链(CoT)提示法。

标准提示法与思维链提示法示例

在CoT之后,人们很快发现LLM是零样本推理器。

与原始的CoT提示法不同,要获得更好的性能,无需用少样本推理示例来提示它们。

只需在提示中添加“让我们一步一步思考”这句话,就能让它们在解决问题时进行逐步推理。

这种方法被称为零样本思维链提示法。

标准零样本提示法与少样本提示法、原始CoT提示法(标注为“(b) 少样本-CoT”)和零样本CoT提示法的对比

研究人员随后意识到,链式推理并贪婪解码以得到答案是不够的。复杂的推理任务可能存在多条通向正确答案的推理路径,而如果多条路径都指向同一个答案,我们就能确信最终答案是正确的。

这催生了一种新的解码策略,称为自一致性,它通过对模型进行采样来生成多条推理路径,并从中选择最一致的答案。

CoT提示法中的贪婪解码与自一致性对比

提示词架构的发展之路

在这种考虑问题解决中多条推理路径的方法之后,人们提出了“思维树”(Tree-of-Thoughts,ToT)框架,它通过类树状的思维过程探索解决方案空间。

思维树框架

它将称为“想法”的语言序列用作解决问题时的中间步骤。通过带有前瞻和必要时回溯的搜索算法对这些想法进行评估和探索。

各种推理方法对比

树状架构后来被图状架构取代,由此产生了“思维图”框架,以更好地对解决方案空间进行建模。

思维图与其他推理方法的对比

但这还不是全部!

提示法并非帮助LLM更好推理的唯一方式,还有许多其他技术。

但延迟问题怎么办?

探索推理空间是一项计算密集型任务,会增加响应延迟。

为此,人们提出了一种名为“思维骨架”(Skeleton-of-Thought,SoT)的延迟降低方法,它首先引导LLM生成答案的骨架/大纲,然后通过并行API调用/批量解码来并行完成每个骨架要点的内容。

思维骨架(SoT)与标准解码的概述对比

推理模型还可能在简单问题上“过度思考”,生成不必要的推理token,导致查询到响应的时间过长。

针对问题“2加3的答案是什么?”生成的token

QwQ-32-B-Preview模型为了解决2加3这个简单问题而进行的推理,是不是很不可思议?

QwQ-32-B-Preview在简单算术问题上的过度思考

研究人员尝试通过限制推理token预算来解决这个问题,但LLM往往不遵守这一限制。

还有人使用额外的LLM,在回答问题前根据问题的复杂性动态估算不同问题的token预算,但这会进一步增加响应延迟。

带有估算和提示的token预算感知LLM推理(TALE)概述

我们能否结合所有这些见解,并以某种方式将其简化为一种单一方法?

“草稿链”(Chain-of-Draft)提示法登场

回归基础,思维链(Chain-of-Thought,CoT)是一种非常出色的提示方法,能让LLM更好地进行推理。然而,它存在冗余问题——LLM在得出答案前会生成数千个推理token。

这与人类的思考和推理方式大不相同。我们在思考时,不会用冗长的语言进行推理,而是通常会记下最关键的中间要点(草稿)。这正是Chain-of-Draft(CoD)提示法的灵感来源。

它只是要求模型逐步思考,且每个推理步骤最多限制在5个词以内。为确保模型理解这一点,研究人员手动编写了此类Chain-of-Draft的少样本示例,并将其纳入提示中。令人惊讶的是,这种限制并未以任何方式强制执行,而只是作为一般指导原则提示给模型。

这与标准的少样本提示法不同:在标准少样本提示法中,提示中会给出查询-响应对,且要求模型直接返回最终答案,无需任何推理或解释。这也与思维链提示法不同:在思维链提示法中,提示的查询-响应对中会包含中间推理步骤,然后要求模型回答问题。

通过下方图片,能更清晰地理解这些方法之间的差异——图片中展示了用LLM解决一个简单算术问题时的不同情况。

CoD提示法的性能如何?

为评估CoD提示法,研究人员使用上述三种方法对GPT-4o和Claude 3.5 Sonnet进行了提示测试。每种提示方法给这些模型的系统提示如下方图片所示。

标准提示法、CoT提示法和CoD提示法的系统提示

在算术推理数据集GSM8K上,CoD的准确率达到91%,同时比CoT少用80%的token,在几乎不损失准确率的情况下降低了延迟(对于GPT-4o,CoD的准确率为91.1%,CoT为95.4%)。

不同提示技术在GSM8K上的评估结果

在常识推理方面,通过BIG-bench任务中的日期理解和体育理解任务进行测试,CoD在显著降低延迟和token使用量的同时,准确率与CoT相当甚至更高。

BIG-bench任务中日期理解的评估结果

值得注意的是,在体育理解任务中,当使用Claude 3.5 Sonnet时,CoD将CoT提示法的平均输出token从189.4大幅减少到14.3(减少了92.4%)!

BIG-bench任务中体育理解的评估结果

最后,在硬币翻转这一符号推理任务(预测一系列翻转后硬币的最终状态)中,CoD的准确率达到100%,且使用的token明显少于其他方法。

研究人员创建的硬币翻转数据集中的一个问题示例

在研究人员创建的包含250个测试案例的自定义数据集上,硬币翻转任务的评估结果

这些结果简直令人惊叹!CoD提示法能在实现极高准确率的同时将延迟降至最低,减少响应时间,这对时间/计算敏感型应用非常有利。

此类CoD数据还可用于训练LLM,使其推理能力更强(基于DeepSeek-R1强化学习训练方法),从而让LLM更快、更经济、更高效且更具可扩展性。

http://www.lryc.cn/news/626530.html

相关文章:

  • 个人使用AI开发的《PlSqlRewrite4GaussDB(PLSQL自动转换工具)1.0.1 BETA》发布
  • 【考研408数据结构-09】 图论进阶:最短路径与最小生成树
  • 【Obsidian插件】HiNote
  • iOS开发之UICollectionView为什么需要配合UICollectionViewFlowLayout使用
  • 数据结构-有序二叉树
  • 【机器学习深度学习】Ollama、vLLM、LMDeploy对比:选择适合你的 LLM 推理框架
  • HTML应用指南:利用POST请求获取全国刘文祥麻辣烫门店位置信息
  • 学习threejs,打造宇宙星云背景
  • 数据结构 二叉树 二叉树链式结构的实现
  • 大规模IP轮换对网站的影响(服务器压力、风控)
  • 测试环境搭建和部署(在Linux环境下搭建jdk+Tomcat+mysql环境和项目包的部署)
  • 【39】OpenCV C++实战篇——直线拟合、直线测距、平行线段测距;(边缘检测,剔除噪点,轮廓检测,渐进概率霍夫直线)
  • 本地文件上传到gitee仓库的详细步骤
  • Wireshark捕获电脑与路由器通信数据,绘制波形观察
  • C语言第十章内存函数
  • python numpy.random的基础教程(附opencv 图片转数组、数组转图片)
  • Dog Tricks
  • vue3项目,main.ts中设置router,在各个页面上还用引用vue-router吗
  • 性能测试报告深度解析:从冰冷数据到火热洞察
  • Flink学习
  • 详解flink java table api基础(三)
  • 2.3 Flink的核心概念解析
  • 24V降12V电源芯片WD5030,电路设计
  • linux 内核 - 内存管理单元(MMU)与地址翻译(一)
  • Flink Stream API - 顶层Operator接口StreamOperator源码超详细讲解
  • 软件测试中,JMeter 的作用以及优缺点是什么?
  • 【报错】Please do not run this script with sudo bash
  • three.js学习记录(第四节:材质外观)
  • Git 新手完全指南(二):在vscode中使用git
  • 【图像算法 - 19】慧眼识苗:基于深度学习与OpenCV的大棚农作物生长情况智能识别检测系统