【LLM论文日更】| 训练大型语言模型在连续潜在空间中进行推理

  •  论文:https://arxiv.org/pdf/2412.06769
  • 代码:暂未开源
  • 机构 :Meta
  • 领域:思维链
  • 发表:arxiv

研究背景

  1. 研究问题:这篇文章要解决的问题是如何在大语言模型(LLMs)中实现一种新的推理范式,即通过连续的潜在空间进行推理,而不是依赖于自然语言。
  2. 研究难点:该问题的研究难点包括:现有的链式思维(CoT)推理方法在生成每一步推理时需要大量的计算资源,且大多数token主要用于文本连贯性而非推理;如何在不受语言约束的情况下进行推理,并在必要时将其结果转化为自然语言。
  3. 相关工作:该问题的研究相关工作包括:CoT推理方法,即将中间推理过程以自然语言形式生成;潜在推理方法,如在变换器中进行隐藏计算。

研究方法

这篇论文提出了Coconut(链式连续思维)作为一种新的推理范式,用于解决LLMs在潜在空间中进行推理的问题。具体来说,

  1. Coconut方法概述:Coconut方法通过在传统CoT过程中引入一个简单的修改来实现潜在空间的推理。具体来说,Coconut将最后隐藏状态(即“连续思维”)直接作为下一个输入嵌入,而不是将其解码为token。

     

  2. 训练过程:在训练过程中,Coconut采用多阶段训练策略,首先在常规CoT实例上进行训练,然后在后续阶段中逐步替换语言推理步骤为连续思维。每个阶段的训练都使用语言推理链来指导训练过程。

  3. 数学推理:在数学推理任务中,使用GSM8k数据集,默认每个推理步骤使用2个连续思维。模型经过3个初始阶段和1个额外阶段进行训练,最后一个阶段完全使用连续思维进行推理。

  4. 逻辑推理:在逻辑推理任务中,使用ProntoQA和ProsQA数据集,分别使用1个和多个连续思维进行推理。模型经过6个训练阶段进行训练,最后一个阶段完全使用连续思维进行推理。

实验设计

  1. 数据集:实验使用了三个数据集:
  • 数学推理:GSM8k数据集,包含 grade school-level math problems。
  • 逻辑推理:ProntoQA数据集,包含5-hop的逻辑问题;ProsQA数据集,通过随机生成的DAG结构构建,要求模型进行大量规划和搜索。
  1. 模型:使用预训练的GPT-2作为基础模型,学习率设置为1×10−4,有效批量大小为128。
  2. 训练过程:模型经过多阶段训练,每个阶段逐步替换语言推理步骤为连续思维。训练过程中优化正常负对数似然损失,并掩蔽问题和潜在思维的损失。
  3. 推理过程:在推理过程中,直接将最后隐藏状态作为下一个输入嵌入。对于ProsQA数据集,插入<bot>和<eot>标记以封装连续思维。

结果与分析

  1. 数学推理:在GSM8k数据集上,Coconut方法的推理准确性显著高于不使用连续思维的方法(No-CoT),并且优于CoT方法。随着连续思维数量的增加,模型性能稳步提升。

  1. 逻辑推理:在ProntoQA和ProsQA数据集上,Coconut方法及其变体(如去掉课程、去掉连续思维、使用<pause>标记替代连续思维)均表现出优于CoT方法的推理能力。特别是在ProsQA数据集上,Coconut方法显著减少了推理过程中的token数量。

     

  2. 潜在推理的优势:在需要大量规划的逻辑推理任务中,Coconut方法表现出明显的优势,能够更有效地进行推理,减少错误路径的产生。

总体结论

这篇论文提出了Coconut,一种在连续潜在空间中进行推理的新范式。通过实验验证,Coconut显著提高了LLMs的推理能力,特别是在需要大量规划的逻辑推理任务中表现出色。未来的研究方向包括进一步优化潜在推理方法,并将其应用于更广泛的推理场景。

论文评价

优点与创新

  1. 提出了新的推理范式:论文引入了Coconut(连续思维链)这一新范式,通过将大型语言模型(LLMs)的最后隐藏状态作为推理状态的表示(即“连续思维”),直接将其作为下一个输入嵌入,从而在不受语言空间限制的情况下进行推理。
  2. 多阶段训练策略:借鉴了Deng等人的方法,提出了一种多阶段训练策略,有效地利用语言推理链来指导训练过程。
  3. 高效的推理模式:连续思维可以同时编码多个潜在的下一步,允许模型执行广度优先搜索(BFS),从而在推理过程中逐步消除错误路径。
  4. 实验结果显著:Coconut在某些需要大量回溯的逻辑推理任务中优于CoT,并且在推理过程中生成的标记更少。
  5. 自洽的推理机制:即使模型没有显式训练或指示以这种方式操作,也能自然发展出类似BFS的推理机制。

不足与反思

  1. 训练效率问题:尽管连续思维是完全可微分的,允许多次反向传播,但多次前向传递的顺序性质对并行性提出了挑战,未来研究需要进一步优化Coconut的训练效率。
  2. 规划密集型任务的优化:尽管Coconut在规划密集型任务中表现出色,但论文指出模型仍然需要指导才能学习到最有效的连续思维。未来工作可以通过预训练LLMs来使用连续思维,从而提高模型在不同推理场景中的泛化能力。
  3. 细粒度的移除计划:尽管iCoT的方法在训练过程中表现良好,但其更细粒度的移除计划和一些技巧可能有助于简化训练过程,未来可以将iCoT与Coconut结合作为研究方向。

关键问题及回答

问题1:Coconut方法在训练过程中如何利用多阶段训练策略来优化潜在推理?

Coconut方法采用了多阶段训练策略来优化潜在推理。具体来说,训练过程分为多个阶段,每个阶段逐步替换语言推理步骤为连续思维。在初始阶段,模型在常规的CoT实例上进行训练。随后,在后续阶段中,逐步增加连续思维的数量,同时减少语言推理步骤。每个阶段的训练都使用语言推理链来指导训练过程,确保模型能够有效地从语言推理迁移到潜在推理。这种分阶段的训练方法有助于模型逐步适应潜在空间的推理,避免了在初期阶段就面临过多的复杂推理任务。

问题2:在逻辑推理任务中,Coconut方法如何通过连续思维表现出优于传统CoT方法的能力?

在逻辑推理任务中,特别是ProsQA数据集上,Coconut方法通过连续思维表现出优于传统CoT方法的能力。具体来说,ProsQA数据集要求模型进行大量规划和搜索,而Coconut方法能够在推理过程中生成较少的token,同时保持较高的准确性。这是因为在潜在空间中,Coconut方法可以编码多个潜在的下一步,类似于广度优先搜索(BFS),从而逐步消除错误的路径,找到正确的推理路径。相比之下,传统的CoT方法在生成每一步推理时需要大量的计算资源,并且在生成token时可能会引入更多的错误。

问题3:Coconut方法在数学推理任务中的表现如何,与其他方法相比有何优势?

在数学推理任务中,Coconut方法的表现显著优于不使用连续思维的方法(No-CoT),并且优于CoT方法。具体来说,在GSM8k数据集上,Coconut方法的推理准确性更高,生成的token数量也显著减少。随着连续思维数量的增加,模型性能稳步提升,表明通过链式连续思维可以增强LLMs的推理能力。此外,Coconut方法在处理复杂的数学问题时表现出更好的泛化能力和稳定性,特别是在处理长推理链时,能够有效地减少计算资源的消耗。

参考:https://mp.weixin.qq.com/s/HAQ3CFokRzTkvWQ8MXnH0A?poc_token=HOp1aWejasZYHtbWbxHtHHGLHCTgn_AZhlSUXo8-


http://www.niftyadmin.cn/n/5800814.html

相关文章

sed正则表达式元字符 和使用示例 sed变量替换示例

在使用 sed进行查找替换是我们也是可以使用正则表达式的&#xff0c; 不过sed默认只能使用基础正则表达式&#xff0c; ? 和 <> 和()分组等这些扩展正则表达式在sed里面默认是不能用的。 sed支持的正则元字符如下&#xff1a; 元字符 作用 * 前一个字符匹配0次或…

7. petalinux 根文件系统配置(package group)

根文件系统配置&#xff08;Petalinux package group&#xff09; 当使能某个软件包组的时候&#xff0c;依赖的包也会相应被使能&#xff0c;解决依赖问题&#xff0c;在配置页面的help选项可以查看需要安装的包 每个软件包组的功能: packagegroup-petalinux-audio包含与音…

【C++】B2069 求分数序列和题目解析与优化详解

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述输入格式输出格式输入输出样例输入&#xff1a;输出&#xff1a; &#x1f4af;解题思路分析题目解题步骤 &#x1f4af;代码实现我的代码实现实现特点 老师的代码…

在iOS上游玩ONS游戏 - RenpyReader!

RenpyReader再次实现了ONS游戏的支持&#xff0c;现在RenpyReader的功能用一个图表示就是这样的&#xff1a; 一个糟糕的开发经历 原来的ONSPlayer和RenpyViewer受到之前开发账户的影响&#xff0c;导致官方下架了相关应用。 在Renpy功能实现后&#xff0c;ONS功能的APP开发…

Java课程设计:基于tomcat+jsp+sqlserver的javaweb计算机配件报价系统

一、项目介绍 前台功能模块&#xff1a;系统首页、我的信息、留言板、用户登陆、公告以及日历模块 后台功能模块&#xff1a;修改个人信息、管理员管理、注册用户管理、类别信息管理、类别信息添加、散件信息管理、散件信息添加、公告信息管理、公告信息添加 二、项目技术栈…

[1111].集成开发工具Pycharm安装与使用

所有博客大纲 后端学习大纲 Python大纲 1.下载&#xff1a; 官方下载地址 2.安装&#xff1a; 1.双击exe文件&#xff0c;然后下一步选择安装目录 2.选择桌面快捷方式及安装&#xff1a; 3.安装完成 3.启动&#xff1a; 4.设置&#xff1a; 4.1.设置运行时环境&#xff1a;…

nginx-代理服务

目录 相关指令 相关模块 安装新模块proxy_pass指令 案例 proxy_set_header指令 案例 被代理服务器配置 代理服务器配置 proxy_redirect指令 案例 服务端配置 代理服务器配置 正向代理 需求分析 环境准备 配置 主机配置 服务器配置 主配置文件 web文件配置 …

单片机:实现SYN6288语音播报(附带源码)

单片机实现SYN6288语音播报 SYN6288是一款广泛应用于语音合成的IC&#xff0c;可以通过串口与单片机&#xff08;如51系列、STM32等&#xff09;进行通信&#xff0c;实现场景化的语音播报。通过连接外部存储设备&#xff08;如SD卡&#xff09;存储语音文件或直接通过内部语音…