跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

大模型微调技术方法综述

综述由AI生成综述了大模型微调的核心技术,涵盖全参数微调、提示微调(Prompt/Prefix/P-tuning)、低秩适应(LoRA)及人类反馈强化学习(RLHF)。详细介绍了各方法的原理、适用场景及优缺点,并补充了 DeepSpeed 分布式训练优化方案。通过对比分析,为不同资源条件下的模型适配提供选型指导,旨在帮助开发者高效完成垂直领域模型的训练与部署。

疯疯癫癫发布于 2025/2/7更新于 2026/5/2716 浏览
大模型微调技术方法综述

大模型微调技术方法综述

在深度学习领域,微调(Fine-tuning)是改进预训练模型性能的关键技术。随着开源大模型的日益增多,掌握微调基础知识对于在实际工作中应用这些模型至关重要。除了 ChatGPT,许多预训练模型均可通过微调适应特定任务。

1. 全参数微调 (Full Fine-tuning)

全参数微调是将预训练模型的所有层都参与训练,以适应新的任务。这种方法通常能获得最佳的性能表现,但计算成本和显存占用极高,需要大量的 GPU 资源。

  • 微调所有层:更新模型全部参数。
  • 冻结底层:固定预训练模型的底层参数,仅微调顶层或特定层。
  • 迁移学习:将预训练知识迁移到新任务,常结合冻结底层或微调顶层使用。

目前常用的策略包括前三种。简单来说,模型参数好比大学生在大学学到的通用知识,而微调则是毕业后从事特定行业工作,需要学习具体的工作内容来产出成果。

2. 提示微调 (Prompt Tuning & Variants)

2.1 Prompt Tuning

Prompt tuning 是参数高效性微调(PEFT)中实现最简单的方法之一。它固定模型的前馈层参数,仅更新部分 embedding 参数即可实现低成本微调。

经典的 Prompt tuning 不涉及对底层模型的任何参数更新,侧重于精心制作输入提示或模板。主要结构利用了一个 prompt encoder(BiLSTM+MLP),将一些伪提示(pseudo prompt)先 encode(离散 token)再与 input embedding 进行拼接,同时利用 LSTM 进行重参数化(Reparameterization)加速训练,并引入少量自然语言提示的锚字符(Anchor)进一步提升效果。

然而,P-tuning v1 存在两个显著缺点:任务不通用和规模不通用。在一些复杂的自然语言理解(NLU)任务上效果较差,且预训练模型的参数量不能过小。

2.2 Prefix Tuning

Prefix Tuning 针对不同的模型结构设计不同模式。以自回归模型为例,不再使用 token 作为前缀,而是直接使用参数作为前缀。例如一个 l×d 的矩阵 P 作为前缀,但直接使用这样的前缀效果不稳定,因此使用一个 MLP 层重参数化并放大维度 d。除了在 embedding 层加入这个前缀之外,还在其他的所有层都添加这样一个前缀。最后微调时只调整前缀的参数,大模型的参数保持不变。保存时只需要为每个任务保存重参数的结果即可。

2.3 P-tuning v2

V2 版本基于 P-tuning 和 Prefix-tuning 技术,引入了 Deep Prompt Encoding 和多任务学习等策略进行优化。

实验表明,仅精调 0.1% 参数量,在 330M 到 10B 不同参数规模的 LM 模型上,均取得和 Full Fine-tuning 相比肩的性能。

P-tuning v2 的主要改进包括:

  • 将 continuous prompt 加在序列前端,并且每一层都加入可训练的 prompts。
  • 移除了 Reparameterization 加速训练方式。
  • 采用了多任务学习优化:基于多任务数据集的 Prompt 进行预训练,然后再适配下游任务。
  • 舍弃了词汇 Mapping 的 Verbalizer 的使用,重新利用 [CLS] 和字符标签,增强通用性,适配序列标注任务。

总而言之,P-tuning v2 是将 Prefix-tuning 应用到 NLU 任务上的一种方法。由于每层插入了 token,增大了模型训练的改变量,更加适用于小一点的模型。

3. 低秩适应 (LoRA)

LoRA 的本质是对所有权重矩阵套了一层'壳',这些壳会对原来的预训练权重矩阵进行加减使其更加适合下游任务。其假设前提是预训练语言模型具有低的'内在维度',因此在模型适配下游任务的过程中,权重更新也应该具有低的'内在秩'。

在对大语言模型进行微调的公式可以简化为: $$W = W_0 + \Delta W$$ 其中 $W$ 是微调后的矩阵权重,$W_0$ 是预训练的权重,$\Delta W$ 是通过微调而更新的梯度。将 $\Delta W$ 变换为两个矩阵相乘: $$\Delta W = BA$$ 在里面引入了秩 $r$,$r \ll \min(d, k)$。在训练过程中 LoRA 会冻结预训练权重 $W_0$,只训练 $A$ 和 $B$,减少了需要训练的参数的量。一般来讲,对于 LoRA 微调模型来讲 $r$ 设置的越大其微调效果会越好。

LoRA 算法的核心思想是将原始矩阵分解为两个低秩矩阵的乘积形式。具体地,LoRA 算法会首先对原始矩阵进行 SVD 分解,得到矩阵 $A=U\Sigma V^T$,然后取 $U$ 的前 $k$ 列和 $V$ 的前 $k$ 行,得到低秩矩阵 $X$ 和 $Y$,近似矩阵 $A_k = X \cdot Y$。

最终得到的权重文件会是各层的 $BA$,在推理时需要计算 $W = W_0 + BA$。该方法的好处如下:

  1. 减少了需要推理的参数量。
  2. 相较于添加 Adapter 层的方式,没有添加额外层,微调前后模型的推理时间不变。
  3. 生成的权重相当于插件,即插即用,可为多个不同任务生成各自的 LoRA 权重值,方便存储。

一般在使用 LoRA 去对模型进行微调的时候需要注意的参数就两个:r 和 lora_target_modules。前者决定了构造的矩阵的秩的大小,后者模块的具体名称需依据不同的模型决定。

4. 人类反馈强化学习 (RLHF)

RLHF 的思想是使用强化学习的方式直接优化带有人类反馈的语言模型,使得语言模型能和复杂的人类价值观对齐。RLHF 是一项涉及多个模型和不同训练阶段的复杂概念,一般分为三步:

Step 1. 监督微调 (Supervised Fine-tuning)

使用上文提到的数据集进行模型微调,预训练一个语言模型 (LM)。这一步可以用额外的文本或者条件对这个 LM 进行微调,例如 OpenAI 对'更可取'的人工生成文本进行了微调。虽然使用了昂贵的增强数据,但这并不是 RLHF 必须的一步。

Step 2. 训练奖励模型 (Reward Model)

RM 的训练是 RLHF 区别于旧范式的开端。这一模型接收一系列文本并返回一个标量奖励,数值上对应人的偏好。关于训练文本方面,RM 的提示 - 生成对文本是从预定义数据集中采样生成的,并用初始的 LM 给这些提示生成文本。关于训练奖励数值方面,需要人工对 LM 生成的回答进行排名。起初可能会认为应该直接对文本标注分数,但是由于标注者的价值观不同导致这些分数未经过校准并且充满噪音。通过排名可以比较多个模型的输出并构建更好的规范数据集。一种成功的方式是对不同 LM 在相同提示下的输出进行比较,然后使用 Elo 系统建立一个完整的排名。

Step 3. 用强化学习微调

目前多个组织找到的可行方案是使用策略梯度强化学习算法、近端策略优化 (Proximal Policy Optimization, PPO) 微调初始 LM 的部分或全部参数。因为微调整个 10B~100B+ 参数的成本过高,相关工作参考低秩适应 LoRA。PPO 算法是一种信赖域优化算法,它使用梯度约束确保更新步骤不会破坏学习过程的稳定性。

5. 分布式训练优化 (DeepSpeed ZeRO)

DeepSpeed 是微软的大规模分布式训练工具,专门用于训练超大模型。其具有的 3D 并行同时解决了训练万亿参数模型的两个基本挑战:显存效率和计算效率。因此,DeepSpeed 可以扩展至在显存中放下最巨大的模型,而不会牺牲速度。

使用 DeepSpeed+Zero 的结合方式就可以实现全参数的微调。DeepSpeed ZeRO-2 主要用于训练,ZeRO-3 后也可用于推理,因为它允许在多个 GPU 上加载大型模型。在 Python 中,Accelerate 库提供了简单的 API,使我们可以在任何类型的单节点或分布式节点上运行。

示例配置中需要提前知道梯度累积步骤 gradient_accumulation_steps 和梯度累积计算逻辑。

6. 方法对比与选型建议

为了更清晰地选择微调方法,以下是对比总结:

方法参数量变化显存需求训练速度适用场景
Full Fine-tuning100%高慢数据充足,资源充裕,追求极致性能
Prompt Tuning<1%低快简单任务,快速原型验证
Prefix Tuning<1%低快序列生成任务,多任务学习
LoRA~1%中较快垂直领域微调,资源受限,推荐首选
RLHF可变高慢对齐人类价值观,安全合规要求高

实施建议

  1. 资源评估:如果显存有限,优先选择 LoRA 或 P-tuning v2。如果显存充足且追求 SOTA 性能,考虑 Full Fine-tuning。
  2. 任务类型:对于分类任务,P-tuning v2 表现优异;对于生成任务,LoRA 和 Prefix Tuning 更为合适。
  3. 对齐需求:如果需要对齐人类价值观(如聊天机器人),RLHF 是必经之路,但成本较高。
  4. 部署考量:LoRA 生成的权重文件较小,便于分发和切换,适合多租户或多场景部署。

7. 总结

大模型微调技术正在快速发展,从全参数微调到低秩适应,再到强化学习对齐,每种方法都有其独特的优势和应用场景。开发者应根据实际业务需求、数据规模和硬件资源,灵活选择合适的微调策略。随着技术的演进,参数高效微调(PEFT)将成为主流,降低大模型落地的门槛。

目录

  1. 大模型微调技术方法综述
  2. 1. 全参数微调 (Full Fine-tuning)
  3. 2. 提示微调 (Prompt Tuning & Variants)
  4. 2.1 Prompt Tuning
  5. 2.2 Prefix Tuning
  6. 2.3 P-tuning v2
  7. 3. 低秩适应 (LoRA)
  8. 4. 人类反馈强化学习 (RLHF)
  9. Step 1. 监督微调 (Supervised Fine-tuning)
  10. Step 2. 训练奖励模型 (Reward Model)
  11. Step 3. 用强化学习微调
  12. 5. 分布式训练优化 (DeepSpeed ZeRO)
  13. 6. 方法对比与选型建议
  14. 实施建议
  15. 7. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • SpringAI 实现连续对话:上下文记忆与会话隔离
  • WSL2 + Linux + VS Code 远程开发入门教程
  • Gemini Pro 提示词最佳实践与多模态设计指南
  • 鸿蒙金融理财全栈项目:生态合作与用户运营优化
  • 基于 Llama-Factory 引擎重塑游戏 NPC 对话逻辑实战
  • Sql Server 中 ISNULL、IIF 与 CASE WHEN 的空值判断用法
  • 10 篇大模型领域前沿论文汇总
  • 具身导航 VLN 前沿论文汇总 (2023-2026)
  • Windows Python 环境治理(EPGF)系列总览与阅读路线
  • Python 与 C++ 参数传递机制详解
  • CCF-GESP 2025 年 6 月 C++ 二级真题解析
  • Spring Boot 响应式 Web 与传统 MVC 原理及适用场景对比
  • Rust 与 WebAssembly 深度实战:浏览器与 Node.js 高性能应用
  • Python 属性描述符:原理剖析与 ORM 实战
  • JavaAI 全流程实操指南:从需求到部署的智能开发体验
  • YOLO11 模型 C++ 部署:ONNX 导出、NMS 判别与推理实战
  • 深入理解 Git 核心概念与主流工作流实践
  • 高鋒集團合夥人黃俊瑯:以資本與生態賦能傳統企業 Web3 轉型
  • 无人机航拍目标检测与语义分割数据集汇总
  • Figma + Claude + Weavy AI:构建高效 AI 辅助设计工作流

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online