公司动态
LLaMA Factory 妈妈再也不用担心模型微调
一、概述1.1 什么是 LLaMA-FactoryLLaMA-Factory全称 Large Language Model Factory是一个开源的低代码大模型微调框架专为大型语言模型的训练、微调和部署而设计。它集成了业界广泛使用的微调技术支持通过 Web UI 界面零代码微调大模型极大地降低了大模型定制化的技术门槛。截至目前该项目在 GitHub 上已获得超过 37k Star是用户最多的开源后训练框架之一保持着长期迭代更新。1.2 为什么选择 LLaMA-Factory传统的大模型微调面临三大痛点环境配置复杂需手动安装 CUDA、PyTorch 等数十个依赖、学习成本高要求熟悉命令行和 Python 编程、硬件要求高通常需要 16GB 以上显存。LLaMA-Factory 通过以下方式解决了这些问题零代码操作提供基于 Gradio 的 Web UI无需编写代码即可完成微调硬件友好支持单卡/多卡 GPU、CPU、Apple Silicon以及 GPTQ/AWQ 等量化推理一站式流程集训练、评估、对话、导出于一体丰富的生态支持 100 种 LLM 和 VLM 的微调1.3 典型应用场景企业知识库专属问答系统构建垂直领域术语理解增强多轮对话策略优化低资源语言迁移学习智能客服、语音识别、机器翻译、个性化推荐二、核心特性2.1 支持的模型LLaMA-Factory 支持 100 种主流大语言模型和多模态模型包括但不限于系列代表模型LLaMA 系列LLaMA、LLaMA 2、LLaMA 3Qwen 系列Qwen、Qwen2、Qwen2-VL、Qwen3.5、Qwen3.6其他主流模型Mistral、Mixtral-MoE、Gemma、Baichuan、ChatGLM、Phi、DeepSeek、Yi2.2 支持的训练方法LLaMA-Factory 集成了业界最广泛使用的微调方法增量预训练多模态指令监督微调SFT奖励模型训练PPO 训练DPO 训练KTO 训练ORPO 训练2.3 支持的精度与优化技术多种精度16 比特全参数微调、冻结微调、LoRA 微调以及基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调先进算法GaLore、BAdam、Adam-mini、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA、LoftQ、PiSSA 和 Agent 微调加速技巧FlashAttention-2、Unsloth、Liger Kernel、RoPE scaling、NEFTune 和 rsLoRA实验监控LlamaBoard、TensorBoard、Wandb、MLflow、SwanLab 等推理引擎基于 Transformers 和 vLLM 的极速推理提供 OpenAI 风格 API三、环境搭建3.1 硬件要求不同规模模型的硬件建议配置模型参数量显存要求推荐 GPU 型号7B≥24GBRTX 3090 / RTX 409013B≥48GBA100 40GB30B需多卡A100 × 43.2 软件依赖安装方式一本地安装创建 Python 隔离环境并安装依赖# 创建 Python 隔离环境conda create-nllama_factorypython3.10conda activate llama_factory# 克隆项目gitclone https://github.com/hiyouga/LLaMA-Factory.gitcdLLaMA-Factory# 安装依赖pipinstall-rrequirements.txt# 如需 Web UI 或强化学习安装额外依赖pipinstall-rrequirements_extras.txt注意建议使用 conda 或 venv 避免依赖冲突。国内用户建议使用清华镜像源加速下载。CUDA 版本冲突时可添加--force-reinstall选项。方式二Docker 部署推荐Docker 部署可避免环境配置的复杂性推荐用于实际微调任务。CPU 版本仅用于学习和测试# docker-compose.ymlversion:3.9services:llamafactory:image:hiyouga/llamafactory:latestcontainer_name:llamafactoryports:-7860:7860# WebUI 端口-8000:8000# API 端口volumes:-./data:/app/data-./output:/app/output-./cache:/root/.cacheenvironment:-GRADIO_SERVER_NAME0.0.0.0-GRADIO_SERVER_PORT7860-USE_MODELSCOPE_HUB1command:llamafactory-cli webui启动服务docker-composepulldocker-composeup-dGPU 版本需安装 nvidia-docker# docker-compose.yml (GPU 版本)version:3.9services:llamafactory:image:hiyouga/llamafactory:latestcontainer_name:llamafactoryports:-7860:7860-8000:8000volumes:-./data:/app/data-./output:/app/output-./cache:/root/.cache-./saves:/app/savesenvironment:-GRADIO_SERVER_NAME0.0.0.0-GRADIO_SERVER_PORT7860-USE_MODELSCOPE_HUB1command:llamafactory-cli webuideploy:resources:reservations:devices:-driver:nvidiacount:allcapabilities:[gpu]3.3 验证安装安装完成后通过以下命令校验安装是否成功llamafactory-cli version成功安装后访问http://localhost:7860即可看到 Web UI 界面。四、数据准备4.1 数据格式LLaMA-Factory 支持两种主流数据格式Alpaca 格式适用于指令微调[{instruction:解释牛顿第一定律,input:,output:任何物体都保持静止或匀速直线运动状态除非受到外力作用迫使它改变这种状态。},{instruction:法语问候翻译,input:早上好,output:Bonjour}]字段说明instruction用户指令必填input用户输入选填output模型回答必填system系统提示词选填history历史对话选填ShareGPT 格式适用于多轮对话[{conversations:[{from:human,value:你好},{from:gpt,value:你好有什么可以帮助你的吗}]}]4.2 自定义数据集配置使用自定义数据集时务必在data/dataset_info.json文件中添加数据集定义{my_dataset:{file_name:my_data.json,formatting:alpaca,columns:{prompt:instruction,query:input,response:output}}}添加后即可通过指定--dataset my_dataset参数使用自定义数据集。五、微调实战LLaMA-Factory 提供两种微调方式命令行CLI和Web UI。5.1 方式一命令行微调LoRA 微调LoRALow-Rank Adaptation是最常用的高效微调方法能够在有限的显存下完成大模型微调。基础训练命令示例python src/train_bash.py\--model_name_or_pathhuggyllama/llama-7b\--dataset_dir./data\--datasetmy_dataset\--output_dir./output\--batch_size8\--load_in_8bit\--use_peft\--lora_rank64关键参数说明参数推荐范围作用说明lora_rank32-128适配器矩阵秩越大表达能力越强learning_rate1e-5 ~ 3e-4需随 batch size 调整max_seq_length512-2048根据显存动态设置batch_size4-16显存不足时减小此值num_train_epochs2-5训练轮数QLoRA 微调QLoRA 通过 4-bit 量化技术将微调 7B 模型的显存需求压低至 10GB 以内。相较于 ChatGLM 的 P-TuningLLaMA-Factory 的 LoRA 调优在广告文本生成任务上实现了最高3.7 倍的训练速度提升和更优的 Rouge 得分。5.2 方式二Web UI 微调零代码Web UI 是 LLaMA-Factory 最具特色的功能之一让非专业开发者也能轻松完成模型微调。启动 Web UIllamafactory-cli webui访问http://localhost:7860即可进入界面。Web UI 四大界面训练Train配置模型、数据集、微调方法等参数启动训练评估与预测Evaluate Predict对训练好的模型进行效果评估对话Chat与微调后的模型进行交互测试导出Export导出和合并模型权重Web UI 典型配置示例配置项推荐值说明ModelQwen2-7B-Instruct基础模型PrecisionFP16平衡精度与显存微调方法LoRA高效微调学习率3e-4需根据数据调整Batch Size8显存不足时减小Epochs3训练轮数LoRA Rank8适配器秩提示显存不足时可尝试减小 batch size 或启用梯度检查点gradient checkpointing。5.3 训练监控LLaMA-Factory 支持多种实验监控工具LlamaBoard内置的轻量级监控面板TensorBoard经典的训练可视化工具Wandb云端实验管理平台MLflow开源机器学习生命周期管理使用 Wandb 监控示例# 在训练前设置环境变量exportWANDB_API_KEYyour_api_keyexportWANDB_PROJECTllama-factory六、模型导出与部署6.1 LoRA 适配器合并训练完成后需要将 LoRA 适配器与基础模型合并为一个完整的模型以便部署使用。创建合并配置文件merge_config.yamlmodel_name_or_path:path/to/base_modeladapter_name_or_path:path/to/lora_adaptertemplate:defaultfinetuning_type:loraexport_dir:path/to/merged_modelexport_size:4export_legacy_format:false执行合并命令llamafactory-cliexportmerge_config.yaml合并后的模型是一个独立的、完整的模型检查点可用于后续的推理和部署。6.2 推理部署LLaMA-Factory 提供多种推理方式方式一命令行对话llamafactory-cli chat\--model_name_or_pathpath/to/merged_model\--templatedefault方式二Web UI 对话在 Web UI 的 “Chat” 界面加载微调后的模型进行交互测试。方式三vLLM 高性能推理vLLM 可显著提升推理吞吐量适用于高并发场景# 安装 vLLMpipinstallvllm# 启动 vLLM 服务vllm servepath/to/merged_model启动后可通过 OpenAI 兼容的 API 进行调用。方式四API 服务llamafactory-cli api\--model_name_or_pathpath/to/merged_model\--templatedefaultAPI 服务默认监听 8000 端口可通过 HTTP 请求调用模型。七、进阶技巧7.1 显存优化策略混合精度训练启用 FP16/BF16 可提升训练速度 30%-50%梯度检查点以计算换显存节省大量显存QLoRA 4-bit 量化将 7B 模型显存需求降至 10GB 以内FlashAttention-2加速注意力计算并减少显存占用Unsloth可带来约 2 倍 SFT 加速和约 70% 的显存节省7.2 分布式训练LLaMA-Factory 默认使用所有可见的计算设备。可通过以下方式指定设备# 指定 GPUCUDA_VISIBLE_DEVICES0,1llamafactory-cli webui# 指定 NPU华为昇腾ASCEND_RT_VISIBLE_DEVICES0,1llamafactory-cli webui支持多卡并行和数据并行两种模式。7.3 数据增强策略指令模板多样化5 种以上句式变体负样本注入约 15% 比例领域术语替换增强回译Back Translation将中文数据翻译为英文再译回中文八、常见问题与解决方案8.1 显存不足OOM症状训练过程中出现 CUDA Out of Memory 错误。解决方案减小batch_size增加gradient_accumulation_steps启用梯度检查点gradient_checkpointing: true使用 QLoRA 4-bit 量化使用更小的max_seq_length8.2 进程异常终止错误码 -9 或 -11症状训练进程被系统杀死。原因通常由内存不足或 OOM Killer 触发。解决方案检查系统内存和显存使用情况减小 batch size 或模型规模检查 DeepSpeed 配置是否正确8.3 自定义数据集无法加载症状Web UI 中看不到自定义数据集。解决方案确保在data/dataset_info.json中正确配置了数据集确认数据文件放在data/目录下检查 JSON 格式是否正确8.4 模型下载慢解决方案设置环境变量USE_MODELSCOPE_HUB1使用国内 ModelScope 镜像使用清华镜像源加速 pip 安装九、版本更新动态LLaMA-Factory 保持活跃的迭代更新。以v0.9.5版本为例新增对 Qwen3.5、Qwen3.6、Gemma4 的主力支持完成对 Transformers v5 的兼容适配增加对 LiquidAI 的 LFM2.5 模型的支持分布式与多后端训练能力进一步完善大量修复围绕 Qwen3.5、Gemma4、多模态、Transformers v5 的兼容问题建议关注 GitHub Releases 获取最新版本信息。十、资源与参考官方资源GitHub 仓库https://github.com/hiyouga/LLaMA-Factory官方文档https://llamafactory.readthedocs.io/官方博客https://blog.llamafactory.net/中文 READMEhttps://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md学习资源Colab 免费试用https://colab.research.google.com/drive/1eRTPn37ltBbYsISy9Aw2NuI2Aq5CQrD9PAI-DSW 免费试用提供 Llama3、Qwen2-VL、DeepSeek-R1 等示例Amazon SageMaker 部署指南结语LLaMA-Factory 作为目前国内最主流、生态最完善的开源大模型微调框架之一通过其低代码/零代码的设计理念、丰富的模型和算法支持、完善的可视化操作界面极大地降低了大模型定制化的门槛。无论你是 AI 研究者、企业开发者还是个人爱好者LLaMA-Factory 都能帮助你快速将大模型能力适配到特定场景中。建议初次实践时从 10% 数据规模开始验证流程可行性再逐步扩展至全量训练。随着实践的深入你可以逐步探索更高级的优化技巧和训练策略充分释放大模型的潜力。