目录
大语言模型的知识蒸馏综述
arXiv:2402.13116
摘要
本文是一篇关于大语言模型(LLM)中知识蒸馏(KD)的文献综述
- KD成为LLM中压缩模型以及模型的自我提升的重要方法;
- 调查结构:围绕算法,技能和垂直化三个支柱
- 调查了数据增强 (DA) 如何在KD中提升LLM性能;
- 目的:本文概述KD当前方法,为未来指明研究方向
- https://github.com/Tebmer/Awesome-Knowledge-Distillation-of-LLMs
引言
专有llm与开源llm比较
专有llm:
特点:具有巨大规模和复杂性
举例:GPT4
优点:
- 具有突现能力:指的是在训练过程中没有特别设计或显式教授的情况下,模型自发展示出的高级能力。
- 在广泛应用中表现出色
缺点:
- 有限的可访问性和更高的使用成本,使它们对个人和更小的组织不太可行
- 在数据隐私和安全中存在问题:使用这些专有llm通常需要向外部服务器发送敏感数据
- llm的通用目标设计使得它们并不是总与生态位应用的具体需求保持一致
开源llm:
举例:LLaMa, Mistral
特点:开源,模型更小
优点:
- 可访问性和适应性:没有费用和使用限制,这些模型更容易获得广泛用户
- 具有可定制性,可以解决特定需求
缺点:
- 规模和资源相对有限:更小的模型大小和更少的参数
- 预训练投入较少: 限制模型对不同的特定主题的理解
- 更少的微调步骤: 缺乏微调步骤可能会影响模型在特定应用中的有效性
KD在llm的作用
KD是弥合专有llm和开源llm差距的手段。
- 增强开源llm的能力
- 压缩模型使llm更容易被访问
- 促使模型自我改进
概述
与传统KD比较
传统KD: 在深度学习中,将知识从更大更复杂网络转移到更浅更高效的网络。可以在实际应用中减轻对计算资源的需求。
llm中的KD:焦点从单纯的架构压缩转移到更细微的知识提取和转移。因为GPT-4 和 Gemini 等 LLM 拥有的广泛而深入的知识以及一些 LLM 参数无法被访问。
llm中KD的特点:通过设计好的提示从LLM中提取特定的知识和能力。更专注于推理模式 、偏好对齐和值对齐等抽象品质的学习。
与数据增强的联系
LLM中的DA:DA生成针对特定领域和技能量身定制的新颖、上下文丰富的训练数据。
KD利用DA提示LLM生成特定技能或专业领域的显示数据,这些数据不仅体积大,而且质量高。DA不仅帮助模型复制教师模型的输出行为,还使得模型能够学习其深层次的理解和认知策略,从而在特定任务和领域中表现优异。
LLM KD的四个阶段
LLM 中的KD分为四个步骤
- 将教师LLM引导到特定目标技能或领域。这是通过指令实现的,使教师模型生成可供学习的特定知识或技能的输出
- 向教师LLM提供种子知识。这里种子知识是与教师模型引出技能和领域相关的小数据库或数据线索。它促使教师LLM根据这个初始信息生成更精细和详细的输出。
- 针对种子知识和指令,LLM生成知识样例。这些示例主要以问答对话或叙述解释的形式,与自然语言处理/理解能力保持一致。
- 使用生成的知识样例训练学生模型。
以上的四个步骤可以被两个公式表达
D
I
(
K
D
)
=
{
P
a
r
s
e
(
o
,
s
)
∣
o
∼
p
T
(
o
∣
I
⊕
s
)
,
∀
s
∼
S
}
D^{(KD)}_I = \{Parse(o,s)|o \sim p_T(o|I \oplus s),\forall s \sim S\}
DI(KD)={Parse(o,s)∣o∼pT(o∣I⊕s),∀s∼S}
其中
⊕
\oplus
⊕表示将两段文本相加,
I
I
I表示任务,技能或领域的指令或模板,
s
∼
S
s \sim S
s∼S表示一个知识种子,
P
a
r
s
e
(
o
,
s
)
Parse(o,s)
Parse(o,s)指的是教师LLM的输出样例,
p
T
p_T
pT表示参数为
θ
T
\theta_T
θT的教师LLM模型。
D
I
(
K
D
)
D^{(KD)}_I
DI(KD)表示所有输出组成的数据集。
学习目标表示为
L
=
∑
I
L
I
(
D
I
(
K
D
)
;
θ
S
)
L=\sum_{I}L_I(D^{(KD)}_I;\theta_S)
L=I∑LI(DI(KD);θS)
∑
I
\sum_{I}
∑I表示很多任务和技能被蒸馏到一个学生网络,
L
I
L_I
LI是一个学习目标,
θ
S
\theta_S
θS是参数为S的学生网络。
知识蒸馏算法
这里算法分为两步:从教师LLM刺激得到知识,传入到学生LLM中。
知识
标记(labling)
概念:标记知识是指使用教师LLM将给定输入x的输出y。标注y作为种子知识。
D
(
l
a
b
)
=
{
x
,
y
∣
x
∼
X
,
y
∼
p
T
(
y
∣
I
⊕
c
⊕
x
)
}
D^{(lab)} = \{x,y|x \sim X,y \sim p_T(y|I \oplus c \oplus x)\}
D(lab)={x,y∣x∼X,y∼pT(y∣I⊕c⊕x)}
缺点:人工标注开销大,数据规模小
扩展(expansion)
概念:教师通过上下文学习生成与给定演示相似的样本。
D
(
e
x
p
)
=
{
(
x
,
y
)
∣
x
∼
p
T
(
x
∣
I
⊕
c
)
,
y
∼
p
T
(
y
∣
I
⊕
x
)
}
D^{(exp)}=\{(x,y)|x \sim p_T(x|I \oplus c),y \sim p_T(y|I \oplus x)\}
D(exp)={(x,y)∣x∼pT(x∣I⊕c),y∼pT(y∣I⊕x)}
缺点:数据缺乏多样性,可能会扩散种子中的错误或偏执。
数据策展(data curation)
概念:教师根据元信息合成高质量或大规模的数据。创建合成数据集的能力将成为人工智能的一个关键技术技能和重点领域
D
(
c
u
r
)
=
{
(
x
,
y
)
∣
x
∼
p
T
(
x
∣
I
⊕
m
)
,
y
∼
p
T
(
Y
∣
I
⊕
x
)
}
D^{(cur)}=\{(x,y)|x \sim p_T(x|I\oplus m),y \sim p_T(Y|I\oplus x)\}
D(cur)={(x,y)∣x∼pT(x∣I⊕m),y∼pT(Y∣I⊕x)}
m表示帮助模型合成x的元信息。
特征(feature)
概念:将数据输入教师网络并提取其特征,如logits和features。提供了比黑盒蒸馏更透明的方案,可以更深入的了解和控制蒸馏过程。
D
(
f
e
a
t
)
=
{
(
x
,
y
,
ϕ
f
e
a
t
(
x
,
y
;
θ
T
)
)
∣
x
∼
X
,
y
∼
Y
}
D^{(feat)}=\{ (x,y,\phi _{feat}(x,y;\theta_T))|x\sim X,y\sim Y\}
D(feat)={(x,y,ϕfeat(x,y;θT))∣x∼X,y∼Y}
ϕ
f
e
a
t
\phi_{feat}
ϕfeat表示从教师网络提取特征的操作。
缺点:从白盒 LLM 中提取的学生模型可能比黑盒模型表现不佳,因为黑盒教师 LLM(例如 GPT-4)往往更强大。不适用于参数无法访问的黑盒LLM。
反馈(Feedback)
概念:教师提供对学生生成的反馈
D
(
f
b
)
=
{
(
x
,
y
,
ϕ
f
b
(
x
,
y
;
θ
T
)
)
∣
x
∼
X
,
y
∼
p
S
(
y
∣
x
)
}
D^{(fb)}=\{(x,y,\phi_{fb}(x,y;\theta_T))|x\sim X,y\sim p_S(y|x)\}
D(fb)={(x,y,ϕfb(x,y;θT))∣x∼X,y∼pS(y∣x)}
ϕ
f
b
\phi_{fb}
ϕfb表示教师网络返回的反馈。这种反馈知识不仅可以提炼到学生中并生成反馈,还使学生根据其反馈,改进响应。
自知识(self-knowledge)
概念:学生首先生成输出,然后将其过滤为高质量输入或由学生本身评估。随着学生模型的自我改进,可以进一步增强学生能力。
D
(
s
k
)
=
{
(
x
,
y
,
ϕ
s
k
(
x
,
y
)
)
∣
x
∼
S
,
y
∼
p
S
(
y
∣
I
⊕
x
)
}
D^{(sk)}=\{(x,y,\phi_{sk}(x,y))|x\sim S,y\sim p_S(y|I\oplus x)\}
D(sk)={(x,y,ϕsk(x,y))∣x∼S,y∼pS(y∣I⊕x)}
ϕ
s
k
\phi_{sk}
ϕsk表示对自生成的输出 y 的附加过程,它可以包括但不限于过滤、奖励或任何其他增强或评估 y 的机制。
蒸馏
介绍从教师网络中得到的知识有效转移到学生网络的方法。
监督微调(supervisedfine-tuning)
概念:监督微调是一种使用标注数据(由教师模型生成的标签)来训练模型(学生模型)的方法。
L
S
F
T
=
E
x
∼
X
,
y
∼
p
T
(
y
∣
x
)
[
−
l
o
g
p
S
(
y
∣
x
)
]
L_{SFT} = E_{x\sim X,y\sim p_T(y|x)}[-log p_S(y|x)]
LSFT=Ex∼X,y∼pT(y∣x)[−logpS(y∣x)]
散度和相似性(divergence and similarly)
基于散度:基于散度的模型最小化了教师模型与学生模型的相似性。强迫学生模型覆盖教师模型的所有模式
模式覆盖现象:当学生模型无法学习复杂教师模型的所有模式时,可能会发生“模式覆盖”现象。这意味着学生模型会尝试覆盖教师模型的所有输出模式,但由于其能力有限,它会将概率质量(probability mass)分配给教师模型分布中概率较低的标记(tokens)。这种现象可能导致以下问题:
-
幻觉(Hallucinations):学生模型生成的内容可能在真实情况下不存在或不合理。
-
低质量生成:学生模型生成的内容质量较低,不符合预期。
基于相似性:这些方法使用各种相似性度量来衡量和优化两个模型之间内部表示的一致性。确保学生模型不仅产生与老师相似的输出,而且还以相当的方式处理信息。
强化学习(reforcement learning)
探索了使用强化学习将知识提取到学生网络的方法。这个方法包含两个阶段。
- 蒸馏奖励模型训练。使用教师网络生成的反馈数据训练一个奖励模型。损失函数为
L R M ( r ϕ , D f d ) = − E ( x , y w , y l ) ∼ D f d [ l o g σ ( ( r ϕ ( x , y w ) − ( r ϕ ( x , y l ) ) ] L_{RM}(r_{\phi},D^{fd})=-E_{(x,y_w,y_l)\sim D^{fd}}[log \sigma ((r_{\phi}(x,y_w)-(r_{\phi}(x,y_l))] LRM(rϕ,Dfd)=−E(x,yw,yl)∼Dfd[logσ((rϕ(x,yw)−(rϕ(x,yl))]
其中, y l y_l yl,表示相对于教师模型偏好而言的“失败”输出, y w y_w yw,相对于教师模型偏好而言的“成功”输出。通过比较“获胜”输出和“失败”输出,奖励模型可以学习到哪些输出更符合教师模型的偏好,从而在以后的生成中优先选择更优质的输出。 - 强化学习优化。学生模型被优化以最大化以最大化根据已训练奖励模型的期望奖励。同时,它需要最小化与参考策略的偏差。RL目标表示为:
max π θ E x ∼ X , y ∼ π θ ( y ∣ x ) [ r ϕ ( x , y ) ] − β D K L [ π θ ( y ∣ x ) ∥ π ref ( y ∣ x ) ] \max_{\pi_{\theta}} \mathbb{E}_{x \sim X, y \sim \pi_{\theta}(y|x)} \left[ r_{\phi}(x, y) \right] - \beta D_{KL} \left[ \pi_{\theta}(y|x) \| \pi_{\text{ref}}(y|x) \right] πθmaxEx∼X,y∼πθ(y∣x)[rϕ(x,y)]−βDKL[πθ(y∣x)∥πref(y∣x)]
这个 RL 框架不仅确保学生模型从老师那里学习显式内容,而且还有效地采用了教师的偏好模式。
排序优化(ranking optimization)
排名优化提供了一种稳定且计算效率高的替代强化学习(RL)的方法,用于将偏好反馈注入语言模型。这种方法不同于传统的RL方法,它在微调过程中直接将来自固定偏好数据集的排名信息整合到语言模型中。
技能的蒸馏(skill distillation)
侧重于LLM中不同技能的蒸馏。
上下文跟随(context following)
将LLM处理各种上下文的能力转移到学生模型中。
-
指令跟随(instruction following)
概念:指令跟随能力是指LLMs能够理解并执行用户提供的指令的能力。
方法:获得这种能力的主要方法之一是构建类似指令的提示-响应对(prompt-response pairs),并通过SFT对模型进行训练。
手动创建数据集:人工密集型工作,获得大规模数据集不现实。
根据模板的转换:生成缺乏多样性,可能与人类输入不完全对齐 -
多轮对话(multi-turn dialogue)
概念:要求模型型不仅需要理解单个指令,还需要在连续的对话中保持上下文的一致性。这意味着模型需要记住之前的对话内容,并在此基础上作出连贯的回应。 -
RAG能力(RAG capability)
概念: 检索增强生成(Retrieval-Augmented Generation, RAG) 技术结合了检索和生成模型的优点,通过引入外部信息来增强生成的答案,减少事实错误。
对齐(alignment)
对齐深入研究了学生将其输出与教师响应对齐的能力
-
思考模式(thinking pattern)
现有方法通常通过监督学习将学生模型的响应与教师模型的响应直接对齐, 但是学生模型往往学会模仿教师模型的响应风格,而不是其推理过程。因此,为了更好地从教师模型中提取,提出了不仅模仿纯响应而且模仿一些新的思维模式的方法。 -
偏好(preference)
过去的模型可能产生严格准确但可能不符合人类偏好的结果。早期的方法主要利用人类反馈来实现与人类偏好的对齐,但由于获取人类反馈的成本高且劳动强度大,近年来也提出了利用AI反馈来实现与人类偏好的对齐。 -
价值(value)
为了建立值得信赖的LLMs,还提出了“与人类价值观对齐”的概念,并将对齐的关键原则总结为“HHH”标准:有帮助的(helpful)、无害的(harmless)、诚实的(honest)。
智能体(agent)
智能体强调了语言模型的自主性质
-
工具使用(tool using)
大语言模型(LLMs)在解决各种任务方面表现出色,但在处理大数值或执行复杂的数学计算时仍然容易出错。因此智能体应当具备能应用工具的能力。
方法:使用人类精心设计的数据训练,提示设计 -
计划(planning)
将高水平的任务分解并生成合理的目标驱动行动计划在交互环境中执行任务很重要。
方法:提示策略,人类设计数据
NLP任务专业化(NLP task specialization)
通过从LLMs中提取知识,可以有效地为学生模型提供监督,帮助它们适应各种NLP任务。
-
自然语言理解(natural language understanding)
NLU是自然语言处理(NLP)中的一项基础任务,涉及对人类语言的理解和解释。通过从大语言模型(LLMs)中提取的知识,例如通过数据标注或增强,通常会转移到基于编码器的语言模型中。 -
自然语言生成(natural language generation)
NLG涵盖了摘要生成、机器翻译以及其他开放式文本生成任务。LLMs在这些领域表现出色,使其成为将知识提炼到专门用于NLG任务的学生模型中的主要来源。 -
信息检索(information retrieval)
IR专注于从大量信息库中高效地检索与用户查询相关的信息。LLMs在IR系统中的实际应用面临挑战,主要是由于其生成速度较慢,这与IR任务的低延迟要求相冲突,因此,LLMs的知识蒸馏(Knowledge Distillation, KD)成为IR的一个更有前途的方法。 -
推荐(recommendation)
大语言模型(LLMs)可以直接用作推荐系统而无需微调,或者生成辅助的文本特征以增强推荐系统的性能。为了解决大模型响应时间长的问题,一些研究探索了将LLMs的知识提炼并集成到推荐系统中的方法。 -
文本生成评估(text gemeration evaluation)
文本生成评估可以评估生成内容的质量。LLM提供了更细致且符合人类标准的评估,因为它在广泛的数据集上训练,并经过强化学习人类反馈(RLHF)等技术进行优化。 -
代码(code)
当LLM在包含大量代码的语料库上训练时,其在与代码相关的任务中表现出色。任务包括:代码生成,提供外部知识。
多模态(multi modility)
MLLMs是能够处理和理解多种模态(如文本、图像、音频等)信息的模型。这些模型通过综合不同模态的信息,提供更全面和准确的理解和生成能力。
视觉-语言(vision-language): 将图片翻译成语言描述
多模态(multi modilities):扩展llm的知识蒸馏,使其包含视频,音频等更多模式。
不同垂直领域的蒸馏(domain-specified vertical distillation)
本节包含在不同垂直领域的KD
法律
法律智能应用通常需要法律文本检索、理解、推理和生成的多个基本能力的组合。
挑战:法律术语的复杂性、细微解释以及不断演变的立法
普遍方法:在法律语料库上预训练,使用高级 LLM 使用自构建的指令或增强数据进行微调。
医疗和医疗保健
随着电子健康记录、医学文献和临床数据的不断扩展,研究人员投入了大量精力以将通用LLMs适应于医疗领域。
他们通过分析患者数据和医学文献来提高诊断准确性,提供个性化推荐并识别潜在的药物相互作用。
金融
LLM 在理解复杂的金融文件、预测市场趋势和自动化风险评估方面提供了强大的能力,从而实现更明智和更快的决策过程。聊天机器人可以处理复杂查询,增进客户体验。
科学
LLMs在科学中的应用有助于消化和综合大量文献,帮助识别新的研究机会并加速科学突破。
数学:LLM探索和理解数学理论和问题,提供解决方案,证明和直观解释
天文学:通过天文学语料库的训练,LLM可以回答天文学相关问题。
化学和材料科学:用于发现新的化合物和材料,并预测它们的性能
生物学:预测蛋白质的三维形状、势函数和相互作用的规模和速度。
地理地质和环境科学:在地球科学语料库进行预训练,LLM可以实现相关任务。
其他
教育:通过教育语料库的预训练和自定义指令的微调来强调知识蒸馏,以激活特定于教育的功能,如开放式问答、论文评估和情感支持。
IT操作:Owl模型利用了独特的Owl-Instruct数据集,该数据集涵盖了广泛的IT相关信息,并采用了混合适配器策略来进行高效的领域特定调整
开放式问题
进一步选择数据:LLM 蒸馏需要多少数据以及如何过滤掉低质量的数据。
只需要很少数量的数据用于对齐->如何选择数据用于蒸馏?
减少蒸馏损失:如何减少资源的利用。
普遍方法:压缩模型,高效的微调
多教师蒸馏:用不同数据源训练的模型可以具有各种能力。可否使不同的教师模型训练一个学生模型。
从教师网络探索更丰富的知识:现有模型将教师模型的生成作为硬标签,但是人们对利用教师llm更丰富的知识,包括反馈和特征知识,并探索知识启发方法的不同组合越来越感兴趣。
方法:教师提供不同种类的反馈。使用logits作为软标签。
蒸馏过程中克服灾难性遗忘:llm在特定数据集(技能、领域)上的持续微调可以导致一种称为灾难性遗忘的现象,其中先前获得的早期任务知识和解决问题的能力受到损害。
克服方法:重复,周期性的重新学习过去的数据。给模型输入和之前相似,但又不同的指令。
可信任的知识蒸馏:LLM可信包括真实性、安全性、公平性、鲁棒性、隐私和遵守机器伦理等属性。较小的开源LLM在可信度方面通常比专有的LMM查。
由弱到强蒸馏:使较弱的模型能够指导较强的模型学习。
方法:利用较小模型的弱监督信号改变大模型表现。使用较小的模型筛选高质量数据。
自对齐:在自我对齐中,学生模型尝试自主改进和对齐其响应,包括生成模型书写的反馈、批评和解释。
方法:学生模型产生改进的回应。使用学生作为奖励模型提供反馈。