
LESS:仅选择5%有影响力的数据优于全量数据集进行目标指令微调
本文给大家分享一篇论文(LESS: Selecting Influential Data for Targeted Instruction Tuning)用于选择有影响力的少量数据进行目标指令调优。
本文给大家分享一篇论文(LESS: Selecting Influential Data for Targeted Instruction Tuning)用于选择有影响力的少量数据进行目标指令调优。
摘要
LESS是一种优化器感知且实用和有效的算法,可有效估计数据影响并执行低秩梯度相似性搜索(Low-rankgradiEnt Similarity Search)以进行指令数据选择。更重要的是,LESS 兼容现有的影响力公式,以与 Adam 优化器和可变长度指令数据一起使用。
LESS 首先构建具有低维梯度特征的高度可重用和可转移的梯度数据存储,然后根据它们与体现特定能力的少数示例的相似性来选择示例。
实验表明,在不同下游任务中,对选择的 5% 数据进行训练通常可以优于对完整数据集进行训练。此外,所选数据具有高度可转移性:即可以利用较小的模型为较大的模型和来自不同系列的模型选择有用的数据。我们的定性分析表明,我们的方法超越了表面形式线索,可以识别能够体现预期下游应用所需推理技能的数据。
1. 简介
指令微调使得大语言模型善于遵循人类指令,成为多功能聊天机器人。然而了解如何最好地利用这些不同的数据集仍然是一个悬而未决的问题。
许多现实世界的应用程序要求训练LLMs中的一套特定能力(例如,推理技能)。然而,使用混合指令微调数据集训练 LLMs 可能会阻碍这些特定功能的开发。例如,在混合指令微调数据集上训练的 LLMs 表现出的性能比在数据子集上训练的性能更差。此外,考虑到广泛的用户查询以及响应这些查询所需的多种技能,可能并不总是有足够的域内数据可用。因此,我们希望能够有效地利用通用指令微调数据来提高特定能力。我们将此设置作为目标指令微调:
仅给出少数体现特定能力的示例,我们如何从大量指令数据集中有效地选择相关的微调数据?
我们通过优先对数据进行训练来解决这个问题,这些数据直接最小化目标任务的损失,而不是依赖于表面形式特征。受到过去的工作利用梯度信息估计单个训练数据点影响的启发,我们设计了一种优化器感知方法来选择此类数据。然而,这种影响力公式的直接应用面临着指令调优设置特有的几个挑战:
-
- LLMs传统上是使用 Adam 优化器而不是过去工作中考虑的标准的 SGD 优化器进行微调;
-
- 使用可变长度指令数据的序列级梯度可能会导致破坏影响估计;
-
- LLMs中大量的可训练参数使得梯度的计算和存储极其消耗资源。
我们在 LESS 中解决了这些问题,LESS 是一种执行低秩梯度相似性搜索来为目标应用程序选择相关指令微调数据的算法,它具有以下属性:
- 与 Adam 的指令微调兼容:LESS 采用经典影响力公式中的梯度特征,以与 Adam 优化器和可变长度指令数据配合使用。优化洞察力和影响力公式也可能具有独立的意义。
- 高效:LESS 使用 LoRA 和随机投影构建具有低维、易于操作的梯度特征的梯度数据存储,从而允许高效且有效的数据集选择。梯度数据存储可以重复用于新的目标任务。
- 可转移:使用小模型的梯度特征选择的数据会在大型模型和来自不同系列的模型中产生强大的性能,从而提高 LESS 的效率。
- 可解释:定性分析表明,LESS 选择具有相似推理和技能类型的数据作为目标任务,而现有方法通常根据表面形式线索(例如:语言或主题)选择数据。
我们在三个不同的下游数据集(MMLU、TYDIQA 和 BBH)上评估我们的方法,每个数据集都包含不同的子任务,可以有效地模拟目标指令微调场景。
结果表明,LESS 通常会选择一小部分数据子集 (5%),其性能优于整个数据集上的训练,并且所选子集在不同模型参数规模和模型系列中仍然普遍有效。
与其他数据选择方法的比较表明,LESS 是唯一一致有效的方法,证明其相对较高的计算成本是合理的。
2. 准备工作:影响力公式
使用训练动态的一阶近似来估计训练数据点对保留数据的影响。
每一步的影响。考虑一个模型 θt\theta^tθt 在时间步ttt上训练损失 ℓ(⋅;θ)\ell(\cdot;\theta)ℓ(⋅;θ) 。我们可以在验证数据点 z′z’z′ 上写出损失的一阶泰勒展开式:
ℓ(z′;θt+1)≈ℓ(z′;θt)+⟨∇ℓ(z′;θt),θt+1−θt⟩\ell(z’;\theta^{t+1}) \approx \ell(z’;\theta^t) + \langle\nabla\ell(z’;\theta^t), \theta{t+1}-\thetat\rangle ℓ(z′;θt+1)≈ℓ(z′;θt)+⟨∇ℓ(z′;θt),θt+1−θt⟩
为了便于说明,假设我们使用批量大小为 111、学习率为 ηt\eta_tηt 的 SGD 来训练模型。如果 zzz 是时间步 t 的训练数据,我们可以将 SGD 更新写为 θt+1−θt=−ηt∇ℓ(z;θt)\theta^{t+1} - \theta^t = -\eta_t \nabla\ell(z;\theta^t)θt+1−θt=−ηt∇ℓ(z;θt)。那么泰勒展开式可以写为
ℓ(z′;θt+1)−ℓ(z′;θt)≈−ηt⟨∇ℓ(z;θt),∇ℓ(z′;θt)⟩\ell(z’;\theta^{t+1}) - \ell(z’;\theta^t) \approx -\eta_t \langle\nabla\ell(z;\theta^t), \nabla\ell(z’;\theta^t)\rangle ℓ(z′;θt+1)−ℓ(z′;θt)≈−ηt⟨∇ℓ(z;θt),∇ℓ(z′;θt)⟩
轨迹影响。 z 对整个训练运行的影响可以通过聚合使用 z 的每个训练step的影响来测量。由于 z 被每个epoch使用一次,因此很自然地将其表示为epochs的总和:
其中, ηˉi\bar\eta_iηˉi是 N 个总训练epochs中第 i 个epoch期间使用的学习率。
Pruthi et al. (2020) 使用这种洞察力来识别错误标记的训练数据,我们应用这个公式来设计数据选择策略。特别是,选择 z 来最大化 ⟨∇ℓ(z′;θt),∇ℓ(z;θt)⟩\langle \nabla \ell(z’;\theta^t), \nabla \ell(z;\theta^t)\rangle⟨∇ℓ(z′;θt),∇ℓ(z;θt)⟩ 将导致验证点 z′z’z′ 上的损失大幅减少。值得注意的是,z′z’z′ 不一定与训练数据 z 直接相关,这使得该数据选择策略在迁移学习设置中特别有用。
接下来的两节描述我们如何采用这种基本方法通过指令微调来高效且有效地运行。
3. LESS:评估指令的影响力
在这里,我们描述 LESS 如何适应等式(1)中的影响力公式来选择有效促使目标能力的指令。我们在这里考虑两个主要的概念挑战:
- (1) 第 2 节中描述的过去的工作重点是使用 SGD 优化器,但 LLMs 传统上使用 Adam 进行调优。
- (2) 指令微调表现出异常梯度这导致先前的公式非常倾向于选择较短的指令,从而损害性能。
我们遵循指令调优的标准自回归设置,其中,数据点z由指令s和补全c组成。对于每个数据点,损失为ℓ(z;θ)\ell(z;\theta)ℓ(z;θ)是模型分布p(⋅∣s)p(\cdot\vert s)p(⋅∣s)与真实标签c之间的交叉熵。当c包含多个tokens时,我们使用补全过程中token-wise交叉熵的平均值作为z的损失。我们使用θtθ_tθt表示第t步的模型,使用θiθ_iθi表示第i次训练之后的模型。
3.1. 扩展到 Adam 算法
等式 (1) 的公式是使用SGD优化模型所特有的。然而,指令调优通常使用 Adam 优化器进行。在这种情况下,给定步骤的参数更新为:
其中,所有操作均按元素执行,β1\beta_1β1 和 β2\beta_2β2分别作为一阶矩和二阶矩的超参数,ϵ\epsilonϵ 作为一个小常数。然后,Adam 动力学的一阶展开表明我们应该选择 z 来最大化 ⟨∇ℓ(z′;θt),Γ(z;θt)⟩\langle \nabla \ell(z’;\theta^t), \Gamma(z;\theta^t)\rangle⟨∇ℓ(z′;θt),Γ(z;θt)⟩ 。
然而,使用此内积来测量轨迹影响力需要在训练过程中访问模型梯度和优化器状态。此外, Γ(z;θ)\Gamma(z;\theta)Γ(z;θ) 需要 m 和 v 项,这些项由先前的训练梯度确定。
总而言之,这个公式使数据选择问题变得循环,因为每个点的影响取决于所选点的集合。根据经验,我们可以通过在随机选择的完整数据集 D 的 5% 上运行 N = 4 个epochs的短期warmup训练来规避这些问题。我们在影响计算中使用本次运行的优化器状态作为Γ(z;θi)\Gamma(z;\theta_i)Γ(z;θi)。
3.2. 解决序列级梯度的异常问题
将第 2 节应用到指令微调设置中会认为示例 z 的梯度是补全c中每个Token的梯度的平均值。然后,我们将选择在每个序列中训练哪些Token,以便最好地减少验证损失。然而,估计单个Token的影响非常昂贵,因为它需要计算Token损失向量相对于模型参数的梯度,因此我们改为在序列级别执行数据选择。
由于示例梯度是许多 token 梯度的平均值,因此序列 ∣∣∇ℓ(z;θt)∣∣||\nabla \ell(z;\theta^t)||∣∣∇ℓ(z;θt)∣∣ 的梯度范数与补全c的长度负相关(图 3 和图 4)。对于计算不同长度序列的平均Token梯度的影响公式来说,这是一个普遍问题。
这种现象导致等式(1)中的影响大大增加了较短训练序列的权重,这反过来又导致性能明显变差(见表12)。为了缓解这个问题,我们对 LESS 中的梯度特征进行归一化,并使用余弦相似度而不是点积来估计影响。
公式 3.1 Adam Influence:假设模型经过 N 个 epoch 的训练,其中 ηˉi\bar\eta_iηˉi 是第 i 个 epoch 的平均学习率,θi\theta_iθi 是第 i 个 epoch 之后的模型检查点。当与Adam一起训练时,我们将训练数据点 zzz 对验证数据点 z′z’z′ 的影响定义为
4. LESS:有效评估影响力
我们已经确定了如何使用模型梯度来估计影响,但考虑到 LLMs 的庞大规模,计算和存储模型梯度仍然非常昂贵。在本节中,将探讨降低计算效率的设计,并说明图 1 中的计算步骤。
- 我们使用 LoRA 来有效地进行 warmup 训练。
- 然后,我们构建了一个投影低维梯度特征的梯度数据存储,可以重复用于不同的目标任务。
- 最后,我们详细介绍了我们的数据选择算法如何使用数据存储来构建训练数据集,以容纳目标验证集中的子结构(例如:推理技能)。
设置。我们的目标是大量、多样化的指令微调数据集 DDD 中选择子集 DtrainD_{train}Dtrain,以便在 DtrainD_{train}Dtrain 上训练模型可以在目标验证数据集 DvalD_{val}Dval 上实现较低的损失,从而在测试数据上表现良好。 DvalD_{val}Dval 可以包含多个子任务 Dval(1),…,Dval(m)D_{val}^{(1)}, …, D_{val}^{(m)}Dval(1),…,Dval(m)(例如,多种语言的问答)。验证集是固定的,每个子任务仅包含几个示例(例如,TYDIQA 中每种语言 1 个示例)。我们使用保留的测试集 DtestD_{test}Dtest 来评估在 DtrainD_{train}Dtrain 上训练的模型的性能。
我们使用 MSM_SMS 表示用 θ\thetaθ 参数化的模型,用于评分和选择数据;并使用 MTM_TMT 表示在所选数据上训练的模型。
选择模型MSM_SMS不需要与目标模型MTM_TMT相同,在这种情况下,我们将该设置称为LESS-T。
4.1. 高效的梯度特征计算
计算定义公式 3.1 需要计算两个向量的内积,其中可训练参数的大小为该模型。直接使用这样的高维梯度向量作为数据集选择的特征在计算上非常昂贵,因此我们应用两种技术来构造有意义的低维梯度特征:
通过 LoRA 进行参数高效微调和随机投影。我们将这些技术应用于 ∇ℓ(z′; θ) 来验证数据点 z′z’z′,并将这些技术应用于 Γ(z, θ) 来训练数据点 z。为了能够快速转移到新的目标验证任务,我们为候选训练数据点创建了一个具有这些低维特征的数据存储区。
第 1 步:使用 LoRA 进行热身(Warmup)训练。我们用LoRA减少可训练参数的数量并加速定义 3.1 中的内积计算。 LoRA 冻结预先训练的权重,并向整个网络的全连接层添加低秩适配器。我们使用 LoRA 在随机子集 Dwarmup⊂DD_{warmup} ⊂ DDwarmup⊂D 上对预训练的基础模型(例如: LLAMA-2-7B)进行 N 个epochs的指令调优,在每个epoch之后对模型进行checkpointing以存储 {θi}i=1N{\theta_i}_{i=1}^N{θi}i=1N。
使用 LoRA 训练时的梯度,表示为 ,比模型本身的维度低得多;例如,在 LLAMA-2-7B中,
小于 θ 大小的 2%。我们使用
来计算 Adam 更新,并将其表示为
。这种初始热身训练的动机是在第 3.1 节中,第 6.1 节中的经验结果表明,省略它会产生次优结果。
步骤 2:投影梯度。为了进一步降低特征维度,我们对 LoRA 梯度应用随机投影。 Johnson-Lindenstrauss 引理断言此类投影通常保留定义 3.1 中的内积,从而确保这些低维梯度特征对于数据集选择仍然有用。
∇~ℓ(z′;θi)=Π⊤∇^ℓ(z′;θi)\tilde{\nabla} \ell(z’;\theta_i) = \Pi^\top \hat{\nabla} \ell(z’;\theta_i) ∇~ℓ(z′;θi)=Π⊤∇^ℓ(z′;θi)
\hat{\nabla}
对于给定的验证数据点 z′z’z′ 和模型检查点 θi\theta_iθi,我们可以计算 LoRA 梯度的 d 维投影 ∇~ℓ(z′;θi)=Π⊤∇^ℓ(z′;θi)\tilde{\nabla} \ell(z’;\theta_i) = \Pi^\top \hat{\nabla} \ell(z’;\theta_i) ∇~ℓ(z′;θi)=Π⊤∇^ℓ(z′;θi),其中Π∈RP×d\Pi \in \R^{P\times d}Π∈RP×d的每个条目从 Rademacher 分布中绘制 (即Πij∼U({−1,1})\Pi_{ij}\sim \mathcal{U}({-1,1})Πij∼U({−1,1}))。
对于训练数据点 z,我们计算Γ~(z,⋅)=Π⊤Γ^(z,⋅)\tilde{\Gamma}({z} , {\cdot}) = \Pi\top\hat{\Gamma}({z},{\cdot})Γ~(z,⋅)=Π⊤Γ(z,⋅)。我们使用内存高效在线随机投影实现去计算并应用 Π\PiΠ。实际上,我们选择 d=8192d = 8192d=8192。
4.2. 数据选择算法
数据选择策略(参见图 1 中的步骤 3)采用第 2 节中的方法来有效地操作验证集的子任务(例如:BigBench 中的各个任务)。对于每个子任务 D,我们计算每个模型检查点 θ1,…,θN\theta_1,…,\theta_Nθ1,…,θN 的平均梯度特征。
如定义 3.1 所示,然后我们在整个训练过程中汇总给定数据点与每个验证子任务的接近程度的分数。例如,我们可以将定义3.1改写为
我们选择可以提高任何一项验证子任务性能的训练数据点。按照公式2中的逻辑,我们计算 z 的分数作为所有子任务的最大值:maxjInfAdam(z,Dval(j))\max_j Inf_{Adam}(z, \mathcal{D} {val}^{(j)})maxjInfAdam(z,Dval(j)) 。我们选择得分最高的例子来构造DtrainD{train}Dtrain。选择后,我们使用选择的子集DtrainD_{train}Dtrain来训练目标模型MTM_TMT。
5. 实验结果
5.1.实验装置
训练数据集。使用以下指令调整数据集:
(1) 从现有数据集创建的数据集,例如:FLAN V2 (Longpre et al., 2023) and COT (Wei et al., 2022c);
(2) 具有人工编写答案的开放式生成数据集,包括 DOLLY (Conover et al., 2023) 和 OPEN ASSISTANT。
这些数据集的格式和底层推理任务差异很大。训练数据集不包含目标查询的任何明显的域内数据。
评估数据集。我们在 MMLU (Hendrycks et al., 2020), TYDIQA (Clark et al.,2020) 和 BBH (bench authors, 2023) 上评估我们的方法。
MMLU 包含多项选择题,涵盖 57 个任务,包括初等数学、美国历史、计算机科学、法律等。
TYDIQA 是一个多语言问答数据集,包含 11 种类型不同的语言。给定一个问题和相关段落,该任务需要从段落中提取答案。
BBH 是 BIG-Bench 中用于评估推理能力的 27 项挑战性任务的集合。
表 1 包含有关这些任务的更多详细信息。每个数据集都包含多个子任务,每个子任务都带有少量示例。这些示例用作数据选择(第 4.2 节)的 DvalD_{val}Dval 以及评估中的少量上下文学习演示。
用于数据选择和训练的模型。我们测试LESS具有三个base模型:LLAMA-2-7B ,LLAMA-2-13B 和 MISTRAL-7B。在迁移设置(如:LESS-T)中,我们数据选择使用LLAMA-2-7B作为MsM_sMs,并训练LLAMA- 2-13B 或 MISTRAL-7B 作为目标模型 MTM_TMT 。预热训练和最终模型训练均使用LoRA进行。我们的报告中使用了三个随机种子的平均性能和标准差。
默认设置。 LESS 对随机选择的完整数据集的 5% 进行 4 个 epoch 的预热训练,并计算数据 D 上的 8192 维梯度特征(第 4.1 节)。对于每个目标任务,我们使用这些特征根据其影响对数据点进行评分(定义 3.1)并选择DDD中得分最高的5%来构建DtrainD_{train}Dtrain。我们在这个选定的数据DtrainD_{train}Dtrain上训练目标模型MTM_TMT 。
5.2.基线
我们将 LESS 与几个baseline进行比较。
最简单的baseline是随机选择,我们从训练集中随机采样数据以进行指令调优。
我们还与 BM25进行比较,后者通过词频统计(即 TF-IDF)来对示例进行特征化,以对训练实例进行排名。我们测量候选训练数据 D 和验证数据 DvalD_{val}Dval 之间的相似度,并选择相关性得分最高的前 k 个数据点来构建 DtrainD_{train}Dtrain。
另一个baseline是 DSIR,它使用 n-gram,然后根据这些估计的权重对数据进行采样以构造 DtrainD_{train}Dtrain。
我们还与 RDS(基于表示的数据选择)进行比较,后者使用模型的隐藏表示作为数据选择的特征。
为了公平比较,我们使用等式(2)计算相似度得分,但用每个序列最后一个token的最后层表示替换梯度特征。这些特征在 LLAMA-2-7B 中是 2048 维的。我们考虑的另一个直观baseline直接使用验证数据 DvalD_{val}Dval 进行训练,但这会大大降低性能。
5.3. 关键结果
- LESS 在不同的模型中都是有效的。表2显示在所有模型和评估数据集中,LESS 始终优于随机选择 2 到 5 个点,这表明我们的数据选择方法选择有用的数据进行微调。
- 5% 的数据通常优于完整数据集。在表 2,我们比较了使用 LESS 选择的 5% 数据进行的训练和使用完整数据集进行的训练。令人惊讶的是,我们发现在大多数情况下,仅使用 5% 的数据进行训练会比使用整个数据集产生更好的结果。我们假设完整数据集包含与特定目标任务无关或有害的数据点。当使用更强的基础模型(例如:LLAMA-2-13B 和 MISTRAL-7B)时,这种效果更加明显。
我们注意到,被丢弃的 95% 中可能仍然有有用的数据,我们将探索未来工作的最佳阈值。
- 使用小模型选择的数据可以提高较大和不同模型的性能。表 2 评估了几种 LESS-T 设置。我们使用 LLAMA-2-7B 作为选择数据的模型并训练 LLAMA-2-13B (即更大的模型)和 MISTRAL-7B ((即不同的模型系列)作为目标模型 MTM_TMT。LESS-T 优于随机选择,与LESS(即直接使用LLAMA-2-13B 或 MISTRAL-7B作为选择模型MSM_SMS)相比差距较小。 LESS-T 的强大性能表明 LESS 选择了普遍有用的数据,因此数据选择成本可以进一步摊销到不同的模型中。从概念上讲,我们在第 2 节中的推导指出,当不同examples的梯度内积对于 MSM_SMS 和 MTM_TMT 大致相等时,使用一种模型选择的数据集会在另一种模型中产生强大的性能。我们的实验证实这一发现是正确的,因此,在预训练和上下文学习中,小模型可以有效地为其他模型选择数据。
- 与其他 baseline 相比 LESS 是唯一持续有效的方法:在表 3 中,我们将 LESS 与几个基线进行了比较。我们观察到依靠词频统计(例如:BM25)、n-gram 特征(例如:DSIR)或表示(例如:RDS)的传统方法相对于随机选择的改进很小,并且 LESS 始终优于最强的基线。我们承认基线方法的计算成本较低。尽管如此,我们的研究结果表明,指令数据需要对数据点之间的相似性进行精确定义(即,定义 3.1 中的影响力公式)。尽管基线方法通常选择与查询和补全在主题或语义上相似的数据,但定性分析(第 6.2 节)表明LESS更擅长选择与目标任务DvalD_valDval需要相同推理过程(即:指令如何执行)的数据。
6. 分析
我们通过两种方式来分析 LESS。首先,我们详细介绍了 LESS 的计算成本,并探讨了不同的设计选择如何影响性能(第 6.1 节)。其次,我们提出了定性分析,表明了 LESS 选择了与目标任务所需的推理能力相符的数据(第 6.2 节)。
6.1. 计算复杂度
表 4 描述了 LESS 每一步所需的渐近复杂度、运行时间(wall-clock runtime)和存储成本。表中的运行时间以单个 A100 (80GB) GPU 小时来测量。梯度特征计算是最昂贵的步骤,并且成本与候选数据集大小 |D|、检查点数量 N 和梯度维度 d 线性增长。存储结果的梯度数据存储所消耗的内存与d成线性比例。热身训练也相对昂贵,并且复杂性随着 ∣Dwarmup∣|\mathcal{D}_{warmup}|∣Dwarmup∣ 和 N 的变化而变化。然而,这两个阶段产生的费用是一次性成本,可以在许多目标任务中摊销。
在以下部分中,我们将探讨 ∣Dwarmup∣|\mathcal{D}{warmup}|∣Dwarmup∣ 、N 和 d 的选择如何影响 LESS 的性能。总之,增加 Dwarmup\mathcal{D}{warmup}Dwarmup 和 N 可以提高影响评估的准确性(定义 3.1),但这样做也会增加预热训练步骤的成本。同样,增加 d 可以提高投影梯度特征的效用,但这样做也会增加 LESS 所需的内存和计算量。
热身训练至关重要。热身训练步骤在 Dwarmup\mathcal{D}_{warmup}Dwarmup 上微调模型,通常是数据 D 的随机 5%。我们调查:
- (1) 是否此步骤是必要的
- (2) 使用更多数据是否可以进一步提高性能。
对于(1),我们使用预训练的 LLAMA-2-7B 和 LLAMA- 2-7B-CHAT 作为选择模型来创建用于选择数据的梯度数据存储。表 5 表明,使用预训练的模型进行数据选择会严重损害LESS的性能。这一观察结果可能源于输入分布的变化,或者更一般地说,源于训练动态中的细微差别。我们将详细的调查留给未来的工作。
对于 (2),我们将 Dwarmup\mathcal{D}{warmup}Dwarmup 的大小更改为 5%(默认值)、25% 和整个数据集并计算 InfadamInf{adam}Infadam。增加Dwarmup\mathcal{D}{warmup}Dwarmup提高性能,证实了我们的假设,即更准确地估计 InfadamInf{adam}Infadam(定义 3.1)是有帮助的。因此,预热阶段至关重要,但不需要太长的时间,LESS 就能产生强劲的性能。
更多检查点,更好的性能。我们调查在热身训练阶段使用较少的检查点(即对定义 3.1 中较少的梯度特征进行求和)是否会影响 LESS 的性能。表 6 显示,仅使用一个 LoRA 检查点的性能优于随机选择,但低于使用四个检查点的性能。我们推测这是因为梯度特征在指令调优开始时发生了很大变化。
小的投影维度就足够了。我们学习选择不同的梯度投影维度 d,特别是 1024、2048、4096 和 8192(默认),如何影响 LESS 的性能。图 2 显示,d 的所有选择都比随机选择提高了性能,并且随着 d 的增加,LESS 以更高的计算成本产生更强的性能(参见表 4)。
6.2. 定性分析
我们手动比较 LESS 和 baseline 方法选择的数据。表 15 显示了 BM25、RDS 和 LESS 选择的top示例,给出了来自TYDIQA数据集的单个孟加拉语问答示例。
BM25 和 RDS 只是简单的匹配少样本(few-shot)数据Dval\mathcal{D}_{val}Dval,并从不同的任务中选择孟加拉语示例(掩模恢复和仇恨言论检测)。
相比之下,LESS 从类似于 TYDIQA 的开卷问答任务中选择英语示例。此示例表明,LESS 选择具有相似底层推理类型的示例,而不会严重依赖表面文本或语言提示。尽管使用不同的语言,此类示例仍然可以有效地零样本(zero-shot)迁移到孟加拉语。
此外,我们观察到LESS从DOLLY数据集中为TYDIQA选择了更多的例子,可能是因为DOLLY包含了许多开卷问答的例子。我们的研究结果表明,LESS 可用于提高大型通用指令微调数据集的可解释性。
7. 相关工作
7.1. 整理高质量的指令调优数据
使用高质量的指令调优数据可以显著提高 base LLMs。指令调优数据通常有两种类型:
- (1)从传统 NLP 任务中收集的基于任务的数据集
- (2)开放式指令遵循数据集,涵盖广泛的主题。
事实证明,提高数据质量和多样性而不是数量可以更有效地诱导指令遵循能力。我们的工作通过从大量可用数据集中选择高质量的相关数据来丰富这一叙述,以在模型中引入特定的能力。
7.2. 核心集和基于梯度的数据选择
数据集选择问题被视为核心集选择问题,其目的是找到训练示例的子集,从而产生与完整数据集训练类似的性能。通常这些工作侧重于领域内核心集选择,而我们的工作涉及迁移学习。
之前的几项工作使用预定义的有用数据概念或 n-gram 特征来选择预训练示例,但 LESS 更接近类似于对梯度信息的依赖。我们的工作最接近 Han et al. (2023),它使用模型梯度来选择预训练数据以提高上下文学习性能。然而,我们的离线方法可以非常有效地适应新的下游任务。
7.3. 数据归因和影响函数
我们的影响力公式已被用于识别错误标记的例子、分析记忆效果以及得出各种可解释性见解,但它不允许反事实推理。
另一方面,影响力函数可以对模型行为和训练数据进行反事实推理,但一些研究发现其鲁棒性存在局限性和有效性。
在 LLM 场景中,影响力函数的计算成本很高,尽管一些并发工作提出使用高效的影响力函数估计来选择预训练数据。我们的研究结果表明,一阶影响力近似对于迁移学习环境中的数据选择是有效的。
8. 讨论和未来的工作
我们提出了一种基于优化器感知影响力的数据选择算法 LESS。 LESS 创建了一个有效且可重用的低维梯度特征的数据存储,以实现高效的数据选择。第 5 节中的实验证明了 LESS 与相关基线相比的有效性,并强调了使用较小模型选择数据来训练较大模型的能力(表 2)。第 6 节中的分析和消融实验表明,我们的方法选择了更多可解释的数据,但计算成本可能很高。
将来,LESS 可以有效地用于测试时间自适应,使模型能够适应根据用户提供的上下文和示范来选择的数据。此外,我们可以修改数据选择过程,以最小化任何可微分指标(例如,毒性和危害性的替代指标),而不仅仅是交叉熵损失。此外,我们的实验发现可能会促使我们进一步研究梯度特征在数据选择中的作用,而不是表面形式线索。对优化特性和序列级梯度现象(第 3.2 节)的见解可能具有理论意义。
我们观察到,调优更多数据会降低特定任务的性能,这也可能与 LLMs 中观察到的灾难性遗忘行为密切相关。
9. 局限性
- 需要热身训练阶段。预热训练阶段对于获得有用的梯度特征以进行数据选择至关重要。显然,我们必须微调base模型以与我们打算选择的特定数据分布保持一致,因为直接利用 LLAMA-2-7B 或者 LLAMA-2-7B-CHAT 等预训练模型的梯度并不有效(表5)。这一额外步骤增加了 LESS 的复杂性和计算负载。
- 完成Token的平均梯度。 所有完成Token的平均梯度用作代表整个序列的代理。在训练或验证数据中涉及较长序列的场景中,例如:开放式生成,这种合并可能会变得更加模糊且效率较低。在第 3.2 节中,我们重点介绍了此操作如何导致数据选择流水线中出现异常。
- 最小化损失不会单调提高性能。最小化验证损失(即交叉熵损失)并不总能提高指令调优中的任务性能。这是因为指令调优任务通常需要模型产生长格式的生成。尽管困惑度与基本 LLMs 中的任务表现非常一致,但在微调或指令调优中,这种关系更加模糊。 LESS 的动机是选择最小化验证损失的数据点(第 2 节),这种策略通常会产生高精度模型(表 2),但最小化损失并不会单调提高准确性。
- 数据选择中的线性度:第 2 节中的一阶近似忽略了将多个数据点添加在一起的影响。特别是,两个重复的点将获得同样高的分数,并被认为可以双重改进模型,尽管情况可能并非如此。 Saunshi et al. 的初步理论 (2023) 讨论了影响力何时可以线性增加,但总的来说,我们认为这种近似是 LESS 的限制。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取==🆓

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)