分而治之?如何高效提炼大型语言模型的推理能力

news2024/11/13 9:01:37

人工智能咨询培训老师叶梓 转载标明出处

虽然大模型(如GPT-4)在开放域问答(ODQA)、数学、科学以及自主智能体等领域展现出了非凡的推理能力,但是这些模型在进行复杂推理时,往往需要处理大量的参数,导致推理成本高昂。而且由于模型的不透明性,它们在适应特定任务时的灵活性受限。为了解决这一问题,密歇根大学和苹果公司的研究人员提出了一种新策略,旨在通过分解问题解决过程,提高推理效率并降低成本。

使用大型黑盒语言模型(LLM)进行长推理链路的成本和不灵活性。它提出了将任务分解和求解分开,并只蒸馏分解能力到成本更低、更灵活的学生模型中,同时保持原始性能

研究方法

研究者提出了一种两阶段策略:问题分解阶段和问题解决阶段。首先,将复杂问题分解为更小、更易管理的子问题,这一阶段主要依赖于语义理解和查询解析;然后,在问题解决阶段,利用大量的领域知识来解决这些子问题。这种策略旨在提高大模型(LLMs)在处理复杂问题时的效率和灵活性。

问题分解阶段的目标是将一个复杂的查询或问题拆解成若干个更小、更易于处理的子问题。这样做的目的是为了降低问题解决的复杂性,使得模型能够更加高效地处理每个子问题。在这个阶段,模型需要对输入的查询进行自我反思,生成一种类似于“思维链”(Chain-of-Thought,简称CoT)的推理链。

在问题解决阶段,模型将针对前一阶段生成的每个子问题给出答案。这些答案随后被综合起来,形成对原始复杂问题的最终解答。这个过程涉及到对大量领域知识的理解和应用,以确保能够准确解决每个子问题。

将问题分解和问题解决解耦开来,可以带来几个优势:

  1. 提高泛化能力:通过将问题分解为子问题,模型可以更好地泛化到未见过的问题上,因为子问题可能更具有普遍性。
  2. 降低推理成本:在某些情况下,只需要提炼出推理链中的分解部分,而不是整个推理过程,这可以显著降低模型运行时的计算成本。
  3. 提升灵活性:解耦后的模型可以更容易地进行优化和定制,因为它们可以独立于大型“黑盒”模型来训练和调整。

分解能力提炼策略

当使用“黑盒”大型语言模型进行推理时,生成分解后的子问题可能会非常昂贵,尤其是当推理链较长时。而且由于这些模型的不透明性,优化或定制分解过程面临挑战。为了解决这些问题,研究者提出了利用一个较小的、可训练的学生模型作为大型黑盒LLM的替代品来进行问题分解。这一过程涉及从教师模型(记为T)中提炼分解能力。

研究者首先从教师模型T中收集分解问题的示例。与要求T解决问题不同,他们让T将给定的问题Q分解为子问题,而不提供解决方案。为此,他们向T提供了一个分解指令(记为Idecomp),以及问题Q。分解指令(Idecomp)内容如下:

  • 任务:将给定的复杂问题分解为最相关、最有帮助的子问题,确保每个问题不超过三个子问题。
  • 上下文和主问题将一并提供。
  • 如果问题不需要分解就能回答,则返回“No decomposition”(无需分解)。
  • 否则,列出有助于回答原始问题的必要子问题,避免返回可能有害或无益的子问题。

给定教师模型生成的子问题集合{Si},通过优化交叉熵损失函数来微调学生分解器S,使其尽可能地模仿T的分解行为。这个优化过程的输出是学生模型,记为SD-T。

作为额外步骤,如果数据集包含相应的真实答案(记为A),研究者可以选择使用这些信息来筛选高质量的生成子问题。这是通过向教师模型T提供另一个指令Ians来实现的,该指令要求模型首先解决子问题{Si},然后再解决原始问题Q。

解决指令(Ians)内容如下:

  • 解决一个复杂问题,首先回答几个相关的子问题。

  • 依次回答子问题,并最终解决原始问题。

  • 最终答案应该以“答案为:”的格式附加在最后。

使用这个指令,研究者收集了T生成的答案Aˆ,其中P代表前提条件。他们假设,从统计学角度来看,好的子问题集合{Si}最终将有助于解决问题。因此,他们可以选择性地过滤掉那些生成答案Aˆ与真实答案A不一致的训练实例。这种筛选过程类似于拒绝采样(Rejection Sampling),产生的模型记为SD-R。

实验设计与评估

研究者选择了两个不同的数据集来评估他们的流程:

  • GSM8K:专注于数学推理,包含7500个训练实例和1000个测试问题。
  • DROP:针对问答任务设计,包含77400个训练样本和9500个验证集。

由于DROP测试集没有标准答案,限制了评估场景,因此研究者使用GSM8K的测试集和DROP的开发集进行评估。

教师与学生模型:

  • 教师模型:整个实验中使用了GPT-3.5-Turbo-0615模型。为了全面评估,研究者还使用了不同级别的教师模型,包括一个开源模型(vanilla Vicuna)和三个黑盒模型(text-davinci003, GPT-3.5-Turbo, GPT4)。

  • 学生模型:所有学生模型均初始化为Vicuna13b-v1.3。

学生求解器模型:

为了比较提炼分解器与提炼求解器的性能,研究者进一步训练了几个Vicuna模型,以模仿教师模型的行为作为学生求解器。SE-T模型使用教师的示例进行训练,而SE-A模型在有标准答案的情况下进行微调。

训练细节:

  • 批量大小设为128。

  • DROP数据集上训练3个周期,GSM8K数据集上训练直到收敛(5个周期)。

  • 蒸馏训练的学习率设为 2×10−52×10−5。

  • 所有蒸馏微调可以在8个80G A100 GPU上在12小时内完成。

推理成本估算:

  • 基于GPT-3.5-turbo-1106模型的推理成本进行计算,输入令牌的费用为1000个输入令牌0.001美元,1000个输出令牌0.002美元。

  • 为了公平比较,Vicuna-13B模型的成本按模型大小比例估算,结果为1000个输入令牌约0.000074美元,1000个输出令牌约0.000148美元。

实验结果分析

研究者首先探讨了将分解(Decomposition)与解决(Solving)分离的可能性,并评估了使用改进的分解对复杂推理任务的效果。先前的研究已经表明,利用分解的子问题可以增强黑盒模型的问题回答能力。研究者采用了静态策略,将推理过程分为两个独立阶段:分解和解决。实验结果(表1)显示,这种静态策略通常比单一阶段方法有更好的性能。

在 GSM8K 和 DROP 数据集上不同模型配置的性能和推理成本比较

表1中展示了不同模型在GSM8K和DROP数据集上的性能对比。结果显示,用较弱的分解器(Vicuna)替换较强的分解器(GPT)通常会导致性能显著下降,特别是在GSM8K数据集上,除了使用Vicuna作为求解器时。研究者推测,这可能是因为Vicuna求解器错误较多,无法充分利用分解带来的改进。当求解器更强大时,性能下降更显著,这表明为了达到最佳性能,强大的分解器至关重要。

研究者接着探讨了在没有标准答案A的情况下,从教师模型T向学生模型S蒸馏知识的可能性。这是最常见的用例,因为标准答案注释通常成本高昂且稀缺。表1(无神谕答案A)显示,使用SD-T替换分解器至少与使用T的性能相当。而且,SD-T相比使用Vicuna作为分解器有显著改进。然而,替换为学生求解器模型SE-T会显著损害性能。

在推理成本方面,SD-T方法在分解上的成本比使用教师GPT模型显著降低,而求解器的成本相对不变。研究者还比较了T、Vicuna和SD-T在评估集上的分解情况(表2),发现SD-T模型在生成子问题上与教师模型的演示高度相似。相比之下,原始的Vicuna模型经常生成可能分散求解器注意力的无益问题。

不同方法在 GSM8K 和 DROP 数据集上生成的分解子问题的例子

研究者还探讨了为什么较小的学生模型可以快速模仿教师模型的分解能力,而直接通过学生模型的初始预训练却难以获得这种技能。他们的假设是,较强教师模型的分解能力容易提炼但难以获得。这种技能可能基于在大型模型的密集预训练期间对大量数据的深入消化和内化。但由于它更具逻辑性和抽象性,而不是知识密集型,一些演示可能已经为学生提供了足够的指导。

研究者进一步探讨了蒸馏的分解器是否能够跨领域应用。他们对DROP和GSM8K进行了跨领域评估,结果(表3)显示,蒸馏的分解器SD-R在其他领域表现出良好的泛化性和适用性,与使用教师GPT模型作为分解器相比,性能仅略有下降。相反,用SE-A替换求解器,即使在原始领域进行了微调,对其他领域的泛化也很差。

蒸馏出的学生分解器在跨领域数据集上的泛化能力。说明了即使在训练数据集之外,蒸馏的分解器也能保持较高的性能

研究者还考察了蒸馏的分解器是否适用于不同的求解器。结果显示,SD-R的性能与教师分解器(GPT)相当,并且在连接到不同的求解器时,比较弱的分解器(Vicuna)有整体改进。他们发现,较弱的求解器通过升级到提炼的分解器获得了更多的性能提升。

在SE模型的失败模式方面,研究者提出了两种主要的失败模式。首先,回答子问题或主要问题需要大量的世界知识和常识,这很难压缩到只有几个演示的较小学生模型中。其次,由于教师对子问题的答案被用作目标的一部分,SE模型可能会混淆,生成子问题之一的最终答案,而不是主要问题的答案。基于这些发现,研究者尝试在训练SE模型时排除目标中的子问题答案,直接生成答案。结果表明,在DROP数据集上这种方法有所改进,但在GSM8K数据集上却导致了性能下降。

最后研究者进行了消融研究,以深入理解不同因素对于模型性能的影响。他们特别关注了指令的类型以及演示数量对于模型分解能力的影响,

表6展示了在GSM8K数据集的一个子集上,包含演示的分解指令对模型性能的影响。研究者比较了0-shot(无演示)和1-shot(一次演示),这些结果表明,即使是一次简单的演示也能显著提高模型遵循给定指令的能力,从而改善分解问题的质量。

表7的实验结果表明,在分解指令中限制最多三个子问题能够获得最佳性能。这些发现对于优化分解指令的设计具有重要意义,有助于生成更有效的问题子集,从而提高模型的整体性能。 

以上研究我们提供了一种新的思路,以更高效、更经济的方式利用大型语言模型的推理能力,为人工智能领域的发展开辟了新的可能性。

论文链接:https://arxiv.org/abs/2402.15000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1985037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目管理中,项目经理有哪些优势?

项目经理在项目管理中扮演着至关重要的角色,他们的优势主要体现在以下几个方面: 一、计划与组织能力 超强的计划能力:项目经理需要制定各种计划,因此更擅长制定精确、合理的项目计划。他们能够有效地分解项目任务,排…

Elastic 基于 RAG 的 AI 助手:使用 LLM 和私有 GitHub 问题分析应用程序问题

作者:来自 Bahubali Shetti 作为 SRE,分析应用程序比以往任何时候都更加复杂。你不仅必须确保应用程序以最佳方式运行以确保出色的客户体验,而且在某些情况下还必须了解内部工作原理以帮助排除故障。分析基于生产的服务中的问题是一项团队运动…

麒麟V10系统 arm架构 安装docker

查看服务器环境 ## 查看系统版本,确认版本 cat /etc/kylin-release## 操作系统 uname -p## 内核版本(≥ 3.10) uname -r## iptables 版本(≥ 1.4) iptables --version iptables v1.8.1 (legacy)# 我这边是arm64/v8 架…

首届中文NL2SQL挑战赛亚军比赛攻略_BugCreater

关联比赛: 首届中文NL2SQL挑战赛 1. 任务描述 本次比赛的任务:根据Question、表格信息(包含列名、列类型、内容),预测对应的SQL语句(下图黄色部分)。比赛只涉及单表查询,需要预测的有4部分&a…

pointofix下载与调整中文

想要在屏幕上批注,用pointofix最好,本篇文章告诉你如何下载pointofix和把pointofix语言弄成中文。 首先打开pointofix官网下载pointofix的安装包。 Pointofix - Herunterladen - Downloadhttps://www.pointofix.de/download.php点击这个pointofix180de…

基于CentOS Stream 9平台搭建Nacos2.4.0.1集群,并使用OpenResty反向代理集群,GRPC协议配置

目录展示 Nacos2.4.0.1集群搭建1. 下载2. 解压3.修改配置3.1分别修改下启动类中JDK路径以及启动大小3.2 分别配置数据源 修改端口去掉前面的#注释(修改数据库地址、数据库用户名、密码)If use MySQL as datasource:Count of DB:Connect URL of DB:密钥鉴…

SQL注入实例(sqli-labs/less-9)

0、初始页面 1、爆库名 使用python脚本 def inject_database1(url):name for i in range(1, 20):low 32high 128mid (low high) // 2while low < high:payload "1 and if(ascii(substr(database(),%d,1)) > %d ,sleep(2),0)-- " % (i, mid)res {"…

项目管理证书 PMP 的含金量高吗?详解分析

有用就是好的&#xff0c;我觉得PMP在项目管理领域非常实用。特别是对我这样刚入门的新手来说&#xff0c;PMP证书和项目管理思维方式对我有很大帮助。因为我刚开始接触这个领域&#xff0c;所以能够接受正确的思维指引&#xff0c;比起那些有经验但可能存在错误思维的经理来说…

word操作技巧

查看word的标题和大纲 参考自&#xff1a; ​​​

C++ 80行 极简扫雷

一共5346个字符&#xff0c;MinGW编译通过&#xff08;强烈不建议写这种代码&#xff01;&#xff01;&#xff01;&#xff09; 压行规则&#xff1a;一行不超过80个字符 代码&#xff1a; #include<windows.h> #include<stdio.h> #include<time.h> #def…

JVM知识总结(垃圾收集算法)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 垃圾收集算法 分代收集理论 分代思想就是将堆分为新生代和老年代…

Tkinter 转载 (来自C语言中文网)

一个最简单的Tkinter程序至少应包含以下4个部分&#xff1a; 导入tkinter模块、创建主窗口、也称root窗口&#xff08;即根窗口&#xff09;、添加人机交互控件&#xff0c;同时编写相应的事件函数、通过主循环&#xff08;mainloop&#xff09;来显示主窗口。 以上&#xff…

[Git] fatal: the remote end hung up unexpectedly

1 问题介绍 在使用Git进行代码管理和版本控制的过程中&#xff0c;许多开发者可能会遇到这样一个错误提示&#xff1a;fatal: the remote end hung up unexpectedly。这是一种常见的错误&#xff0c;通常出现在将本地代码推送&#xff08;push&#xff09;到远程仓库&#xff…

新加坡物理服务器详细测评数据

新加坡物理服务器因其地理位置优越、网络连接质量高以及数据中心设施完善等因素&#xff0c;成为了许多企业和个人选择托管其业务的理想之地。以下是对新加坡物理服务器的一些详细测评数据的科普文&#xff0c;旨在帮助读者更好地了解这类服务器的性能和特点。 新加坡物理服务器…

智能制造与工业物联网CC2530——串口通讯、定时器唤醒

一、项目目的&#xff1a; 1.1 任务1&#xff1a;ZigBee 模块串口通信 任务背景&#xff1a; 熟悉 ZigBee 模块的硬件接口是使用该技术的基础。通过学习如何利用 IAR 开发环境设计程序&#xff0c;可以实现 CC2530 与 PC 机终端之间的串口通信&#xff0c;从而更好地理解和应用…

中断、异常

文章目录 概念CPU怎么直到中断/异常跳过来执行哪一个函数呢&#xff1f;LR 中断硬件框架&#xff1a;对于F103这块芯片&#xff0c;如果要PA0发出中断&#xff0c;那要做的操作有&#xff1f;GPIO中断编程具体代码 概念 中断属于一种异常 保存现场、处理异常&#xff08;中断…

C# 植物大战僵尸---杂交版

开发框架&#xff1a;.Net Fra,ework4.0 游戏名称&#xff1a;植物大战僵尸-杂交版 游戏介绍&#xff1a;植物大战僵尸-杂交版是一款结合了经典塔防游戏《植物大战僵尸》的元素和创新杂交机制的游戏。玩家需要种植各种植或英雄物来抵御一波又一波的僵尸入侵。游戏的特色在于各…

迅为RK3588开发板可以实现双屏同显、双屏异显、三屏同显、三屏异显、标异屏切换

RK3588可以实现双屏同显、双屏异显、三屏同显、三屏异显、标异屏切换这主要取决于RK3588芯片内置了VOP控制器&#xff0c;支持三路视频同时输出可有效提高行业定制的拓展性。

《码农职场》(IT人求职就业手册)导读和理性书评

《码农职场》是为IT行业求职者量身定制的一本实用指南&#xff0c;涵盖了从求职准备到成功就业的全方位内容。书中分为“职前调整”和“就业指南”两大部分&#xff0c;每一部分都详尽地介绍了求职过程中的各个关键环节&#xff0c;旨在帮助求职者在竞争激烈的职场中脱颖而出。…

锡废水再生回收的回收处理

锡废水再生回收是一个涉及环境保护和资源再利用的重要过程&#xff0c;主要目的是从含有锡的废水中提取有价值的锡资源&#xff0c;同时减少环境污染。以下是对锡废水再生回收的详细解析&#xff1a; 一、锡废水再生回收的重要性 环境保护&#xff1a;回收废水中的锡可以减少对…