【AGI】大模型微调技术-四大微调框架

发布于:2025-05-22 ⋅ 阅读:(15) ⋅ 点赞:(0)

(1)微调基础概念介绍

1.1 微调基本概念

​ 所谓大模型微调,指的在已有的大规模预训练模型基础上,通过对标注数据进行训练,进一步优化模型的表现,以适应特定任务或场景的需求。不同于RAG或者Agent技术,通过搭建工作流来优化模型表现,微调是通过修改模型参数来优化模型能力,是一种能够让模型“永久”掌握某种能力的方法。

1.2 全量微调与高效微调

​ 而从方法的大类上来划分,微调又可以划分为全量微调:带入全部数据进行微调,和高效微调:只带入部分数据进行微调。毫无疑问,全量微调是一种算力消耗更大、但对模型的能力改造更为彻底的方法,而高效微调则更类似一种“四两拨千斤”的方法,通过修改模型部分参数,来调整模型整体能力。

1.3 模型微调的优劣势分析

​ 尽管模型微调能够通过修改模型参数的方式,永久的修改模型的能力,但这其实是一把双刃剑,如果处理不当,很可能造成模型原始能力的灾难性遗忘、即会导致模型原始能力丢失,对于复杂模型尤其如此。而为了能够满足微调最初目标,我们必须小心谨慎的设计模型微调数据集和微调训练流程,并经过反复多次训练验证,得到一个最佳模型。

1.4 高效微调与LoRA、QLoRA

​ 尽管全量微调可以对模型的能力进行深度改造,但要带入模型全部参数进行训练,需要消耗大量的算力,且有一定的技术门槛。相比之下,在绝大多数场景中,如果我们只想提升模型某个具体领域的能力,那高效微调会更加合适。尽管在2020年前后,深度学习领域诞生了很多高效微调的方法,但现在适用于大模型的最主流的高效微调方法只有一种——LoRA。

​ LoRA(Low-Rank Adaptation)微调是一种参数高效的微调方法,旨在通过引入低秩矩阵来减少微调时需要调整的参数数量,从而显著降低显存和计算资源的消耗。具体来说,LoRA 微调并不直接调整原始模型的所有参数,而是通过在某些层中插入低秩的适配器(Adapter)层来进行训练。

LoRA的原理:

  • 在标准微调中,我们会修改模型的所有权重,而在 LoRA 中,只有某些低秩矩阵(适配器)被训练和调整。这意味着原始模型的参数保持不变,只是通过少量的新参数来调整模型的输出。
  • 低秩矩阵的引入可以在显存和计算能力有限的情况下,依然有效地对大型预训练模型进行微调,从而让 LoRA 成为显存较小的设备上的理想选择。

LoRA的优势:

  1. 显存优化: 只需要调整少量的参数(适配器),显著减少了显存需求,适合显存有限的GPU。
  2. 计算效率: 微调过程中的计算负担也更轻,因为减少了需要调整的参数量。
  3. 灵活性: 可以与现有的预训练模型轻松结合使用,适用于多种任务,如文本生成、分类、问答等。

​ 而QLoRA(Quantized Low-Rank Adaptation) 则是 LoRA 的一个扩展版本,它结合了 LoRA 的低秩适配器和量化技术。QLoRA 进一步优化了计算效率和存储需求,特别是在极端显存受限的环境下。与 LoRA 不同的是,QLoRA 会将插入的低秩适配器层的部分权重进行量化(通常是量化为 INT4 或 INT8),在保持性能的同时显著降低模型的存储和计算需求。

  • 核心思想: 在 LoRA 的基础上加入量化技术,减少权重表示的位数,从而降低显存和计算需求。QLoRA 结合了低秩适配器和量化的优点,能够在显存有限的设备上进行更高效的微调。
  • 量化: 通过将模型权重量化为低精度(如 INT4),减少内存占用,并提高推理和训练速度。
  • 优势:
    • 在显存非常有限的情况下仍能进行微调。
    • 可以处理更大规模的模型。
    • 适合用于边缘设备和需要低延迟推理的场景。

LoRA 与 QLoRA 二者对比如下

特性 LoRA QLoRA
核心技术 低秩适配器(Low-Rank Adapters) 低秩适配器 + 量化技术(Low-Rank Adapters + Quantization)
适用场景 显存受限,但设备性能较好 极限显存受限或需要快速推理的设备
计算效率 提高计算效率,减少调整的参数数量 进一步提升效率,减少内存使用并加快推理速度
量化技术 无量化 将权重量化为低精度(如 INT4 或 INT8)
内存消耗 较低,但不如 QLoRA 低 显著降低内存消耗,适合更小的设备
训练复杂度 较简单,适用于大多数微调场景 需要更多的量化和适配工作,但适合超大模型和设备受限场景

微调原理参考:【入门】大语言模型常用微调框架介绍|https://www.bilibili.com/video/BV1Yc411g78a/

(2)高效微调的应用场景

​ 在实际大模型应用场景中,高效微调主要用于以下四个方面:

  • 对话风格微调:高效微调可以用于根据特定需求调整模型的对话风格。例如,针对客服系统、虚拟助理等场景,模型可以通过微调来适应不同的 语气、礼貌程度回答方式,从而在与用户互动时提供更符合要求的对话体验。通过微调少量的参数(例如对话生成的策略、情感表达等),可以使模型表现出更具针对性和个性化的风格。
  • 知识灌注:知识灌注是指将外部知识或领域特定的信息快速集成到已有的预训练模型中。通过高效微调,模型可以更好地学习新领域的专有知识,而无需重新从头开始训练。例如,对于法律、医疗等专业领域,可以使用少量的标注数据对预训练模型进行微调,帮助模型理解特定行业的术语、规则和知识,进而提升专业领域的问答能力。
  • 推理能力提升:高效微调还可以用于提升大模型的推理能力,尤其是在处理更复杂推理任务时。通过微调,模型能够更加高效地理解长文本、推理隐含信息,或者从数据中提取逻辑关系,进而在多轮推理任务中提供更准确的答案。这种微调方式可以帮助模型在解答复杂问题时,提高推理准确性并减少错误。
  • Agent能力(Function calling能力、或者MCP能力)提升:在多任务协作或功能调用场景中,高效微调能够显著提升模型的Agent能力,使得模型能够有效地与其他系统进行交互、调用外部API或执行特定任务。通过针对性微调,模型可以学会更精准的功能调用策略、参数解析和操作指令,从而在自动化服务、智能助手或机器人控制等领域表现得更加高效和智能。

(3)流微调工具介绍

​ 在入手学习大模型微调时,首先推荐功能层次封装层次较高的微调四套工具:unsloth、Llama-Factory、ms-SWIFT和ColossalAI。除此之外,也可以借助更加底层的库,如peft、LoRA、transformer等实现高效微调。对于初学者来说,首先使用现成工具来进行微调,四种工具基本说明如下。

3.1 unsloth

在这里插入图片描述

​ unsloth 是一个专为大型语言模型(LLM)设计的动态量化与微调框架,旨在提高微调效率并减少显存占用。 它通过手动推导计算密集型数学步骤并手写 GPU 内核,实现了无需硬件更改即可显著加快训练速度。

在这里插入图片描述

​ unsloth 与 HuggingFace 生态兼容,可以很容易地transformers、peft、trl 等库结合,以实现模型的监督微调(SFT)和直接偏好优化(DPO),仅需模型的加载方式,无需对现有训练代码进行修改。

在这里插入图片描述

​ Unsloth 的动态量化方法,特别是其最新的 Dynamic 2.0 版本,旨在在尽量减少性能损失的同时显著压缩大型语言模型(LLMs)的体积。对于 Qwen3 模型,尤其是 4-bit 动态量化版本,现有的评测显示其性能下降非常有限,甚至在某些任务上与原始模型相当。具体评测结果如图所示:

在这里插入图片描述

​ 而目前,关于 Qwen3 模型在 4-bit 动态量化下的具体性能下降数据尚不全面。然而,根据最近的一项研究,Qwen3 模型在4bit动态量化时,仅损失不到1%的性能。

在这里插入图片描述

论文地址:https://arxiv.org/abs/2505.02214

这也使得Unsloth的动态量化模型成为个人配置下的最佳微调工具。

​ 不过需要注意的是,动态量化由利也有弊,其好处在于可以极大程度压缩模型运行所需占用的显存大小,同时几乎不损失性能,但问题在于动态量化的模型,无论是推理还是微调,只能单卡运行,这就使得其吞吐量有限,无法在一台物理机上实现多GPU并行从而扩大吞吐量。

主要功能点:

  • 高效微调: unsloth 通过深度优化,使 LLM 的微调速度提高 2-5 倍,显存使用量减少约 80%,且准确度无明显下降。
  • 广泛的模型支持: 目前支持的模型包括目前各类主流模型,用户可以根据需求适合的模型进行微调。
  • 兼容性: unsloth 与 HuggingFace态系统兼容,用户可以轻松将其与 traformers、peft、l 等库结合,实现模型的监督微调(SFT)和直接偏好优化(DPO),仅需修改模型的加载方式,无需对现有训练代码进行过多修改。
  • 内存优化: 通过 4 位和 16 位的 QLoRA/LoRA 微调,unsloth 显著了显存占用,使得在资源受限的环境中也能大的微调。

unsloth核心优势:

  • 显著提升微调效率: 相比传统方法,Unsloth采用独家4bit动态量化技术,能够在更短的时间内完成微调任务,节省时间成本。
  • 降低硬件要求: 通过优化显存使用,用户可以在显存较小的 GPU 上进行大模型的微调,降低了硬件门槛。
  • 开源免费: Unsloth 提供开源版本,用户可以在 Google Colab 或 Kaggle Notebooks 上免费试用,方便上手体验。

总的来说,unsloth 为大型语言模型的微调提供了高效、低成本的解决方案,适合希望在有限资源下进行模型微调的开发者和研究人员。

3.2 LLama-Factory

在这里插入图片描述

​ LLaMA-Factory 是一个统一且高效的微调框架,旨在为超过 100 种大型语言模型(LLMs)和视觉语言模型(VLMs)提供便捷的微调支持。 用户能够灵活地定制模型以适应各种下游任务。

主要功能和特点:

  • 广型支持: LLaMA-Factory 支持对 100 多LLMs 和 VLMs 进行微调,包括最新的模型版本,如 Llama 3、GLM-4、Mistral Small、PaliGemma2 等。
  • 高效的微调方法: 框架集成了多nk Adaptation)、QRA(Quantized LoRA)等,以提高训练速度并减少显存占用。
  • 多模态任务支持: 除了传统的文本任务外,LLaMA-Factory 还支频识别、音频理解等多种任务类型。
  • 实验监控: 提供了丰富的实验监控工具,如 LlamaBoard、TensorBoard、Wandb、MLflow、练过程。
  • 快速: 框架提供了类似 OpenAI 风格的 API、Gradio UI 和命令行界面,并结合 vLLM worker,实现了高效的推理能力。
3.3 ms-SWIFT

在这里插入图片描述

​ ms-swift(Scalable lightWeight Infrastructure for Fine-Tuning)是由魔搭社区(ModelScope)开发的高效微调和部署框架,旨在为研究人员和开发者提供一站式的大模型与多模态大模型的训练、推理、评测、量化和部署解决方案。 的模型支持:** ms-swift 支持超过 450 种大型模型(LLMs)和 150 多种多模态大模型(MLLMs)的训练和部署**,包括最新的模型版本,如 Qwen2.5、InternLM3、GLM4、Llama3.3、Mistral、DeepSeek-R1、Yi1.5、Baichuan2、Gemma2 等,以及多模态模型如 Qwen2.5-VL、Qwen2-Audio、Llama3.2-Vision、Llava、InternVL2.5 等。

  • 多样化的训练技术: 框架集oRA、Llama-Pro、LonoRA、GaLore、Q-GaLore、LoRA+、LISA、DoRA、FourierFt、ReFT、UnSloth 和 Liger 等,满足不同的微调需求。
  • 轻量级微调: 支持多种轻量级微调方法,如 LoRA、QLoRA、DoLLaMAPro、Adapt、GaLore、Q-Galore、LISA、UnSloth、Liger-Kernel 等,降低显存和计算资源的消耗。
  • 分布式训练: 支持分布式数据并行(DDP)、DeepSpeed ZeRO2/ZeRO3、FSDP 等技术,提升推理加速:** 提供 BNBWQ、GPTQ、AQLM、HQQ、EETQ 等量化方法,并支持使用 vLLM 和 LMDeploy 对推理、评测和部署 支持图像、视频和语音等多种模态型训练,涵盖 VQA、Caption、OCR、Grounding 等任务。
  • 用户友好的界面: 提供基于 Gradio 的 We和量化操作,简化了大模型的全链路流程。
3.4 ColossalAI

在这里插入图片描述

​ Colossal-AI 是一个高效的分布式人工智能训练系统,旨在最大化提升人工智能训练效率,同时最小化训练成本。作为深度学习框架的内核,Colossal-AI 提供了自动超高维并行、大规模优化库、自适应任务调度、内存优化以及最新模型复现等前沿技术。与英伟达的 Megatron-LM 相比,Colossal-AI 仅需一半数量的 GPU 即可完成 GPT-3 训练,半小时内预训练 ViT-Base/32,并在两天内训练完 15 亿参数的 GPT 模型。此外,Colossal-AI 提供了多种并行技术,如数据并行、流水线并行和张量并行,以加速模型训练。 citeturn0search1该项目自开源以来,迅速登上 GitHub 热榜,成为解放 AI 生产力的最佳选择。

​ 并且,ColossalAI也是目前唯一支持DeepSeek R1非量化模型高效微调的框架,仅需4个节点、8卡A100服务器即可完成DeepSeek R1高效微调。

在这里插入图片描述

注一:若是强化学习训练,则推荐veRL和OpenRLHF等框架。

注二:其他更底层微调框架推荐

框架 优势 适用场景
Hugging Face 高度兼容,易用,文档丰富 一般 NLP 任务,模型选择丰富
LoRA 显存节省,减少微调计算量 显存有限的设备,微调大规模模型
PEFT 高效微调,低计算开销 资源有限的环境,适合大规模预训练模型的微调
DeepSpeed 大规模分布式训练,显存优化 超大规模训练,多卡分布式训练
AdapterHub 低资源消耗,快速微调 多任务微调,资源有限的环境
Alpaca-LoRA 生成任务优化,LoRA 技术结合 对话生成、文本生成
FastChat 对话系统微调,快速集成 对话生成任务,尤其是对 ChatGPT 等模型微调
FairScale 大规模分布式训练优化,自动化优化 多卡分布式训练,大规模微调

网站公告

今日签到

点亮在社区的每一天
去签到