NeurIPS 2024 | 小模型引导大模型生成,无需微调实现弱到强泛化!

大语言模型通常需要通过微调来符合人类的偏好,但直接微调这些大模型需要大量的资源,并不容易。

在本研究中,我们提出“弱到强搜索”(weak-to-strong search)方法,将大模型的对齐过程转变为推理阶段的一种贪婪搜索方式:我们首先微调一个小模型,然后在大模型解码过程中,引导大模型去最大化微调前后小模型的输出对数概率差,从而实现类似于微调大模型的效果

这种方法具有以下两大作用:

1)作为一种计算高效的模型扩展策略,通过微调小模型来对大模型进行推理阶段的引导,避免直接对大型模型进行微调;

2)作为一种弱到强的泛化(weak-to-strong generalization)[1] 的实现方式,通过弱推理时引导来提高强模型的性能。

在实验中,我们展示了“弱到强搜索”(weak-to-strong search)在不同任务中的有效性。此方法适用于提升白盒以及黑盒大模型的性能(如 gpt3.5),而无需额外训练;且此方法在情感控制生成,摘要生成,以及对话任务上都展现出出色的效果。

论文标题:

Weak-to-Strong Search: Align Large Language Models via Searching over Small Language Models

论文链接:

https://arxiv.org/abs/2405.19262

Github地址:

https://github.com/ZHZisZZ/weak-to-strong-search

▲ 图1:“弱到强搜索”(weak-to-strong search)通过开源小模型(zephyr-7b-beta 以及其微调前的版本 mistral-7b-sft-beta)的弱推理时引导,提高了各种大模型的在标准问答任务上(AlpacaEval 2.0)的表现。

背景

1.1 语言模型的对齐

==========================================================================================================================================================================================================================================================================================================================================================================================================================================================================

语言模型的对齐目标通常被形式化为以下表达式:

其中, 是提问分布, 是语言模型的回复, 奖励语言模型与人类价值对齐, 限制微调后的模型 与微调前模型 的分布差异。

对齐算法主要分为两大类:

(i) 基于搜索的算法,在推理过程中通过基于图的搜索来优化公式(1);

(ii) 基于学习的算法,通过梯度下降来优化公式(1),目标是得到一个参数化的最优语言模型。我们在本工作提出的算法属于基于搜索的算法

1.2 语言模型和奖励函数的二象性

公式(1)的解析解可以通过构造以下拉格朗日函数获得:

此目标函数的有一个众所周知的闭式解,表达了奖励函数 和最优语言模型 之间的二象性:

其中 是配分函数。值得注意的是,这个映射关系不仅体现了语言模型和奖励函数的二象性,同时也蕴含一个重要的实际意义:我们可以使用微调和未微调的语言模型的输出差异来表示一个奖励函数。

方法:弱到强搜索(Weak-to-Strong Search)

在本节中,我们介绍了“弱到强搜索”(weak-to-strong search),这是一种基于搜索的算法,通过在微调和未微调小模型之间的对数概率差上进行搜索来对齐大型语言模型。

首先,我们讨论了如何使用语言模型来参数化偏好奖励函数,从而使得奖励最大化问题可以通过简单的贪婪搜索算法来求解(2.1 节)。接着,我们介绍了一种实用的束搜索方法——分块束搜索(Chunk-level Beam Search),适用于引导白盒和黑盒大型语言模型(2.2 节)。

2.1 语言模型同时作为奖励和价值函数

基于搜索的对齐算法面临的一个挑战是**偏好奖励信号的稀疏性。**基于Bradley-Terry模型的偏好奖励函数 只有在模型生成完整回复 时才会发出最终奖励。没有任何中间奖励或提供中间指导的价值函数时,搜索算法往往会遇到困难。

然而,如果我们使用语言模型对该稀疏奖励函数进行参数化(公式(3)),则可以同时获得密集的奖励函数(2.1.1 节)和价值函数(2.1.2 节)。

2.1.1 语言模型作为奖励函数

为了获得一个密集的奖励函数,我们可以利用稀疏的偏好奖励函数与密集的语言模型概率之间的二象性(1.2 节)。通过在语言模型下显式分解完整回复 的对数概率,我们为公式(3)得到一种“奖励之和”形式的表达:

结合公式(1)和公式(4),我们用一个逐词元的(per-token)奖励函数重写了原始目标:

其中省略了 和 ,因为它们不影响最优解。

需要注意的是,用于参数化奖励函数的参考模型()和用于约束推理时搜索空间的参考模型()可以是不同的。在实际应用中,解耦参考模型非常有用,因为这允许使用一个微调过的和一个未微调的语言模型对(即 )来引导任意基础语言模型(****)的解码,而无需重新训练。

2.1.2 语言模型作为价值函数

在此稠密奖励的引导下,我们便能复用常用的贪婪搜索例如 beam search 去优化目标(5)。但在稠密的奖励下进行贪婪搜索也存在导致短视的决策的风险 [2],因为贪婪搜索往往不会充分考虑未来的奖励,而是优先最大化当下的累计奖励。

虽然这种批评对大多数马尔可夫决策过程是正确,但基于词元级别的马尔科夫决策过程(token-level MDP)[3],生成过程中的累积奖励实际上是长期价值的可靠指示器,从而使得束搜索不那么短视

换句话说,词元级别的奖励函数之和可以视作一个价值函数 提供长远的生成指导。在下一小节,我们将基于此想法,介绍一个实际的推理算法,将 视作价值函数来引导模型生成。

注: 表示一个完整的回复,而 既可以表示一个完整回复也可以表示一个不完整的回复。

2.2 分块束搜索(Chunk-level Beam Search)

▲ 图2:分块束搜索示意图,参数 。

在分析了使用贪婪搜索算法(如束搜索)优化目标(5)的可行性后,我们提出了一种实用的束搜索变体。支撑我们方法的核心算法——分块束搜索(Chunk-level Beam Search,简称 CBS)在图 2 中进行了说明。

关键点在于我们的束搜索在块级别上操作。搜索从提问开始,并始终保持一个假设集 ,其中包含 个状态。

对于 中的每个状态 ,CBS 从 中采样 个长度为 的后续块 。这产生了 个后继状态。在这些后继状态中,仅保留部分回报 最高的前 个后继状态,并进一步扩展。

最终,选择中间回报最高的终端状态 ,并从中提取完整的回复 。

2.3 应用:模型扩展与弱到强的泛化

CBS 的最实际应用是在微调和未微调模型(、)比要引导的模型 更小时:

首先,这种情况作为一种模型扩展策略,直接对小模型进行微调 ,从而引导大模型的解码,实现与直接微调大模型相似的效果。

其次,由于小模型(、)通常比要引导的大模型 弱,这种情况也体现了从弱到强的泛化,通过仅在测试时提供弱的引导来增强强模型的性能。我们将 CBS 的这种应用称为“弱到强搜索”(weak-to-strong search),这是我们研究的重点。

实验

=================================================================================================================================================================

在本节中,我们通过实验评估“弱到强搜索”(weak-to-strong search),在仅使用小语言模型的推理时引导下,对齐大型语言模型的能力。

首先,在控制情感生成和摘要生成任务中,我们微调 gpt2 以建模每个任务中所需的行为,然后使用微调和未微调的 gpt2 来引导不同规模的大模型(图3)。

接着,在更具挑战的指令跟随基准测试 AlpacaEval 2.0 中,我们不再微调小模型,而是直接使用现成的开源 7B 模型及其未微调版本来引导一系列大型模型,包括开源的 70B 模型和一个黑盒模型(图 4)。

**▲ 图3:控制情感生成任务(左)和摘要生成任务(右)。**我们用微调前后的124M参数的gpt2模型引导其他更大的模型进行生成;弱到强搜索(Weak-to-Strong Search)超越了其他推理时对齐基线,实现了近似直接微调(Directly tuned)的效果。

**▲ 图4:问答任务。**我们用现成的开源 7B 模型及其未微调的版本(左:zephyr及其微调前版本;右:tulu及其微调前版本)以引导其他更大或更强的模型进行生成;弱到强搜索(Weak-to-Strong Search)超越了其他推理时对齐基线,并展现了稳定的弱到强泛化:虽然被引导的模型本身(蓝色柱状图)比提供引导的模型强(加粗虚线),我们的方法依旧能稳定提升强模型的性能。

结论

=====================================================================================================================================================================

我们提出了“弱到强搜索”,一种在保持大型语言模型冻结的情况下,将大模型的对齐过程转变为在小模型引导下的推理阶段的一种贪婪搜索方式。

这种方法提供了一种计算高效的模型扩展策略,避免了直接微调大型模型的复杂性,同时体现了“弱到强的泛化”,通过仅在测试时提供弱引导使强模型更强。实验证明,该方法在控制情感生成、摘要生成和指令跟随任务中是有效的。

在这里插入图片描述

大模型&AI产品经理如何学习

求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方图片前往获取

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

### 关于大模型微调技术的研究 大规模预训练模型的微调技术已成为当前自然语言处理(NLP)和其他机器学习领域的重要研究方向之一。以下是几个重要的研究主题和技术方法: #### 1. **低秩适配 (LoRA)** Low-Rank Adaptation (LoRA)[^3] 是一种高效的微调策略,旨在减少参数更新的数量并降低计算成本。该方法通过分解权重矩阵为两个较低维度的矩阵来进行优化,从而实现高效的学习过程。 ```python import torch.nn as nn class LoRALinear(nn.Module): def __init__(self, in_features, out_features, rank=4): super(LoRALinear, self).__init__() self.linear = nn.Linear(in_features, out_features) self.lora_A = nn.Parameter(torch.randn(rank, in_features)) self.lora_B = nn.Parameter(torch.randn(out_features, rank)) def forward(self, x): base_output = self.linear(x) lora_output = self.linear.weight @ self.lora_A @ self.lora_B.T return base_output + lora_output ``` 此方法特别适用于资源受限环境下的应用开发。 --- #### 2. **迁移学习中的 Fine-Tuning 方法** Fine-Tuning 的核心在于利用已有的大型预训练模型作为基础,在目标任务的小型数据集上进一步调整其参数[^2]。这种方法不仅减少了对海量标注数据的需求,还提高了模型泛化能力[^4]。 具体而言,BERT 等 Transformer 架构可以通过以下方式完成微调- 替换最后一层分类器以匹配目标任务; - 使用梯度下降算法逐步修改部分或全部可训练变量。 --- #### 推荐阅读的相关论文列表如下: 1. **"Parameter-Efficient Transfer Learning for NLP" by Houlsby et al., ACL 2019**: 提出了 Adapter 模块的概念,允许仅针对少量新增加组件执行反向传播操作。 2. **"BitFit: Simple Parameter-efficient Fine-tuning for Transformers" by Ibraheem et al., EMNLP 2021**: BitFit 方案表明即使只调节偏置项也能取得不错的效果。 3. **"PPT: Pre-train and Prompt Tuning with Discrete Soft Prompts for Efficient Text Generation" by Liang et al., NeurIPS 2022**: 结合提示工程与传统细调手段提升生成质量的同时保持效率优势。 4. **"LoRA: Low-Rank Adaptation of Large Language Models" by Hu et al., arXiv preprint**, which introduces the low-rank adaptation technique mentioned earlier. 这些文章均围绕如何有效且经济地改进现有超大规模神经网络展开讨论。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值