微信扫码
添加专属顾问
我要投稿
1
基本概念
1
微调的定义
首先对模型微调下个非严谨的定义,大模型微调(Fine-tuning)是指在预训练模型基础之上,采用标注的高质量数据集或基于人类反馈机制对基础模型进行训练,最终输出具备或增强特定领域能力模型的技术。
2
微调的必要性
3
微调的价值
2
微调技术
1
微调流程
模型微调是一个循序渐进、不断优化迭代的系统工程,一般需要经过模型选取、任务定义、数据准备、策略选择、模型配置、模型微调、结果评估、优化迭代、模型测试、模型部署等流程,通过系统化、流程化的模型微调,将输出令人满意的结果。具体步骤简述如下:
模型选取
选取一个优秀的基础大模型,比如OpenAI的ChatGPT,Meta的LLaMA2等,成熟的大模型有大厂背书及活跃的社区支持,可以具备高质量的模型能力。
任务定义
定义一个特定领域的任务,比如上文所述的医疗问答任务。
数据准备
收集标签化的专业数据,比如上文的医疗问答数据可分为训练集和测试集,一部分用于训练,一部分用于测试。
策略选择
选择合适的模型微调策略,比如下文将详细描述的PERT或RLHF,选择更适合的微调技术。
模型配置
以第一步选取的基础模型作为起点,完成模型微调前的前置配置。
模型微调
基于选择的微调技术,不同不断的迭代训练模型,期间不断调整参数并监控模型的损失函数即精准度。
结果评估
使用测试数据集验证微调后模型的优劣
优化迭代
基于上一步评估的结果,不断迭代微调过程直到达到满意的预期效果。
模型测试
使用验证模型的性能。
模型部署
将微调后满足预期的模型部署后等待投入推理使用
2
Fine-Tuning
Fine-Tuning指的是全量参数微调,训练时间成本高。一般较少使用,因此本文重点介绍高效参数微调,通过冻结参数,局部微调,显著提供微调效率。
3
PERT
Prefix Tuning
基于Prompt的设计灵感斯坦福大学团队在论文中提出的一种通过冻结模型参数,通过连续的特定任务向量而实现的更轻量级模型微调技术。Prefix Tuning属于连续的模板构建,通过把传统人工设计模版中的token替换成可微调的Virtual Token。其中模型输入前添加的连续的针对特定任务的向量序列我们称之为Prefix,通过更新特定任务的Prefix参数大幅提高微调效率。
对于Decoder-only的GPT,prefix只加在句首,模型的输入表示为:
对于Encoder-Decoder的BART,prefix同时加在编码器和解码器的开头:
如下图所示,在下游任务微调时,模型参数被冻结,之后Prefix部分参数被更新,显著提高训练效率。
LoRA
Prefix Tuning训练难度大,那是否有其他的微调方法呢?LoRA(Low-Rank Adaptation)是微软研究团队提出的一种通过冻结预训练模型参数,在Transformer每一层中加入2个可供训练的A、B低秩旁路矩阵(其中一个矩阵负责降维、另一个负责升维),可大幅减少微调参数量的方法。LoRA整体架构如下图:
全参微调可视为冻结的预训练权重W+微调过程中产生的增量更新权重 ,假设输入为x,输出为y,则有 。
如图右侧表示LoRA微调场景,我们用矩阵A和矩阵B近似表示 :
经过拆分,我们将 改写成 的等价形式,微调参数 从降为 ,同时不改变输出数据的维度,即在LoRA下我们可以定义为: 。
其中,论文指出对于AB两个低秩矩阵,会使用超参α(常数)来做调整,以适配更优的微调性能。基于LoRA架构,在原始预训练矩阵的旁路,我们用低秩矩阵A和B来近似代替增量更新权重 ,训练过程中通过固定预训练权重 ,只对低秩矩阵A和B进行微调训练,可大幅提高效率,据论文统计,采用LoRA方法在微调GPT3 175B时,显存消耗从1.2TB降至350GB,极大的降低了训练开销。
4
RLHF
3
讨论与展望
本文重点介绍了几种常用微调技术,各种技术的特点描述总结如下表所示:
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-02-01
2025-01-01
2024-07-25
2025-02-04
2024-08-13
2024-04-25
2024-06-13
2024-08-21
2024-09-23
2024-04-26
2025-04-02
2025-04-02
2025-04-02
2025-04-01
2025-04-01
2025-04-01
2025-04-01
2025-04-01