ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

LLaMA-Factory微调提速指南:Liger Kernel开启后训练快一倍、显存省五成

LLaMA-Factory微调提速指南:Liger Kernel开启后训练快一倍、显存省五成 LLaMA-Factory微调提速指南Liger Kernel开启后训练快一倍、显存省五成【免费下载链接】LlamaFactoryUnified Efficient Fine-Tuning of 100 LLMs VLMs (ACL 2024)项目地址: https://gitcode.com/GitHub_Trending/ll/LlamaFactory微调一个7B模型你的训练任务跑了多久如果你曾在24GB显存的卡上撞上OOM红线或者盯着进度条等了半天那这篇文章值得花5分钟读完。LLaMA-Factory是一个统一微调100 LLM与VLM的开源框架ACL 2024除了开箱即用它内置的Liger Kernel融合算子、选择性梯度检查点和ZeRO-3分片策略是实测可复现的三大提速开关。什么场景下你会需要这套加速方案三个真实触发时机看看中了几条单卡显存吃紧你只有一张消费级显卡7B模型全参微调直接爆显存LoRA也只能小批量。此时Liger Kernel把激活显存压下去ZeRO-3再把参数与优化器状态切到CPU小卡也能跑通全参。多模态数据拖慢节奏图文、视频混合训练的序列又长又杂吞吐被内存爆炸拖住。scripts/bench_qwen.py 专门为此场景写了基准脚本用模拟的图像视频文本混合数据压测Qwen2-VL。团队批量实验同一份代码要反复试LoRA/全参/不同超参每次等几小时的迭代成本会拖垮排期。加速开关直接换算成一天多跑两轮实验。底层机制速览一条更快的流水线把训练想象成流水线车间标准Attention是每道工序都单独开机器、单独运物料频繁启动和搬运才是真成本。LLaMA-Factory做的是两件事——合并工序、只留关键零件。融合算子一次算完少搬几次enable_liger_kernel: true会按模型类型自动挂载对应的融合内核覆盖Llama、Qwen含Qwen2-VL/Qwen3-MoE、Gemma、GLM、Mistral、Phi-3等主流架构逻辑见 src/llamafactory/model/model_utils/liger_kernel.py。多个相邻小操作合并成单个kernel减少kernel启动开销与显存来回读写——这就是快一倍的主要来源。选择性检查点省掉不省省了不省checkpointing.py 里有两个巧思一是只检查点可训练层LoRA训练时冻结层不做重计算白省一笔前向开销二是借鉴Unsloth的思路把需要保留的中间激活异步卸载到CPU内存反向时再取回GPU显存被腾出来给batch用。配合bf16混合精度LayerNorm权重自动升回fp32防精度漂移显存与速度两头赚。硬指标一张表看收益方案训练速度 (tokens/s)相对提升显存峰值 (GB)显存节约标准Attention384基准28.6基准FlashAttention-2892132%18.236%Liger Kernel1936404%较FA2再快117%14.350%数据来源使用仓库内置 scripts/bench_qwen.py 在A100单卡、Qwen2-VL-7B、序列长度2048、bf16 ZeRO-3条件下实测多模态混合数据下吞吐提升可达128%同脚本图视频文本Dummy数据。三步跑起来最小路径第1步装好环境git clone https://gitcode.com/GitHub_Trending/ll/LlamaFactory cd LlamaFactory pip install -e . # 核心依赖 pip install liger-kernel # 融合算子库 pip install deepspeed # 分布式显存优化第2步改一份YAML加三个开关以 examples/train_lora/qwen3_lora_sft.yaml 为模板加入加速参数model_name_or_path: Qwen/Qwen3-4B-Instruct-2507 stage: sft finetuning_type: lora enable_liger_kernel: true # 打开Liger Kernel融合算子 bf16: true # bf16混合精度 deepspeed: examples/deepspeed/ds_z3_config.json # ZeRO-3第3步启动训练llamafactory-cli train examples/train_lora/qwen3_lora_sft.yaml也完全可以不碰命令行运行llamafactory-cli webui在界面顶部Booster下拉里选Liger Kernel即可底层同样是置位enable_liger_kernel见 src/llamafactory/webui/runner.py。避坑清单与进阶方向三个高频坑模型不支持会静默跳过未列入支持清单的架构只会打一行warning然后退回原实现不是报错。先跑一次看日志里有没有Liger kernel has been applied。RM/PPO等需要完整logits的阶段分块交叉熵chunked cross entropy会被自动关闭仍走常规CE属于预期行为别当成bug。NPU适配有讲究昇腾非910系列会自动关闭SwiGLU与FCE融合路径显存收益会打折。进阶方向全参微调显存仍不够时把 ds_z3_config.json 加上offload_param/offload_optimizer指向CPU或参考 examples/v1/train_full/ 里的FSDP2、Ulysses序列并行配置多模态场景用bench_qwen.py --liger_kernel true/false前后各跑一遍量化自己机器上的真实收益。参数细节可查 docs/zh/hyperparameters/model-argument.md。行动清单照做即可已安装liger-kernel与deepspeedpip list确认版本训练YAML中已加enable_liger_kernel: true与bf16: true日志中确认出现Liger kernel has been applied to the model.显存仍紧张时已挂载ZeRO-3或CPU offload配置用自己的数据跑过一次scripts/bench_qwen.py前后对比遇到问题走项目Issue反馈或直接在 src/llamafactory/model/model_utils/ 提PR共建。开关就三个收益是实打实的——今晚的训练试试让它快一倍。【免费下载链接】LlamaFactoryUnified Efficient Fine-Tuning of 100 LLMs VLMs (ACL 2024)项目地址: https://gitcode.com/GitHub_Trending/ll/LlamaFactory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表