前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >代码数据会促进LLM的推理能力吗?

代码数据会促进LLM的推理能力吗?

作者头像
zenRRan
发布2023-09-11 14:42:01
4480
发布2023-09-11 14:42:01
举报
文章被收录于专栏:深度学习自然语言处理

深度学习自然语言处理 原创 作者:Winnie

代码数据对提升LLM的推理能力有效吗?为了解答这个问题,最近的一篇工作提出了CIRS(复杂度影响推理分数)这一新的指标,用来衡量代码数据的复杂性,进而验证不同复杂度的代码数据与LLM推理能力的关系。让我们一起来看看有什么有趣的发现吧。

💡什么是PoT(Program-of-Thought)?

在介绍这篇论文之前,先让我们回顾一下PoT(Program-of-Thought)。它是一种解决数值推理任务的方法,将计算和推理两个任务分离开来。具体来说,PoT将问题简化成编程逻辑,并用额外的语言解释器,例如用Python进行编译,得出结果。这种方法能够在几个数学数据集上显著提高了性能,超过了CoT的表现。

下图是CoT与PoT方法的对比。

🤔PoT什么条件下有效?

PoT虽然有所表现,但在什么条件下,它最能提升推理能力?为了解答这个问题,研究者提出了CIRS这一新指标。CIRS的目标是通过量化代码的结构和逻辑复杂度,来探讨它们如何影响LLM的推理能力。

🧮如何计算CIRS?

我们假定代码数据可以提升LLM推理能力,是由于下面两个原因:

  • 结构上,与自然语言相比,代码具有复杂结构建模能力;
  • 逻辑上,代码面向过程的逻辑有助于解决多步推理问题。

因此,CIRS计算代码复杂度从结构和逻辑两个方面衡量。

  • 结构上:用一种叫做“抽象语法树”(AST)的技术来编码代码的结构信息。
  • 逻辑上:通过计算代码中操作数和运算符的数量来衡量代码逻辑的复杂度。

最后,CIRS指标就是结构复杂度和逻辑复杂度的乘积。CIRS给了我们一个全面但直观的量化方式,来观察代码复杂度对LLM推理能力的影响。

📈代码数据的影响评估

研究进行了以下实验:

  • 首先进行数据合成,并用CIRS计算代码数据的复杂度,根据计算结果,将数据分成三个不同的子集;
  • 基于LLAMA1.0版本训练了三个不同参数大小的模型,从每个子集中随机选择1,700个实例来构建训练和验证数据集,验证不同复杂度的代码数据对模型性能的影响;
  • 最后利用自动合成和分层算法,并以最有效的复杂度评估其在过滤数据上的性能,从源数据集过滤掉更多数据来训练增强的推理模型。

实验结果有几个关键发现:

1️⃣ 适度复杂度最佳:如果代码数据过于简单或复杂,LLM的推理能力反而会受到限制。

2️⃣ 参数越多越好:大型LLM(比如有750亿参数)在推理任务上表现得更出色。

3️⃣ 局限:当代码过于复杂,即使是大型LLM也难以理解和推理。

🚀 总结

尽管PoT在一些数据集上取得了比CoT更好的结果,但我们依然不清楚这种方法是如何促进推理的。这一研究是一个初步的尝试,不仅探索了代码数据对LLM推理能力的影响,还为如何设计更有效的推理模型提供了新的思路。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 💡什么是PoT(Program-of-Thought)?
  • 🤔PoT什么条件下有效?
  • 🧮如何计算CIRS?
  • 📈代码数据的影响评估
  • 🚀 总结
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档