【大模型系列篇】大模型微调工具 LLama-Factory、Unsloth、ms-SWIFT

embedded/2025/3/4 5:43:41/

今日号外:🔥🔥🔥 DeepSeek团队正式启动为期五天的开源计划 Day3:DeepGEMM。DeepGEMM 是一个专为简洁高效的 FP8 通用矩阵乘法(GEMM)设计的库,具有细粒度缩放功能,如 DeepSeek-V3 中所提出。它支持普通和混合专家(MoE)分组的 GEMM。该库采用 CUDA 编写,在安装过程中无需编译,通过使用轻量级的即时编译(JIT)模块在运行时编译所有内核。其核心代码仅300行,但性能卓越,为V3/R1的训练和推理提供支持。其性能强劲,Hopper GPU上最高可达1350+ FP8 TFLOPS的计算性能。

代码仓库:https://github.com/deepseek-ai/DeepGEMM

❗️❗️❗️关于矩阵乘法优化方面的知识,大家可跳转了解下进展《矩阵乘法加速计算优化最新进展》。

正题:主流微调工具选择

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

LLaMA-Factory

  • LLama-Factory GitHub主页:https://github.com/hiyouga/LLaMA-Factory

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

主要功能和特点:

  • 模型种类:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Yi、Gemma、Baichuan、ChatGLM、Phi 等等。

  • 训练算法:(增量)预训练、(多模态)指令监督微调、奖励模型训练、PPO 训练、DPO 训练、KTO 训练、ORPO 训练等等。

  • 运算精度:16 比特全参数微调、冻结微调LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调

  • 优化算法:GaLore、BAdam、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ 和 PiSSA。

  • 加速算子:FlashAttention-2 和 Unsloth

  • 推理引擎:Transformers 和 vLLM。

  • 实验面板:提供了丰富的实验监控工具,如 LlamaBoard、TensorBoard、Wandb、MLflow 等等。

  • 快速上手: 框架提供了类似 OpenAI 风格的 API、 Gradio UI 和命令行界面,并结合 vLLM worker,实现了高效的推理能力。

❗️❗️❗️这里我们之前有一期就使用过LLama-Factory对智谱的ChatGLM3-6b进行过高效微调,详见《LLaMA-Factory大模型微调实践 - 从零开始》。

Unsloth

  • Unsloth GitHub主页:https://github.com/unslothai/unsloth

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

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

主要功能点:

  • 高效微调Unsloth通过深度优化,使LLM的微调速度提高 2-5 倍,显存使用量减少约 80%,且准确度无明显下降。

  • 广泛的模型支持: 目前支持的模型包括目前各类主流模型,用户可以根据需求适合的模型进行微调

  • 兼容性: Unsloth与HuggingFace态系统兼容,用户可以轻松将其与 traformers、 peft、 trl 等库结合,

                       实现模型的监督微调SFT)和直接偏好优化(DPO),仅需修改模型的加载方式,无需对现有训练代码进行过多修改。

  • 内存优化: 通过 4 位和 16 位的 QLoRA/LoRA 微调Unsloth 显著了显 存占用,使得在资源受限的环境中也能大的微调

Unsloth核心优势:

  • 显著提升微调效率: 相比传统方法, Unsloth 能够在更短的时间内完成微调任务,节省时间成本。

  • 降低硬件要求: 通过优化显存使用,用户可以在显存较小的 GPU 上进行大模型的微调,降低了硬件门槛。

  • 开源免费: Unsloth提供开源版本,用户可以在 Google Colab 或 Kaggle Notebooks 上免费试用,方便上手体验。

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

❗️❗️❗️后续我们将会使用Unsloth来对DeepSeek-R1蒸馏模型进行专业领域知识微调。 

《初探Unsloth微调DeepSeek-R1蒸馏模型》

ms-SWIFT

  • ms-SWIFT GitHub项目主页: https://github.com/modelscope/swift

ms-swift( Scalable lightWeight Infrastructure for Fine-Tuning)是魔搭社区提供的大模型与多模态大模型微调部署框架,现已支持450+大模型与150+多模态大模型的训练(预训练、微调、人类对齐)、推理、评测、量化与部署。其中大模型包括:Qwen2.5、InternLM3、GLM4、Llama3.3、Mistral、DeepSeek-R1、Yi1.5、TeleChat2、Baichuan2、Gemma2等模型,多模态大模型包括:Qwen2.5-VL、Qwen2-Audio、Llama3.2-Vision、Llava、InternVL2.5、MiniCPM-V-2.6、GLM4v、Xcomposer2.5、Yi-VL、DeepSeek-VL2、Phi3.5-Vision、GOT-OCR2等模型。

除此之外,ms-swift汇集了最新的训练技术,包括LoRA、QLoRA、Llama-Pro、LongLoRA、GaLore、Q-GaLore、LoRA+、LISA、DoRA、FourierFt、ReFT、UnSloth、和Liger等轻量化训练技术,以及DPO、GRPO、RM、PPO、KTO、CPO、SimPO、ORPO等人类对齐训练方法。ms-swift支持使用vLLM和LMDeploy对推理、评测和部署模块进行加速,并支持使用GPTQ、AWQ、BNB等技术对大模型进行量化。ms-swift还提供了基于Gradio的Web-UI界面及丰富的最佳实践。

为什么选择ms-swift?

  • 模型类型:支持450+纯文本大模型、150+多模态大模型以及All-to-All全模态模型、序列分类模型、Embedding模型训练到部署全流程

  • 数据集类型:内置150+预训练、微调、人类对齐、多模态等各种类型的数据集,并支持自定义数据集。

  • 硬件支持:CPU、RTX系列、T4/V100、A10/A100/H100、Ascend NPU、MPS等。

  • 轻量训练:支持了LoRA、QLoRA、DoRA、LoRA+、ReFT、RS-LoRA、LLaMAPro、Adapter、GaLore、Q-Galore、LISA、UnSloth、Liger-Kernel等轻量微调方式。

  • 分布式训练:支持分布式数据并行(DDP)、device_map简易模型并行、DeepSpeed ZeRO2 ZeRO3、FSDP等分布式训练技术。

  • 量化训练:支持对BNB、AWQ、GPTQ、AQLM、HQQ、EETQ量化模型进行训练。

  • RLHF训练:支持纯文本大模型和多模态大模型的DPO、GRPO、RM、PPO、KTO、CPO、SimPO、ORPO等人类对齐训练方法。

  • 多模态训练:支持对图像、视频和语音不同模态模型进行训练,支持VQA、Caption、OCR、Grounding任务的训练。

  • 界面训练:以界面的方式提供训练、推理、评测、量化的能力,简化了大模型的全链路流程。

  • 插件化与拓展:支持自定义模型和数据集拓展,支持对loss、metric、trainer、loss-scale、callback、optimizer等组件进行自定义。

  • 工具箱能力:不仅提供大模型和多模态大模型的训练支持,还涵盖其推理、评测、量化和部署全流程。

  • 推理加速:支持PyTorch、vLLM、LmDeploy推理加速引擎,并提供OpenAI接口,为推理、部署和评测模块提供加速。

  • 模型评测:以EvalScope作为评测后端,支持100+评测数据集对纯文本和多模态模型进行评测。

  • 模型量化:支持AWQ、GPTQ和BNB的量化导出,导出的模型支持使用vLLM/LmDeploy推理加速,并支持继续训练。


http://www.ppmy.cn/embedded/169507.html

相关文章

springboot之HTML与图片生成

背景 后台需要根据字段动态生成HTML&#xff0c;并生成图片&#xff0c;发送邮件到给定邮箱 依赖 <!-- freemarker模板引擎--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifa…

MySQL安装多版本与版本切换

起因 今天在将一个项目部署到本地&#xff0c;找到的这个项目使用的MySQL版本是MySQL5.7&#xff0c;应该是比较古早的项目了&#xff0c;但是我现在装的是8.4版本的&#xff0c;所以涉及MySQL的版本切换&#xff0c;这里记录一下操作方法。 如何安全切换版本而不删除原有MySQ…

新一代信息技术:从技术范畴到未来趋势的全景洞察

新一代信息技术&#xff08;New Generation Information Technology&#xff09;是当前全球科技革命和产业变革的核心驱动力之一&#xff0c;也是各国政策文件中重点支持的战略性技术领域。它并非单一技术&#xff0c;而是一系列前沿信息技术的融合与集成&#xff0c;旨在推动数…

信号与系统笔记——第一章 信号与系统概述(三)

1.3 信号的运算 Z1.12 信号的加减乘运算 括号内的 既可以是 t 也可以是 k &#xff0c;此处用 k 表示。 Z1.13 信号的反转 离散信号的反转&#xff1a; Z1.14 信号的平移 Z1.15 信号的尺度变化 注&#xff1a;本文出自对bilibili 【西安电子科技大学】郭宝龙教授&#xff0…

锂电池保护板测试仪:电池安全的守护者与创新驱动力

在新能源产业蓬勃发展的今天&#xff0c;锂电池以其高能量密度、长循环寿命和环保特性&#xff0c;成为电动汽车、无人机、便携式电子设备等领域不可或缺的能量来源。然而&#xff0c;锂电池的安全性和稳定性一直是行业关注的焦点。为了确保锂电池在各种应用场景下的可靠运行&a…

SQL Server所有数据类型大全

数据类型列表 整数类型&#xff1a;bigint、int、smallint、tinyint精确数值类型&#xff1a;decimal、numeric近似数值类型&#xff1a;float、real字符类型&#xff1a;char、varchar、text、nchar、nvarchar、ntext日期和时间类型&#xff1a;date、time、datetime2、dateti…

GPT-4.5 怎么样?如何升级使用ChatGPTPlus/Pro? GPT-4.5设计目标是成为一款非推理型模型的巅峰之作

GPT-4.5 怎么样&#xff1f;如何升级使用ChatGPTPlus/Pro? GPT-4.5设计目标是成为一款非推理型模型的巅峰之作 今天我们来说说上午发布的GPT-4.5&#xff0c;接下来我们说说GPT4.5到底如何&#xff0c;有哪些功能&#xff1f;有哪些性能提升&#xff1f;怎么快速使用到GPT-4.…

图数据库Neo4j面试内容整理-使用场景-网络和安全分析

网络和安全分析 是图数据库的另一个重要应用场景,尤其在处理复杂的网络拓扑、事件追踪、入侵检测、漏洞分析、恶意行为检测等任务时,图数据库展现出其强大的优势。网络和安全分析常涉及到对复杂的节点(如服务器、用户、设备)和关系(如通信、访问权限、依赖关系)的深入分析…