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

今日号外:🔥🔥🔥 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 是一个统一且高效的微调框架,旨在为超过 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 是一个专为大型语言模型(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( 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推理加速,并支持继续训练。

可将 TTL/UART 串口设备连接至以太网 支持网口升级程序 支持TCP服务器、TCP客户端、UDP模式 支持虚拟串口、Web登录或使用VirCom进行配置 ZLSN2003 概述 ZLSN2003是上海卓岚开发的新一代串口以太网嵌入式模块。该模块功能强大,其基本功能是实现串口联网的方便性,即只要和用户的串口TTL电平的串口连接,ZLSN2003就可以将数据发送到基于TCP/IP/UDP的网络服务器上。默认情况下串口和以太网之间是透明传输协议,即串口发送什么,网络就收到什么数据,不会数据格式化。ZLSN2003内部已经集成网络变压器,外围电路非常简单。 ZLSN2003模块为单片机联网、传统串口设备联网提供了快捷、稳定、经济的方案。不仅能够保证您的产品快速上市,并且为您的产品的稳定提供支撑。 特点 支持在线网络升级固件程序,用户可以从卓岚公司获得软件升级工具和升级firmware,可自行升级到最高版本。 使用配置的ZLVircom工具可以搜索、管理局域网内(支持跨网段搜索)、Internet上的ZLSN2003模块。可一键式配置模块的所有参数。设备配置、管理非常方便。 支持DHCP功能,可以动态获得局域网内的DHCP服务器分配的IP。 支持DNS,自动解析目的域名为IP,目的IP可以为动态域名。 作为TCP Server(TCP服务器端)时,支持独有的100个连接的强大连接能力。 作为TCP Client(TCP客户端)的,支持连接8个目标服务器。作为TCP客户端时,可以在断线后自动进行重连。支持隐含心跳技术,保证网线断线后的恢复。 支持UDP、UDP组播等功能。 支持虚拟串口。 规格 网络界面 以太网 10/100 Mbps 保护 内建1KV电磁隔离 串口界面 界面 TTL电平串口 串口数 1 校验位 None, Even, Odd, Space, Mark 数据位 5~9 停止位 1,2 流控 RTS/CTS,DTR/DCR,XON/XOFF 速率 1200bps~460800bps 软件特性 协议 TCP,HTTP,UDP,ICMP,ARP,IP,DNS,DHCP 虚拟串口平台 Windows 95/98/ME/NT/2000/XP/WIN7/WIN8 配置方式 Web浏览器、卓岚ZLVirCom、串口类AT命令 电器特性 电压输入 DC5V(ZLSN2003-3.3V支持3.3V),210~250mA 机械特性 尺寸 长×宽=43 × 26mm 工作环境 工作温度,湿度 0~70℃,5~95% RH 储存温度,湿度 -45~165℃,5~95% RH W
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值