尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

LLaMA-Factory v1 怎么启用 Liger Kernel 加速全参数训练

LLaMA-Factory v1 怎么启用 Liger Kernel 加速全参数训练 LLaMA-Factory v1 怎么启用 Liger Kernel 加速全参数训练【免费下载链接】LlamaFactoryUnified Efficient Fine-Tuning of 100 LLMs VLMs (ACL 2024)项目地址: https://gitcode.com/GitHub_Trending/ll/LlamaFactory在 LLaMA-Factory 的 v1 训练入口里跑全参数 SFT 时可以通过 Kernels 系统启用 Liger Kernel把模型中的关键模块替换为优化后的算子实现来加速训练。v1 通过训练 YAML 中的kernel_config字段启用该能力仓库自带一份全参数FSDP2 Liger Kernel 的完整示例配置 examples/v1/train_full/train_full_liger_kernel.yaml。本文说明如何启用它、如何验证 Liger 算子确实生效以及它的前置条件和支持边界。准备环境启用 Liger Kernel 有两个硬性前置条件都由 v1 的 kernel 插件在启动时检查见 liger_kernel_ops.py设备当前加速器必须是 CUDA 或 NPU否则报错LigerKernel requires CUDA or NPU, current accelerator is {current}.依赖必须已安装liger_kernel包否则报错Liger kernel is not installed.v1 入口的软件依赖要求见 快速开始Python 至少 3.11torch 2.7.1transformers 5.0.0datasets 3.2.0peft 0.18.1NVIDIA GPU 需要 CUDA至少 11.6或使用 torch-npu 2.7.1 的 Ascend NPU。安装 Liger Kernel 依赖pip install -r requirements/liger-kernel.txt该文件requirements/liger-kernel.txt中的约束为liger-kernel0.6.3。确认使用 v1 入口v1 由环境变量USE_V1控制llamafactory-cli在该环境变量启用时加载 v1 launcher见 cli.py。配置 kernel_configKernels 系统通过替换模型中的关键模块如 RMSNorm、SwiGLU、RoPE、MoE 等为硬件优化的版本来提升训练性能替换不修改模型权重优化后的实现与原始实现保持精度一致在浮点误差范围内机制详见 Kernels 系统文档。在训练 YAML 中通过kernel_config.name指定要启用的 kernel。启用 Liger Kernel 时设置为liger_kernel。仓库示例配置全文如下model: Qwen/Qwen3-0.6B model_class: llm kernel_config: name: liger_kernel quant_config: null dist_config: name: fsdp2 dcp_path: null # /mnt/f/pretrain_models/Qwen3-0.6B-dcp ### data train_dataset: data/v1_sft_demo.yaml ### training output_dir: outputs/test_fsdp2 micro_batch_size: 1 cutoff_len: 2048 learning_rate: 1.0e-4 max_steps: 10 ### sample sample_backend: hf max_new_tokens: 128各字段的用途kernel_config.name: liger_kernel启用 Liger Kernel 的关键配置。dist_config.name: fsdp2使用 FSDP2 分布式策略做全参数训练dcp_path可选用于指定预转换的 DCP 检查点路径示例中为null。train_dataset: data/v1_sft_demo.yaml使用仓库自带的 SFT 演示数据集配置。max_steps: 10示例仅跑 10 步属于快速冒烟验证的配置正式训练请按需替换模型、数据集并调整训练参数。全参数训练意味着配置中没有 LoRA/adapter 相关项quant_config为null。可选地kernel_config下还可以传入use_kernels来指定只启用哪些 Liger 算子传入算子名列表时仅启用列表中的算子未知算子名会报Unknown Liger op(s) ...错误缺省值auto表示沿用上游apply_liger_kernel_to_*函数的默认启用项。不指定时就是auto行为。启动训练export USE_V11 llamafactory-cli train examples/v1/train_full/train_full_liger_kernel.yamlllamafactory-cli sft与llamafactory-cli train等价见 快速开始。验证 Liger 算子已生效训练启动后观察 rank 0 的日志按以下三种输出判断状态启用成功日志中会出现These Liger ops are applied to the model: [...]列表内容是本次实际应用到模型的 Liger 算子名如fused_linear_cross_entropy等以日志实际输出为准。模型不在支持列表只输出警告Current model does not support liger kernel.kernel 不会被应用模型原样返回训练继续但不含 Liger 加速。依赖或设备不满足直接报Liger kernel is not installed.或LigerKernel requires CUDA or NPU, ...训练启动失败回到“准备环境”一节处理。示例配置跑满max_steps: 10步并正常收尾即完成一次启用路径的验证。支持范围与限制模型范围Liger Kernel 只为qwen3、qwen3_moe、qwen3_next、qwen3_5、qwen3_5_text、qwen3_5_moe、qwen3_5_moe_text这些model_type注册了apply_liger_kernel_to_*映射见 liger_kernel_ops.py其他模型会命中上面的警告分支而不做任何替换。训练阶段v1 目前支持 SFT 和 DPO 两种训练方法见 快速开始Liger Kernel 示例走的是 SFT 全参数路径。旧版本入口非 v1 入口使用模型参数enable_liger_kernel: true来启用 Liger Kernel见 README 的更新记录与本文的kernel_config配置方式不是同一个开关不要混用。更多硬件融合算子NPU 侧的 RMSNorm/SwiGLU/RoPE/MoE 融合算子通过kernel_config.name: auto或apply_kernelAPI 启用细节见 Kernels 系统 与 Fused Operators与本文的 Liger Kernel 是相互独立的配置分支。【免费下载链接】LlamaFactoryUnified Efficient Fine-Tuning of 100 LLMs VLMs (ACL 2024)项目地址: https://gitcode.com/GitHub_Trending/ll/LlamaFactory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表