UT:CoT在LLM推理的机制分析

在这里插入图片描述

📖标题:To CoT or not to CoT? Chain-of-thought helps mainly on math and symbolic reasoning
🌐来源:arXiv, 2409.12183

摘要

🔸通过提示的思维链(CoT)是从大型语言模型(LLM)中获取推理能力的事实上的方法。但是,对于什么样的任务,这种额外的“思考”真的有帮助呢?为了分析这一点,我们使用CoT对100多篇论文进行了定量荟萃分析,并对14个模型中的20个数据集进行了自己的评估。
🔸我们的结果表明,CoT主要在涉及数学或逻辑的任务上提供了强大的性能优势,在其他类型的任务上获得的收益要小得多。在MMLU上,直接生成答案而不使用CoT会导致与CoT几乎相同的准确性,除非问题或模型的响应包含等号,表示符号操作和推理。
🔸根据这一发现,我们通过将计划和执行分开,并与工具增强的LLM进行比较,分析了CoT在这些问题上的行为。CoT的大部分收益来自于改进符号执行,但与使用符号求解器相比,它的表现不佳。我们的结果表明,CoT可以选择性地应用,在保持性能的同时节省推理成本。此外,他们建议需要超越基于提示的CoT,转向在整个LLM应用程序中更好地利用中间计算的新范式。

🛎️文章简介

🔸研究问题:为什么思维链(CoT)在数学和符号推理问题上表现更好,而在其他问题上效果不明显?
🔸主要贡献:论文通过实验分析,揭示了CoT在数学和符号推理任务中的具体作用,并比较了不同模型和方法的性能。

📝重点思路

🔺相关工作

🔸CoT:是一种广泛使用的从语言模型中引出推理的提示技术,通常被用来通过中间计算回答复杂问题。
🔸CoT评估:目前主要在数学领域做了评估,研究表明在数学以外的领域可能无效。

🔺论文方案

🔸系统元分析:首先对近期文献进行了系统的元分析,比较了CoT与直接回答(DA)在不同任务中的表现。
🔸实验设计:在元分析的基础上,进行了扩展实验,涵盖了20个数据集和14个大语言模型(LLM),在零样本(zero-shot)和少样本(few-shot)提示设置下进行测试。
🔸数据集分类:将数据集分为不同的推理类别,包括常识推理、知识推理、符号推理、数学推理和软推理,以系统地评估CoT在不同类型任务中的表现。
🔸提示策略探索:探索了多种提示策略,以激发语言模型的推理能力,尽管发现不同提示策略之间的性能差异不大。

🔎分析总结

🔸答案格式对CoT的影响不大,远不如预先计划或推理正确反应的影响。
🔸CoT主要在数学和符号推理中有效,而在其他类型的任务中效果有限。
🔸尽管CoT在非数学任务中的总体效果不佳,但在某些与逻辑、数学或符号推理相关的任务中(如BBH),CoT仍显示出一定的优势,原因在于能够执行符号步骤并跟踪其输出。
🔸CoT在符号推理任务中受到工具增强的限制,仅靠规划并不能提高收益,依赖与外部求解器,包括工具求解和符号求解。

💡个人观点

论文通的核心是分析CoT在不同任务类型中的作用,并得出CoT的优势是执行“计算”的步骤和获取中间输出。

附录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### COT注意力机制详解 #### 概念定义 COTAttention(Cross-Object Talk Attention),作为一种先进的注意力机制,在处理多模态数据方面表现出显著优势。该机制不仅限于传统单一类型的输入,而是特别适用于涉及图像和文本等多种形式的数据集合作业环境[^3]。 #### 工作原理 核心理念在于通过增强不同对象间的交互来提升模型性能。具体而言,对于给定的一组视觉元素及其对应的描述性语句,COTAttention可以动态调整关注焦点,使得那些对当前任务更为重要的部分获得更高的权重。这种能力源于其独特的架构设计——即允许跨通道的信息交流以及基于上下文感知的选择性激活机制。 为了更清晰地理解这一过程,下面给出一段伪代码表示如何在一个简单的框架内实现这样的功能: ```python class CoTAttention(nn.Module): def __init__(self, dim_in, dim_out=None, heads=8, dropout=0.1): super().__init__() self.scale = (dim_in // heads) ** -0.5 # 定义线性变换层和其他必要组件... def forward(self, x, context=None): b, n, _, h = *x.shape, self.heads qkv = self.to_qkv(x).chunk(3, dim=-1) if context is not None: k, v = map(lambda t: rearrange(t, 'b n d -> b d n'), (context['key'], context['value'])) else: k, v = map(lambda t: repeat(t, '() n d -> b n d', b=b), (torch.eye(n), torch.zeros((n,)))) dots = einsum('b i d, b j d -> b i j', q, k) * self.scale attn = softmax(dots, axis=-1) out = einsum('b i j, b j d -> b i d', attn, v) return self.to_out(out) ``` 此段代码展示了如何构建一个多头版本的COTAttention模块,并且支持外部提供额外背景信息作为辅助决策依据的功能。值得注意的是,这里采用了`einops`库中的函数来进行张量操作,这有助于提高代码可读性和灵活性。 #### 应用实例 在实际应用场景中,COTAttention被广泛应用于诸如视觉问答(VQA)等领域。相比于其他同类技术如CBAM、SE等,实验结果显示采用COTAttention方案可以在多个公开测试集中取得更好的成绩,证明了这种方法的有效性和优越性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大模型任我行

随意啦,喜欢就好~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值