首页 > 教程攻略 > ai资讯 >一文彻底搞懂大模型 - Fine-tuning三种微调方式

一文彻底搞懂大模型 - Fine-tuning三种微调方式

来源:互联网 时间:2026-08-26 14:23:52

随着生成式AI和大语言模型(比如GPT、LLaMA)的普及,微调(Fine-tuning)已成为让模型适配特定任务的核心手段。下面就来聊聊三种主流微调方式——Prompt-tuning、Prefix-tuning和LoRA,看看它们各自的原理、特点和适用场景。

(上图示意了微调在模型训练中的位置)

方式一:Prompt-tuning

什么是Prompt-tuning?

简单说,Prompt-tuning就是通过修改输入文本的提示(Prompt)来引导模型输出符合预期结果,而不用动模型的全部参数。它利用预训练语言模型(PLM)在零样本或少样本场景下的强大能力,仅靠调整输入提示就能激活模型内部相关的知识和能力。

核心原理:

预训练模型(PLM)不动,模型权重(W)不变,只改变输入(X)。

如何进行Prompt-tuning?

在小模型上适配下游任务,核心是设计任务相关的提示模板,然后微调提示嵌入(Prompt Embeddings)来引导模型。具体步骤包括:

  1. 设计提示模板

    ——模板中要包含任务描述、输入文本占位符、输出格式要求等。
  2. 准备数据集

    ——包括输入文本、真实标签(监督学习)或预期输出格式(生成任务)。
  3. 微调提示嵌入

    ——在模型输入层添加提示嵌入层,用数据集训练并微调这些嵌入,而不是整个模型参数。

这样一来,需要更新的参数量极少,适合资源有限的场景。

方式二:Prefix-tuning

什么是Prefix-tuning?

Prefix-tuning可以看作是Prompt-tuning的一种变体。它在输入文本前添加一段可学习的“前缀”,让前缀和输入序列一起进入注意力机制,从而影响模型对输入的理解和表示。既然前缀是可学习的,就能在微调过程中根据特定任务调整,让模型更好地适应新领域或新任务。

核心原理:

预训练模型(PLM)不动,模型权重(W)不变,输入(X)也不变,唯一增加的是前缀嵌入的权重(W')。

如何进行Prefix-tuning?

在Transformer中适配下游任务的流程是:

  1. 初始化前缀嵌入

    ——在Transformer输入层之前,初始化一个固定长度的前缀嵌入矩阵。
  2. 将前缀嵌入与输入序列拼接

    ——拼接后的新表示会作为各层的输入。
  3. 训练模型

    ——只更新前缀嵌入的参数,模型其余部分冻结,通过反向传播优化。

相比Prompt-tuning,Prefix-tuning的“前缀”可以放在更深的层,对不同层施加不同影响,灵活性更高。

方式三:LoRA

什么是LoRA?

LoRA(Low-Rank Adaptation)的思路更巧妙:它将预训练模型中的部分权重矩阵分解为两个低秩矩阵,只微调这些低秩矩阵的少量参数。具体来说,对于预训练权重矩阵 W₀∈Rᵈ×ᵈ,全参数微调的增量 ΔW 被分解为两个小矩阵 A 和 B 的乘积,即 ΔW = AB。其中 B∈Rᵈ×ʳ,A∈Rʳ×ᵈ,秩 r 远小于 d。

核心原理:

模型权重(W)不变,输入(X)不变,但将 ΔW 拆解成两个低秩矩阵 A 和 B 来近似。

如何进行LoRA微调?

在冻结预训练模型权重的基础上,训练低秩矩阵 A 和 B。具体步骤:

  1. 设置LoRA模块

    ——在预训练模型中添加两个参数量很少的矩阵 A 和 B,它们的乘积用来近似全参数微调的增量。初始化时通常让 BA = 0(比如用高斯初始化),确保起点与全参数微调一致。
  2. 训练LoRA模块

    ——冻结原模型权重,只更新 A 和 B。通过优化算法(如Adam)最小化下游任务的损失函数。

LoRA的一大好处是显存和计算开销极小,实际应用中非常流行。比如开源框架

LLaMA-Factory

就集成了LoRA,支持多模型、多算法和实时监控,只需训练低秩矩阵就能快速适应新任务。

LoRA参数详解

使用LoRA时,有几个关键参数决定了最终效果,下面逐一说明。

1. 秩(Rank)
  • 参数名:lora_rank
  • 描述:秩是LoRA中最重要的参数,决定了低秩矩阵的维度。简单任务(小数据集)可以用1或2,复杂任务可能需要4、8或更高。
2. 缩放系数(Alpha)
  • 参数名:lora_alpha
  • 描述:训练开始时对低秩矩阵的更新进行缩放,保证训练稳定。具体取值和秩的大小及任务复杂度有关。
3. Dropout系数
  • 参数名:lora_dropout
  • 描述:训练过程中随机丢弃低秩矩阵中元素的概率,用于防止过拟合。常用值在0到1之间,通常设为0.1或0.2。

总结一下,三种方法各有侧重:Prompt-tuning靠改输入提示,Prefix-tuning加可学习前缀,LoRA则通过低秩分解只更新极少量参数。实际场景中,LoRA因其高效性和易用性最受青睐,但具体选哪种还得看任务需求、硬件限制和调优目标。理解了它们背后的原理,调参时就能更有的放矢了。