【大模型微调】一文掌握7种大模型微调的方法-CSDN博客

大模型LLM:最清晰解读提示工程(Prompt Engineering)-CSDN博客

(14 条消息) 万字长文之提示学习和微调大模型(Prompt Learning & Prompt Tuning) - 知乎

一、LLM三阶段

阶段

核心目标

数据需求

关键活动/产出

角色类比

预训练

构建通用知识底座与基础能力

海量无标注数据(互联网文本、书籍等)

无监督 / 自监督学习,掌握词汇的含义、句子的构造规则以及文本的基本信息和上下文,产出基座模型,拥有了普遍适用的预测能力。

通识教育,培养一个“博学的学生”

微调

使模型适配特定任务或领域,优化其行为

少量高质量标注数据或人类反馈

通过监督微调、指令微调、基于人类反馈的强化学习等方法,对模型权重进行细微调整,产出领域/任务专家模型。

专业培训,将通才塑造成律师、医生等专家

应用(推理)

利用训练好的模型解决实际问题

用户输入的提示词,有时结合外部知识库

模型根据输入生成文本、代码或答案,参数固定,不学习。

实际工作,专家利用所学知识产出成果

大模型的训练过程通常分为两大阶段:预训练和微调。

二、提示工程和微调的区分

对比维度

提示工程 (Prompt Engineering)

微调 (Fine-Tuning, 包括SFT)

核心本质

使用模型的技巧(在考试时给考生递小纸条,提供解题思路和参考资料)

训练/改造模型的方法(在考试前对考生进行专门的科目培训)

应用阶段

推理/应用阶段 (Inference Time)。模型训练完成并部署后,每次用户提问时使用。

训练阶段 (Training Time)。在模型正式部署使用之前进行,是准备工作。

是否改变模型

不改变模型自身的任何参数或权重。

会改变模型的部分或全部参数,是永久性的。

关系

上下游协作:提示工程(如设计问答对)常被用来生成数据,这些数据随后可用于微调模型。

目标一致:两种技术的最终目标都是引导和激发大模型的能力,使其输出更符合我们的预期。

  • 上下游协作关系:例如,要构建一个法律领域的专业模型,可以先利用提示工程技巧(如角色设定、复杂提问)让一个通用大模型生成大量高质量的“法律问答对”,这些生成出来的数据就可以作为微调所需的训练数据集。也就是说,提示工程可以作为微调的数据准备工具。

  • 当我们收集成千上万个(指令,期望输出)样例,例如(“总结以下文字”, “……”),然后用这些数据去训练一个基础模型,这个过程叫做指令微调。经过指令微调的模型(比如ChatGPT),其遵循指令的能力会得到根本性的提升。

  • 从可解释性分类,提示可分为:
    • 硬提示:提示工程生成;
    • 软提示:提示调整生成。

三、提示词工程

什么是 Prompt

  • 定义 :是一种提供给预训练语言模型的线索,让预训练语言模型能更好的理解人类的问题。
  • 目的:更好地利用预训练模型中的知识。
  • 手段:在输入中增加额外的文本。
  • 注意:
    • 用不同的 prompt 加到相同的输入上,就能实现不同的任务,从而使得下游任务可以很好的对齐到预训练任务上,实现更好的预测效果。
    • 在同一个任务上使用不同的 prompt,预测效果也会有显著差异,因此现在有许多研究开始聚焦于 prompt engineering。

提示词工程

  • 定义:通过人工设计、调整自然语言的输入(Prompt),来挖掘大模型(LLM)的潜力,使其输出符合预期的结果。

  • 核心特征:

    • 不涉及训练:模型的参数(Weights)是冻结的,完全不动。

    • 自然语言交互:写的是人话(Human-readable)。

    • 经验驱动:主要靠人的经验去试(Trial and Error)。

提示学习

  • 定义:一种机器学习范式。 它的目的是将下游任务如情感分类、故障诊断改造成预训练任务,从而让模型更自然地解决问题。

  • 核心特征:

    • 可能涉及微调:在某些高阶用法(如 P-Tuning, Soft Prompting)中,会训练一小部分参数即“软提示”向量,虽然不动模型主体,但确实有反向传播和参数更新的过程。

    • 自动化/数学化:Prompt 不一定非要是人能看懂的自然语言,也可以是一串机器优化的向量。

    • 流程严谨:包含四个标准步骤:

      • 提示构造(Prompt Construction)

      • 答案构造(Answer Construction)

      • 答案预测(Answer Prediction)

      • 以及答案-标签映射(Answer-Label Mapping)

  • 分类:

    • ​​​​​​按照 prompt 的形状划分:完形填空式,前缀式。

    •  按照人的参与与否:人工设计的,自动的(离散的,连续的)

      • 人工设计 (Manual Discrete) -> 我现在用的方法

      • 自动离散搜索 (Automated Discrete) -> 机器既可以生成人能看懂的词

      • 自动连续微调 (Automated Continuous) -> 机器可以生成人看不懂的向量

四、常见的微调几种类型

1. 按更新参数的规模划分

微调方法

核心原理

是否改变模型参数

作用层面/关键区别

训练成本

典型适用场景

全量微调调整模型所有权重参数是极高数据量充足、计算资源丰富、追求极致性能的专业领域任务。

Adapter Tuning
(适配器微调)

在Transformer块的前馈网络层后新增小的神经网络模块

是

模型中间层(图中②处)

低

快速适应新任务

LoRA
(低秩适配)

向模型内部的权重矩阵(如Q、V)新增低秩矩阵进行增量更新

是

模型权重内部(图中①处)

低

资源有限时微调

QLoRA

先将模型权重量化至4bit,再应用LoRA进行微调

是

模型权重内部(基于LoRA,图中①处)

极低

大模型低成本微调

Prompt Tuning
(提示微调)

在输入序列前增加可训练的嵌入向量作为软提示

是

输入表示层(图中③处)

极低

简单任务适配

Prefix Tuning
(前缀微调)

在输入序列前增加可训练的上下文前缀向量,影响注意力机制

是

注意力机制层(图中④、⑤、⑥处)

低

特定任务定制

P-Tuning

引入一个可训练的LSTM模型来动态生成提示向量并添加到输入中

是

输入层(通过模型动态生成提示,图中⑦处)

低

文本生成任务

P-Tuning v2

在模型的多个层(而不仅仅是输入层)都添加可训练的前缀向量

是

模型深层/注意力机制(图中④、⑤、⑥处)

低

复杂任务微调

  • 全量微调 (Full Fine-tuning, FFT)

    • 定义:对预训练模型中的所有参数进行更新和调整。
    • 特点:模型适应性最强,能最大程度地拟合新数据。
    • 缺点:计算资源消耗极大(需要巨大的显存),且容易出现灾难性遗忘(Catastrophic Forgetting),即模型在学习新知识时忘记了原本预训练的通用知识。
  • 参数高效微调 (Parameter-Efficient Fine-tuning, PEFT)

    • 定义:冻结预训练模型的大部分参数,仅更新或添加极少量(通常小于 1%)的可训练参数。
    • 特点:训练速度快,显存占用极低,且模型效果通常能逼近全量微调。
    • 主流技术:
      • LoRA (Low-Rank Adaptation):目前最流行的技术。通过在原有权重矩阵旁增加低秩矩阵来模拟参数更新,推理时不增加额外延时。
      • QLoRA:结合了量化(Quantization)技术的 LoRA,可以在消费级显卡上微调大模型。
      • Adapter:在Transformer层之间插入小型的神经网络模块(Adapter layers)。
      • P-Tuning / Prefix Tuning:在输入层或隐层添加可训练的“提示词向量”(Soft Prompts),不改变模型主体结构。

2. 按训练目标和数据形式划分

  • 有监督微调 (Supervised Fine-tuning, SFT)

    • 定义:使用标注好的输入-输出对(Prompt-Response)数据进行训练。
    • 作用:教会模型“如何说话”或执行特定任务(如摘要、问答、分类)。这是目前让基座模型(Base Model)变成聊天模型(Chat Model)的第一步。
    • 关键点:数据质量比数量更重要,通常用于指令微调。
  • 基于人类反馈的强化学习 (RLHF)

    • 定义:引入奖励模型 (Reward Model),利用强化学习算法(如 PPO)来优化模型。
    • 作用:让模型的输出更符合人类的价值观、偏好和安全标准(即对齐 Alignment)。
    • 流程:SFT -> 训练奖励模型 -> PPO 强化学习。
  • 直接偏好优化 (Direct Preference Optimization, DPO)

    • 定义:一种较新的技术,跳过了显式的奖励模型建模步骤,直接利用偏好数据(A优于B)优化模型。
    • 特点:比 RLHF 更稳定、更简单、计算开销更小,目前正在逐渐取代传统的 RLHF 流程。
  • 无监督/自监督微调 (Unsupervised Fine-tuning)

    • 定义:使用未标注的文本数据进行训练,通常形式与预训练类似(Next Token Prediction)。
    • 作用:通常用于领域适应,即让模型熟悉某个特定领域(如医学、法律)的术语和行文风格。也常被称为持续预训练 (Continued Pre-training)。

3. 按应用场景划分

  • 指令微调 (Instruction Tuning)

    • 目标:增强模型遵循用户指令的能力。
    • 数据:包含各种类型的任务指令(如“请把这段话翻译成英文”、“解释量子力学”)。
    • 结果:模型泛化能力增强,能处理没见过的任务。
  • 领域微调 (Domain Adaptation)

    • 目标:注入特定行业的知识。
    • 场景:金融大模型、医疗大模型、代码大模型。
    • 注意:通常需要混合通用数据以防止能力退化。
  • 对齐微调 (Alignment Tuning)

    • 目标:确保模型有用、诚实且无害 (Helpful, Honest, Harmless - 3H原则)。
    • 手段:通常通过 RLHF 或 DPO 实现

4.组合应用

你的现状与需求推荐组合难度系数
没钱/没卡,只是想让模型听话SFT + QLoRA⭐⭐ (入门)
有一定资源,追求应用效果SFT + LoRA⭐⭐ (标准)
行业术语太多,模型根本不懂持续预训练 + SFT⭐⭐⭐⭐ (进阶)
不仅要懂,还要回答得讨喜/安全SFT + DPO⭐⭐⭐⭐⭐ (专家)

四、提示工程和提示微调的区别

对比维度

提示工程

提示微调

技术本质

一种与模型交互的“沟通技巧”

一种训练模型的“微调方法”

是否改变模型

完全不改变模型内部的任何参数(权重)

需要训练并改变模型。它向模型中添加了一组可训练的“软提示”向量(如图中“作用层面”所示),并更新这些向量。

操作对象

模型的输入文本(即我们写的提示词)

模型的参数(即那些“软提示”向量)

所属阶段

推理/应用阶段:模型训练好后,每次使用时进行

训练阶段:在模型部署前进行,是准备工作的一部分

成本与数据

成本极低,无需训练,无需额外数据

需要计算资源进行训练,通常需要一定量的任务数据

更多推荐