特征自适应和数据可扩展的上下文学习
Feature-Adaptive and Data-Scalable In-Context Learning
0 研究背景
上下文学习方法如今被广泛应用,并在下游任务中表现出优越的性能。
上下文学习(In-context Learning, ICL)是一种无需调整大语言模型(LLM)参数的学习方法,通过将少量带标签的示例添加到输入上下文中,从而提升模型在特定任务中的表现。具体而言,ICL会将几个示例(输入-标签对)作为演示样例,和测试样本一起输入模型,以便模型能够基于这些样例进行推理和预测。这种方法不需要对模型进行微调,而是通过构造上下文来间接引导模型执行指定任务。
下游任务(Downstream Task)是指在应用预训练模型时,基于特定应用场景进行的任务。这些任务是模型在预训练阶段完成后,通过微调、提示或上下文学习来解决的具体问题。下游任务通常与实际应用需求密切相关,例如文本分类、情感分析、机器翻译、问答系统等,都是自然语言处理中的典型下游任务。下游任务与预训练任务相对应。
1 研究问题
如何优化ICL方法,从而更好的提升模型在下游任务中的表现?
更详细一点就是
如何实现ICL中的数据可扩展(突破上下文长度限制)和特征自适应?
2 研究动机/现有研究局限性
2.1 传统ICL方法
ICL工作流程:
1 采样示例 (Demonstration Sampling)
ICL 的核心在于将少量示例与测试样本拼接在一起,以提供上下文信息来辅助模型推理。因此,首先需要从训练集中随机选择一些示例,称为 “Demonstrations”。示例的数量受上下文长度的限制。通常情况下,所选示例数较少,以便模型能够充分关注每个示例以及测试样本。
为什么示例数较少时模型能够充分关注每个示例以及测试样本?
- 上下文长度限制:大语言模型(LLM)能够处理的上下文长度有限。过多的示例会使提示过长,导致模型无法完整处理,或被迫截断重要信息。因此,保持示例数量较少可以确保所有信息都在模型的处理范围内,使模型能聚焦在每个示例和测试样本上。
- 信息聚焦:如果提供的示例过多,模型可能会面临过多的上下文干扰,从而难以理解和分辨任务目标。较少的示例可以让模型将注意力集中在这些关键的例子上,使它能够更清晰地理解提示内容和任务需求,而不是被无关细节分散注意。
- 降低噪声和减少冗余:少量高质量的示例有助于减少模型的推理难度,使其能够快速捕捉任务的核心模式。如果示例过多,模型需要处理的信息也会随之增加,且其中可能包含信息冗余或噪声,反而影响模型的推理效果。
2 构建模板 (Template Construction)
为了有效地引导模型的推理,ICL 会将示例和测试样本封装在一个任务特定的模板 (Template) 中。这一模板不仅用来整合示例和测试样本,还会让模型更明确任务目标。模板形式取决于具体任务,可以包括任务指示、示例格式、以及需要输出的目标类别等。例如,在情感分类任务中,模板可能会指示模型预测句子的情感是“正面”还是“负面”。
示例:假设我们进行情感分类,并选取了两个示例,每个示例格式如下:
- 输入示例 x_D 是 “I love this movie.”,标签 y_D 是“正面”。
- 输入示例 x_D 是 “I hate this movie.”,标签 y_D 是“负面”。
那么该模板可能会像以下格式呈现:
示例 1:I love this movie. -> 正面
示例 2:I hate this movie. -> 负面
预测:The movie was exciting. -> *
3 拼接提示 (Prompt Construction)
在模板构建完成后,ICL会将这些示例与测试样本拼接起来,形成最终的提示(Prompt)。这个提示就是提供给模型的输入文本。假设有 ∣D∣ 个示例和一个测试样本 x_test,则构造的提示 P 可以表示如下:
$$ P=T\left(x_{D_1}, V\left(y_{D_1}\right)\right) \oplus T\left(x_{D_2}, V\left(y_{D_2}\right)\right) \oplus \cdots \oplus T\left(x_{D_D}, V\left(y_{D_D}\right)\right) \oplus T\left(x_{test}, *\right) $$
其中,V(⋅) 是标签的词汇映射器,用来将标签ID转化为词汇表中的实际词汇,例如将“正面”映射为“positive”。
对于每一个测试样本,都会构造一个对应的提示 P。
4 模型推理 (Model Inference)
现在,提示 P 会作为输入发送到大语言模型(LLM)中,模型会基于这个上下文提示进行预测。
这一过程在技术上通过计算测试样本标签的概率分布实现:
$$ p(y \mid x) \propto p_\theta(V(y) \mid P) $$
5 归一化与预测输出 (Normalization and Prediction)
在计算出标签的概率分布后,模型会进行归一化处理,以确保所有类别的概率和为1。这一步完成后,模型会根据概率最大化原则输出最可能的标签,即选择概率最高的标签作为测试样本的预测结果。
2.2 ICL局限性
第一,上下文长度限制。
传统的ICL方法确实受限于模型的上下文窗口长度,也就是模型在单次推理中所能接收的最大文本长度。这就像在使用ChatGPT时,我们输入的prompt内容是有长度上限的。这种限制使得每次推理过程只能输入有限数量的示例,这样模型的性能就没法进一步提升了。
文中所说的“数据不可扩展性”指的就是这个问题,即模型每次推理只能处理有限的带标签示例,无法一次性利用大量示例数据来进一步提升性能。这种“数据”就是指这些带标签的示例数据。由于上下文长度有限,这些示例数据在数量上无法随意增加,从而限制了模型的性能。
扩展性在这里指的正是能够在上下文窗口中引入更多标签示例的能力。如果上下文窗口足够大,模型在推理时就能接收更多示例数据,从而在理解和完成任务时表现得更好。然而在传统ICL中,这种扩展性受到上下文窗口的限制。
第二,特征非适应性。
在ICL中,模型通常依赖于LLM预训练时所学到的通用语言特征来完成下游任务。然而,这些通用特征并未针对特定任务进行适应性调整(即“特征非适应性”问题),从而在任务表现上可能会存在不足。
在上下文学习中,ICL通过将一些示例添加到prompt中来指导模型完成下游任务。这种方式虽然不需要微调模型参数,但却只能利用通用的预训练特征,这些特征未经过特定任务的细化,难以捕捉该任务所需的细微差异和复杂语义。
例如,对于情感分类任务,预训练的通用特征可能关注的是句子的通用语义,而非特定情感的表达细节。由于缺乏针对情感分类的特定调优,模型可能难以区分细微的情感差异,导致性能下降。
假如我们现在需要对下面的句子进行情感分类,类别为“积极”或“消极”。
“虽然会议开始有些混乱,但最终讨论的结果非常有建设性。”
在这个句子中,情感表达是复杂的。前半部分提到“会议开始有些混乱”,表面上带有负面信息,而后半部分“最终讨论的结果非常有建设性”则表达了积极的情感。句子的整体情感偏向于积极,因为最终的讨论结果是建设性的。
因此会出现这样的问题:
- 过度关注负面细节:预训练的通用特征可能会重点关注句子中出现的“混乱”等负面词汇,忽略后面的积极信息。这是因为模型通常只是被动地学习到词汇和情感的相关性,而没有学会在情感分类任务中判断句子整体的情感倾向。
- 缺乏任务特定的情感分辨能力:在情感分类任务中,模型需要了解句子的整体意图以及词汇间的细微互动。例如,在这个句子中“最终”和“有建设性”这两个词指引了句子的积极方向,但大语言模型未必能从通用特征中准确捕捉这种“转折”关系。
由于模型未针对情感分类任务进行特征调整,它可能会倾向于将这个句子误分类为“消极”。原因在于:
- 模型捕捉到“混乱”这一负面词汇,并倾向于将句子的情感偏向负面。
- 通用特征对句子整体的情感转折不敏感,导致它忽略了“最终讨论的结果非常有建设性”这一积极评价。
图1:数据可扩展性和特征适应性对ICL的影响
对于数据可扩展性,基础的ICL在超过一定数据量后无法进一步提升性能,但kNN-prompting和FADS-ICL则能够继续提升。对于特征适应性,FADS-ICL针对特定任务进行特征优化,因此在所有数据设置下,显著优于使用通用特征的kNN-prompting。
2.3 现有研究
现有研究有这些。
1 提示设计方法:
- 模板搜索:一些研究致力于寻找特定任务的最佳提示模板,以便更有效地引导 LLM 的预测性能。例如,Sorensen et al.(2022)和 Prasad et al.(2023)探索了不同的模板设计。
- 示例选择:其他研究关注于为每个测试样本选择最适合的示例,如 Liu et al.(2022)、Rubin et al.(2022)和 Wang et al.(2023)所做的工作。
2 示例顺序研究:
- 有些研究探讨了示例在提示中的顺序如何影响模型性能,例如 Lu et al.(2022a)和 Wu et al.(2023)探讨了示例排列的影响。
很明显,这两类方法都没有实现数据可扩展性和特征自适应性。
3 kNN-LM 方法:
- kNN-prompt:Shi et al.(2022)提出了一种通过插值原始预测分布与附近样本的分布来进行最终预测的方法。这种方法结合了最近邻样本的信息来改进预测。
- kNN-prompting:Xu et al.(2023)提出了基于投票的预测方法,直接利用附近样本的预测结果。
这类方法把推理过程分为两部分,突破了上下文长度的限制。
但没有方法实现特征自适应性。
2.4 kNN-prompting
KL散度 (Kullback-Leibler Divergence)
KL散度是一种衡量两个概率分布相似度的方法。它用于衡量一个概率分布P与另一个参考概率分布Q之间的信息损失或差异程度。公式如下:
$$ D_{K L}(P \| Q)=\sum_i P(i) \log \frac{P(i)}{Q(i)} $$
KL散度越小,表示两个分布越相似。它通常用于计算预测概率分布与真实分布之间的差距,以判断模型的输出与真实情况有多接近。
K最近邻投票 (K-Nearest Neighbors Voting)
K最近邻(k-NN)是一种基于距离的分类算法。对于给定的测试样本,算法会在训练数据中找到与之“最近”的k个样本,让这些样本“投票”决定测试样本的类别。投票机制通常是“少数服从多数”,即选择最多邻居类别作为预测。
k-NN投票的“最近”是通过距离度量(如欧氏距离、KL散度等)来计算的,而k的值越大,投票参考样本就越多。选取合理的k值可以避免分类结果受到个别样本的影响。
kNN-prompting流程
1 训练阶段
概率分布计算:在训练阶段,模型对训练集中的每个样本计算其属于各个类别的概率分布。例如,给定一个训练样本,模型可能输出:
样本 "I love this movie." 的概率分布: [正面: 0.95, 负面: 0.05]
样本 "I hate this movie." 的概率分布: [正面: 0.10, 负面: 0.90]
...
2 测试阶段
输入测试样本:当有新的测试样本(如“The movie was exciting.”)时,模型首先计算该样本的概率分布。例如:
测试样本 "The movie was exciting." 的概率分布: [正面: 0.90, 负面: 0.10]
3 距离计算
计算距离:接下来,kNN-prompting会计算测试样本的概率分布与训练集中所有样本的概率分布之间的距离。这通常使用KL散度或其他距离度量(如欧氏距离)来完成。假设计算得到以下结果:
距离 (测试样本, "I love this movie.") = 0.1
距离 (测试样本, "I hate this movie.") = 1.2
...
4 选择k个邻居
找到最近邻:根据计算的距离,选择距离测试样本最近的k个训练样本(例如k=3)。这些样本是最相关的邻居。
5 投票机制
进行投票:将这k个邻居的类别进行投票。例如,假设这三个邻居的类别分别为[“正面”,“正面”,“负面”]。根据“少数服从多数”原则,最终的预测结果将是“正面”。
6 输出结果
返回标签:kNN-prompting将基于投票的结果返回最终的测试样本标签。
kNN-prompting通过距离计算和投票机制来推断测试样本的标签,依赖于训练样本的概率分布信息,而不直接依赖模型生成过程。这使得kNN-prompting能够灵活处理大量样本,同时不受上下文长度的限制。
总结:
kNN-prompting把推理分为两部分,第一部分为了获取训练样本的概率分布,将和测试样本相似的残差样本逐个输入到模型中,让模型计算他们的概率分布。这里由于是逐个输入样本,仅为了获取最终的概率分布,所以突破了上下文长度限制。第二部分利用k最近邻投票计算得出测试样本的标签。
通过基于概率分布的k近邻计算,kNN-prompting实现了更高的数据扩展性。它不需要将所有示例直接放入上下文中,而是基于所有可用样本的分布信息来计算邻近关系。这种方法可以灵活使用大量示例,克服了传统ICL方法在上下文长度上的限制。
尽管kNN-prompting可以通过选择邻近样本来进行一定程度的特征适应,但它使用的仍是原始模型的冻结分布,忽视了任务特定的特征优化。因此,特征适应性相对有限,无法根据任务需要灵活调整特征表示。
3 贡献/创新点
提出了一个特征自适应和数据可扩展的上下文学习框架(FADS-ICL),用于提高大语言模型(LLM)在下游任务中的推理性能。
1 特征自适应:传统的ICL方法直接使用LLM的通用特征,未能充分适应特定下游任务,而FADS-ICL通过引入一个轻量化的调制器(modulator),在下游任务中对通用特征进行细化,生成适用于特定任务的特征。这一方法首次在ICL中考虑了特征自适应问题,显著提升了性能。
2 数据可扩展性:ICL通常受限于上下文长度,难以在模型上下文中加入更多的示例数据,限制了性能提升。而FADS-ICL通过将示例数据逐个输入模型,提取通用特征,解决了数据不可扩展性的问题,使得模型在有更多数据可用时能进一步提升性能。
4 方法设计
框架图
4.1 特征提取器
在FADS-ICL框架中,大语言模型(LLM)被当作一个特征提取器。
意味着LLM的主要任务是从输入数据中提取出有用的特征,而不是直接进行最终的任务预测。
通用特征的获取
1 随机选择示例:首先,我们会从训练集中随机选择一些标记样本,这些样本将作为“示例集” S。这些样本将帮助模型理解任务的上下文。
2 构建提示:接着,我们使用一个特定任务的模板来构建提示 P_s。这个提示是指我们给模型输入的格式或结构,用于指导模型理解该任务。
3 输入样本:我们将每个样本(无论是标记样本还是测试样本)用相同的提示 P_s进行包装,然后送入LLM中进行处理。
4 特征的计算:通过前向传播,我们可以从模型中获取样本的通用特征。公式:
$$ h\left(x_i\right)=f_\theta\left(T\left(x_i, *\right) \mid P_s\right) $$
h(x_i) 是样本 x_i 的特征,f_θ 表示模型的计算函数,T(x_i, *)是处理样本的过程,P_s 表示使用提示。
5 选择最后隐藏状态:通常,我们选择LLM最后一层的隐藏状态作为通用特征,因为它能够提供模型对输入样本的深层理解。
前向传播是将输入通过模型进行处理并生成输出的过程。
隐藏状态是模型内部对输入的理解,特别是最后一层的隐藏状态提供了最为完整的特征表示。
tips
这里提到的特征被称为“通用特征”,它们主要是为语言建模任务设计的,而不是特定下游任务的优化结果。因此,在将这些特征应用于特定任务之前,需要进行进一步的特征优化和调整。
FADS-ICL对演示样本的数量不如ICL敏感。换句话说,FADS-ICL能够在较少的演示样本下仍然保持良好的性能。具体来说,只需要每个类别一个样本就足够了,而在ICL中,可能需要更多的演示样本来获得相同的效果。
总结
在FADS-ICL中,特征提取器的工作流程如下:
1 选择一些标记样本,作为理解任务的基础。
2 构建一个提示,以结构化的方式将样本输入到LLM中。
3 通过前向传播计算特征,得到每个样本的通用特征。
4 注意到这些特征是基于语言建模的,在特定任务应用前需要进行优化。
4.2 轻量级任务特定调制器
一个轻量级的调制器用于细化通用特征,以便在特定下游任务上进行特征适应并执行最终预测。
将从训练集中提取的残差样本的通用特征与其对应的标签进行匹配,并将它们作为监督信号来训练轻量级调制器:
$$ \phi=\arg \min _\phi \sum_{1 \leq i \leq|R|} \mathcal{L}\left(g_\phi\left(h\left(x_i^r\right)\right), y_i^r\right), $$
监督信号是指在训练机器学习模型时用作指导模型学习的目标输出。这些信号通常是已标注的数据,例如输入特征与对应的真实标签之间的关系。在训练过程中,模型会根据这些监督信号来调整其参数,以减少预测输出与真实标签之间的误差。
这个过程可以简述如下:
1 引入轻量级调制器:为了解决大语言模型(LLM)在特定下游任务上的适应性问题,使用一个轻量级的调制器来调整通用特征。
2 特征匹配与训练:将训练集中的通用特征与相应的标签进行匹配,利用这些配对数据作为监督信号来训练调制器,使其能够适应特定任务。
3 推理过程:在推理阶段,调制器将细化后的通用特征映射到特定任务的标签空间,从而完成预测,无需对标签进行语言化。
如何实现的数据可扩展和特征自适应?
- FADS-ICL通过分割使用标记数据(即使用固定的小部分数据作为示例,而将可扩展的残差部分用于监督特征适应过程)和多次模型调用,实现了数据的可扩展性。
- 此外,FADS-ICL通过将通用特征细化为任务特定特征,利用经过良好训练的任务特定调制器,实现了特征适应。
4.3 流程总结
如果每个类别有四个样本,且 demon=1
(即每个类别的样本中只选择一个样本作为“示例”),这些样本在 FADS-ICL 中会按照以下流程进行处理:
1 示例集与剩余集划分:
- 从四个样本中随机选取一个作为“示例样本”(即演示集中的样本),记为
S
。示例样本会用于构建输入到 LLM 的上下文,以指导特征提取。 - 剩余的三个样本则作为“剩余样本”,记为
R
。这些剩余样本将用于训练任务特定的调制器,以实现特征自适应。
2 生成上下文提示:
- 将选中的示例样本根据任务模板包装后,作为上下文提示
P_s
。这个上下文提示包含一个已知类别标签的示例,帮助 LLM 理解任务的背景。
3 特征提取:
- 对每一个“剩余样本” 和“测试样本”
$$ 剩余样本:x_i^r,测试样本:x_{test} $$
- 将上下文提示
P_s
加入输入中,形成P_s + x^r_i
或P_s + x_test
的组合输入。 - 将这个输入组合喂入 LLM,通过前向传播获取样本的通用特征。通常选择 LLM 的最后隐藏层状态作为该样本的通用特征
h(x^r_i)
。
4 任务特定调制器训练:
- 利用从“剩余样本”中提取出的通用特征
h(x^r_i)
和对应的标签y^r_i
,对任务特定的轻量级调制器(如逻辑回归或线性 SVM)进行训练。调制器学习如何将这些通用特征映射到类别标签空间,以适应特定任务的需求。
5 推理阶段:
- 在推理阶段,对于新的输入样本
x_test
,通过添加上下文提示P_s
后输入到 LLM 中提取通用特征h(x_test)
。 - 该通用特征将经过已训练的任务特定调制器,以预测最终的类别标签。
5 实验
5.1 实验设计
数据集:选择了10个不同的数据集,包括情感分类、自然语言推理和主题分类等。四个情感分类数据集:SST2、MPQA、CR和MR;两个自然语言推理数据集:CB和RTE;三个主题分类数据集:AGNews、DBPedia和TREC;一个主观性判断数据集:SUBJ。
表1:所用数据集的数据统计。
“训练样本数(TP)”表示GPT-2-xl允许的每个类别的最大训练样本数,即1024个上下文令牌。在括号内的是截断概率(TP)。
LLMs:GPT-2系列(0.8B和1.5B)、Llama-1系列(7B、13B和30B)以及Llama-2系列(7B、13B和70B)。除非另有说明,GPT-2-xl(1.5B)将用于后续大多数实验。
其他设置或细节:考虑了不同的训练样本数量 m={4,8,16,32,64,128};通过scikit-learn实现所有调制器,并在CPU上进行调制器的训练和推理过程;选择的轻量级调制器是逻辑回归;FADS-ICL中使用的示例数量为每个类别一个样本。
评估:准确率
5.2 实验结果
表2:不同数据设置下的结果
我们重新实现了kNN-prompt,而kNN-prompting则使用已发布的代码再现。在这里,LLM的规模为1.5B。下划线表示在所有基线中领先,且 p<0.05。
图3:在128个样本下不同LLM规模的结果
在不同样本数量下
- 从表2可以看出,随着可用样本的增加,所有方法的性能显著提升
- 由于数据不可扩展性,基础的ICL在训练样本达到32个后停止提升
在不同LLM规模设置下
- 随着LLM规模的增加,各方法的性能也会随之提高
- FADS-ICL始终显著优于所有其他基线
- FADS-ICL通过极少的参数设计,能够在少样本场景中以极低的成本实现最佳性能
开销比较
- FADS-ICL在运行时间和GPU内存消耗上均显著低于ICL
- ICL会将尽可能多的示例放入上下文中,随着可用样本的增加,计算和内存开销会近乎二次方增长,以便在LLM中计算交叉注意力
- FADS-ICL始终仅使用每个类别的一个样本作为示例,但需要执行与可用样本数量相等的LLM前向传递,因此计算开销呈线性增长,而内存开销保持不变
为什么一个是线性一个是二次方?
ICL在每次推理时都要将所有示例与测试样本放在一起,计算交叉注意力。这种交叉注意力机制的复杂度大约是二次方,即 O(n^2),其中 n 是输入的总长度(包括所有示例和测试样本)。FADS-ICL采用了一种分步处理的方式。它不会一次性将所有示例放入LLM中,而是始终仅使用每个类别的一个示例作为上下文中的示例。随着可用样本数量的增加,FADS-ICL不需要调整上下文的长度。每个新样本仅触发一次LLM的前向传递,计算复杂度为线性 O(n),其中 n 是样本数量。因此,随着样本数量的增加,FADS-ICL的计算开销只会线性增长。
图4:MPQA数据集上的计算和内存开销比较(256个测试样本)
5.3 创新点支撑
1 数据可扩展性
从表2可以看出,传统的ICL方法在样本数量达到32以后性能不再有所提升,而本文提出的方法依旧随着样本数量的增加而提升了性能。
2 特征自适应
似乎没有太明确的体现,仅仅是模型预测的准确率得到了提升,没有针对调制器做实验,因此无法直观体现出特征自适应这一创新点。但这一点作者在实验分析中进行了证明。
5.4 分析
5.4.1 特征自适应
图5:左(a):不同调制器在FADS-ICL中的效果。中(b):不同特征作为FADS-ICL中的通用特征的效果。右(c):示例在FADS-ICL中的作用。
左图(a)——调制器的效果:该子图显示了不同调制器对FADS-ICL性能的影响。实验结果说明参数化调制器(如MLP和Logistic回归)在精细化特征方面表现出色,优于非参数化调制器(如最近邻和决策树)。这验证了在FADS-ICL中选择合适的调制器可以更好地自适应特征,帮助模型有效地提取任务相关的特征。
中图(b)——特征类型的影响:该子图展示了不同特征选择(如最后隐藏状态和概率分布)在FADS-ICL中的表现。实验表明,使用最后隐藏状态作为通用特征,特征自适应效果优于概率分布。该结果说明隐藏状态包含了较丰富的语义信息,有助于模型更有效地自适应任务需求。这表明特征自适应在FADS-ICL中对不同特征的处理效果是不同的,且隐藏状态的特征更适合用于任务适应。
fuzzy-k
假设我们有一个分类任务,类别有“好”和“坏”两个标签,模型在处理一个文本时输出的概率分布可能是:
- “好”:0.4
- “优秀”:0.3
- “不错”:0.15
- …(其他词)
对于这个任务:
- fuzzy-1只会使用“好”或“坏”这两个标签的概率。
- fuzzy-10可能会选择包含“好”、“优秀”、“不错”等前10个与“好”或“坏”最相关的词的概率值。
这种fuzzy-k分布相较于完全的概率分布,更加紧密地围绕任务标签,且保留了重要的语义信息。
右图(c)——示例的作用:该子图分析了示例数量在FADS-ICL中的作用,包括是否添加示例、使用单一示例、多个示例和尽可能多的示例。结果显示,添加示例能够显著提升模型性能,尤其是在适当数量的情况下。这表明示例在FADS-ICL中不仅为上下文理解提供支持,还可以对特征进行任务相关的约束,进一步提升特征自适应的效果。
5.4.2 可视化
在 DBPedia 数据集上进行了特征分布的可视化,对比了有无特征自适应的情况。
图 6:特征自适应的可视化。
6 相关工作
1 示例选择与模板设计:大量研究关注于为每个测试样本设计最佳的前缀,包括示例选择、示例顺序和任务特定的模板。
这些方法并不与FADS-ICL框架冲突,反而可以结合应用,从而进一步提升模型表现。
2 基于ICL格式的微调:一些研究致力于对LLM(大规模语言模型)进行微调,以适应ICL任务。
这类方法并未成为主流应用,因为微调LLM的成本较高。
3 突破上下文长度限制:这些方法通常忽略了针对特定任务的特征优化,直接使用了为语言建模设计的特征,可能会导致在特定任务上的表现不足。
FADS-ICL采用了特征自适应方法,通过特征的优化实现对下游任务的更好支持,因而表现更佳。
7 结论
提出并实现了一个名为FADS-ICL的框架,主要在以下两个方面取得了进展。
- 任务自适应特征:通过轻量调制器的特征自适应,使得通用特征更贴合下游任务。
- 数据可扩展性:采用分离的示例和残余样本设计,使其能灵活应对不同规模的数据集。
8 局限性
FADS-ICL主要的局限性在于其适用于分类任务,但难以应用于自然语言生成任务。
因为分类任务中的类别通常较少,可以为每个类别整理出少量标注样本。而在自然语言生成任务中,生成可以视作是一个极大类别数(数万个词汇)的分类问题,数据标注成本极高。
此外,调制器的参数量与类别数量相关,类别增多时参数增长显著,也对计算资源提出了更高要求。