🔧 微调技术

简介: 微调是适配预训练模型的关键技术,涵盖指令微调、对齐微调与高效参数微调。LoRA通过低秩分解减少参数量,提升训练效率;其变体如LoRA+、QLoRA、AdaLoRA进一步优化性能与资源消耗。Prefix Tuning与Prompt Tuning则以极小参数调整实现高效迁移。不同方法在效果、速度与部署间权衡,满足多样需求。(239字)

🎯 微调概述
微调是将预训练模型适配到特定任务的关键技术,包括指令微调、对齐微调和高效参数微调。
🏗️ 微调类型
1️⃣ 指令微调 (SFT)
● 原理:在指令-响应对上训练
● 数据格式:{"instruction": "...", "output": "..."}
● 效果:提升指令遵循能力
2️⃣ 对齐微调 (RLHF)
● 流程:
a. 人类偏好数据收集
b. 奖励模型训练
c. PPO强化学习优化
● 目标:使模型行为符合人类价值观
3️⃣ 高效参数微调
LoRA (Low-Rank Adaptation)
背景
矩阵中的最大的不相关的向量个数,就叫做秩。如果矩阵中数据比较相关,则为低秩矩阵。
● 例如,一个 $m \times n$ 的矩阵,如果它的秩 r 远小于 m 和 n,那么它就是一个低秩矩阵,冗余信息很多
● 反之,若矩阵的秩等于矩阵的行数 m,或者列数 n,则它是一个满秩矩阵
● 大模型的参数矩阵中的秩往往较小,具有很强的冗余
LoRA 原理
● 原理:如果一个矩阵P(假设维度为$d \times d$ )存在大量冗余信息,即低秩特性,可以不用完整的 $d \times d$ 尺寸来表示它,可利用因式分解这个想法,用两个较小的矩阵( A和B )的乘积 BA 来表示矩阵P,其中 A 维度 $r \times d$ ,B 维度 $d \times r$ ,则 $P = AB$ ,其中 $r$ 为秩,远小于 $d$ ,A 和 B 为低秩矩阵
● 思想:将全参数微调理解为“冻住的预训练权重” + “微调过程中产生的权重更新量”,因此微调只学习“更新”的那部分参数量(与预训练权重维度相同)。同时借助矩阵分解的思想,将“更新”的大模型参数矩阵分解为两个低秩矩阵的乘积,从而减少参数量,提高训练速度
● 公式:$output = W_0x + \Delta Wx = W_0x + BAx$ 其中 $W_0$ 为预训练权重,维度为 $d \times d$ ,$x$ 为输入,$B$ 和 $A$ 为可训练参数,维度分别为 $d \times r$,$r \times d$ ( $r$ 为秩,远小于 $d$ ), $\Delta W$ 为微调过程中产生的权重更新量,即$BA$
● 效果:参数更新量由 $d \times d$ 降低为 $2 \times d \times r$ ,反向传播时,只有 A、B 获得梯度,$W_0$ 不变,因而大大减少计算量
LoRA的初始化
常见的初始化方法是:矩阵A 高斯初始化,矩阵 B 初始化为零矩阵,保证模型输出在第一步与预训练一致,避免任何初始扰动,保证不会在一开始就破坏预训练表示
● 为什么A 高斯初始化,B 初始化为零矩阵?为什么不能都高斯初始化?或者都为0,或者B 高斯初始化,A 初始化为零矩阵?

具体可参考: LoRA微调中的矩阵初始化策略:A随机与B零初始化
○ A 随机与 B 零初始化: B在第一轮即可获得梯度,更新参数,A在第一轮无法获得梯度,不更新参数,但随着B的更新,A会逐渐获得梯度,开始更新
○ A 和 B 都高斯初始化: 模型输出在第一步与预训练不一致,引入噪声,干扰训练
○ A 和 B 都初始化为零: A 和 B 均无法获得梯度,无法更新,训练无法启动
○ B 随机与 A 零初始化: 理论上可能,但会导致训练效率显著下降甚至失败。B在第一轮无法获得梯度,无法更新参数,A 在第一轮的梯度不为零(取决于随机初始化的 B),可以更新,但 A 的更新需要与 B 的更新协同才能有效调整权重。由于 B 在初始阶段无法更新,A 的更新方向会受限于初始随机的 B,导致优化过程不稳定。
LoRA作用的位置
理论上LoRA的思想可以应用到任何权值矩阵上,例如在自注意机制中有四个权值矩阵 wq,wk ,wv ,wo ,另外在Transformer的全连接中也有两个权值矩阵w_up 和 w_down。关于LoRA在Transformer的作用位置,LoRA论文在自注意力层做了一组对照实验,证明如果只将LoRA作用到某个单一矩阵上,效果不佳,如果将LoRA作用到两个矩阵上,放在 wq 和 wv 效果最好。建议在所有的权值矩阵都加上LoRA,有利于模型捕捉到所有矩阵的关键信息

LoRA中参数
● $r$ :秩,表示低秩矩阵的维度,一般取1、2、4、8、16、32,比较常见的取值是8,值越高意味着矩阵越大
● lora_alpha:缩放因子,用于调整低秩矩阵的影响力。可以理解为对BA的更新幅度进行放大或缩小
● lora_target:指示需要应用低秩适应(LoRA)模块的特定网络层或模块
LoRA的变体
● LoRA+(LoRA Plus): LoRA 的增强版本,主要通过为矩阵 A 和 B 引入不同的学习率改进Lora,其中矩阵 B 的学习率设置为矩阵 A 的 16 倍。这种策略可以显著提高训练效率,同时提升模型精度(约 2%),并将训练时间缩短 2 倍。前提:原始 LoRA 中,矩阵 A 和 B 使用相同的学习率进行更新。该方法认为当模型的宽度(即嵌入维度)较大时,这种单一学习率的设置会导致微调效果不佳。)
● QLoRA(Quantized LoRA): QLoRA 是 LoRA 的量化版本,主要通过对低秩矩阵进行量化,从而显著降低存储和计算成本。这使得模型在显存受限的环境中运行更加高效。
● AdaLoRA(Adaptive LoRA):AdaLoRA 是 LoRA 的自适应版本,它支持动态调整秩,可根据任务和数据的复杂度动态调整低秩矩阵的秩,避免了固定秩带来的限制。

Prefix Tuning
● 原理:在输入前添加可训练前缀
● 特点:仅训练前缀参数
Prompt Tuning
● 原理:学习软提示词嵌入
● 特点:简单高效
📊 微调方法对比
方法 参数量 训练速度 效果 部署
全参数 100% 慢 最好 困难
LoRA 1% 快 好 容易
Prefix 0.1% 最快 中 容易

相关文章
|
SQL JSON Java
【Elasticsearch专栏 10】深入探索:Elasticsearch如何进行数据导入和导出
在Elasticsearch中,数据导入常通过Bulk API、Logstash或Java客户端进行,支持JSON、CSV等格式。导出则可通过SQL查询、Scroll API或第三方工具如elasticdump实现,将数据以JSON、CSV等格式导出。这些方法确保了数据的高效、安全导入与导出。
1920 5
|
移动开发 Android开发 iOS开发
uniapp开发H5及app监听返回事件(以及监听不到的处理方法)
uniapp开发H5及app监听返回事件(以及监听不到的处理方法)
3060 0
|
2月前
|
前端开发 小程序 JavaScript
A2UI 规范与 AG-UI 协议:打造高效协同的界面开发体系
A2UI规范与AG-UI协议构建“设计-开发”协同闭环:前者统一视觉与交互标准,后者定义组件通信与跨平台适配,二者融合提升协作效率、保障体验一致,推动界面开发向标准化、可复用、高效能演进。
1431 0
|
3月前
|
人工智能 自然语言处理 搜索推荐
2025金融行业Agent案例全场景盘点:银行证券保险实战案例+落地解析(含实在Agent标杆实践)
本文系统梳理银行、证券、保险三大领域金融Agent标杆案例,整合实在智能等头部厂商实战经验,覆盖应用场景、技术路径与落地成效,全面解析从运营提效到智能决策的完整解决方案,助力金融机构实现可落地的智能化升级。
1496 156
|
2月前
|
人工智能 API 开发工具
分享一款端侧AI部署工具Nexa SDK
2025年AI硬件爆发,但云端大模型面临成本高、隐私差、延迟大等问题。开源小模型崛起,推动边缘AI发展。Nexa SDK应运而生,提供跨平台统一推理框架,支持NPU/GPU/CPU深度适配,实现低代码、高性能、多模态模型Day-0支持,兼容OpenAI API,助力手机、PC、汽车、IoT等端侧AI快速落地,重塑智能体验。
|
6月前
|
编解码 算法 测试技术
MiniCPM-V4.0开源,多模态能力进化,手机可用,还有最全CookBook!
今天,面壁小钢炮新一代多模态模型 MiniCPM-V 4.0 正式开源。依靠 4B 参数,取得 在 OpenCompass、OCRBench、MathVista 等多个榜单上取得了同级 SOTA 成绩,且 实现了在手机上稳定、丝滑运行。此外,官方也正式开源了 推理部署工具 MiniCPM-V CookBook,帮助开发者面向不同需求、不同场景、不同设备,均可实现开箱即用的轻量、简易部署。
947 0
|
11月前
|
机器学习/深度学习 自然语言处理 物联网
从零开始的DeepSeek微调训练实战(SFT)
本文重点介绍使用微调框架unsloth,围绕DeepSeek R1 Distill 7B模型进行高效微调,并介绍用于推理大模型高效微调的COT数据集的创建和使用方法,并在一个medical-o1-reasoning-SFT数据集上完成高效微调实战,并最终达到问答风格优化&知识灌注目的。
从零开始的DeepSeek微调训练实战(SFT)
|
机器学习/深度学习 移动开发 自然语言处理
大模型Prompt-Tuning技术入门(二)
Prompt-Tuning是一种在大型语言模型中进行下游任务适配的技术,起源于GPT-3的In-context Learning和Demonstration Learning。它通过构建Prompt(提示)和Verbalizer(标签映射)来转换任务,比如将分类任务转化为填空问题。PET模型是Prompt-Tuning的早期实践,通过固定模板(Pattern)和标签词(Verbalizer)来实现。Prompt-Oriented Fine-Tuning是Prompt-Tuning的一种形式,将任务转换为与预训练任务相似的形式,如BERT的MLM任务。
|
11月前
|
人工智能 云计算
阿里云AI技术亮相春晚!独家揭秘背后的故事!
阿里云AI技术亮相春晚!独家揭秘背后的故事!