跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

LLaMA-Factory 大语言模型微调框架实战指南

LLaMA-Factory 是一款基于 Python 的低代码大模型微调框架,支持多种主流模型与高效微调算法。它提供 Web UI 和命令行接口,涵盖预训练、指令微调及强化学习等任务。通过集成 LoRA、QLoRA 等技术,显著降低显存消耗并提升训练效率。详细介绍其安装配置、参数设置、训练流程及推理部署方法,帮助用户快速上手大模型定制开发。

利刃发布于 2025/2/7更新于 2026/7/2135 浏览
LLaMA-Factory 大语言模型微调框架实战指南

LLaMA-Factory 大语言模型微调框架

LLaMA-Factory 是一个国内开源的低代码大模型训练框架,专为大型语言模型(LLMs)的微调而设计。它旨在简化大模型的训练流程,降低技术门槛,使开发者能够高效地定制和部署自己的大语言模型。

一、功能特点

LLaMA-Factory 的核心优势在于其易用性和强大的功能集成:

  1. 高效且低成本:支持对 100 多个主流模型进行微调,通过量化技术和参数高效微调方法(PEFT),显著降低显存需求和计算成本。
  2. 易于访问和使用:提供友好的 Web UI 界面,用户无需编写复杂代码即可配置训练任务;同时也支持命令行操作,便于自动化脚本集成。
  3. 丰富的数据集选项:内置多种标准数据集格式,支持用户上传自定义 JSON/JSONL 格式数据,灵活适配不同业务场景。
  4. 多样化的算法支持:集成了业界广泛使用的微调方法,包括全量微调、LoRA、QLoRA、DPO、PPO 等,满足不同精度和性能需求。
  5. 实时监控和评估:支持集成 TensorBoard、WandB 和 MLflow 等监控工具,实时追踪训练指标,方便分析模型收敛情况。
  6. 极速推理:基于 vLLM 提供 OpenAI 风格的 API 接口,支持高并发推理服务,同时提供浏览器界面和命令行工具。

二、环境准备与安装

1. 系统要求

  • 操作系统:Linux (Ubuntu 18.04+), macOS, Windows (WSL2)
  • Python 版本:建议 Python 3.8 及以上
  • GPU 驱动:NVIDIA CUDA Toolkit 11.7 或更高版本
  • 依赖库:PyTorch, Transformers, PEFT, Accelerate 等

2. 创建 Conda 环境

推荐使用 Conda 管理虚拟环境,避免依赖冲突:

conda create -n llamafactory python=3.9 -y
conda activate llamafactory

3. 克隆项目源码

从 GitHub 获取最新源代码:

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory

4. 安装依赖

根据需求选择安装基础包或包含特定加速库的版本:

# 基础安装
pip install -e ".[torch]"

# 如需使用 FlashAttention-2 加速(需 NVIDIA Ampere 架构 GPU)
pip install -e ".[flash-attn]"

# 如需使用 Unsloth 优化
pip install -e ".[unsloth]"

三、支持的模型与算法

1. 支持的主流模型

LLaMA-Factory 兼容众多开源大模型,包括但不限于:

  • LLaMA 系列:LLaMA, LLaMA2, LLaMA3
  • Qwen 系列:Qwen, Qwen1.5, Qwen2
  • ChatGLM 系列:ChatGLM, ChatGLM2, ChatGLM3
  • Baichuan 系列:Baichuan, Baichuan2
  • 其他:Mistral, Mixtral, Yi, Gemma, Phi, InternLM 等
  • 2. 微调任务类型

    • 增量预训练:在特定领域语料上继续预训练模型。
    • 指令监督微调:使用指令 - 输出对数据进行 SFT,提升模型对话能力。
    • 奖励模型训练:为强化学习阶段构建奖励模型。
    • 强化学习:支持 PPO、DPO、KTO、ORPO 等对齐算法。

    3. 精度与优化技术

    • 全量微调:16 比特浮点精度,更新所有参数。
    • 冻结微调:仅更新部分层参数,其余层冻结。
    • LoRA 微调:低秩适应矩阵,大幅减少可训练参数量。
    • QLoRA 微调:结合 4 比特量化与 LoRA,进一步降低显存占用。
    • 高级优化:支持 GaLore、DoRA、LongLoRA、FlashAttention-2、RoPE Scaling 等前沿技术。

    四、配置文件详解

    LLaMA-Factory 使用 YAML 格式的配置文件来定义训练任务。以下是一个典型的 SFT 微调配置示例:

    task_type: sft
    model_name_or_path: Qwen/Qwen1.5-7B-Chat
    dataset_dir: data/
    dataset: custom_sft_dataset
    eval_strategy: steps
    eval_steps: 500
    per_device_train_batch_size: 1
    gradient_accumulation_steps: 4
    learning_rate: 1.0e-4
    num_train_epochs: 3.0
    lr_scheduler_type: cosine
    warmup_ratio: 0.1
    fp16: true
    output_dir: outputs/qwen-sft
    logging_steps: 10
    save_steps: 500
    load_best_model_at_end: true
    metric_for_best_model: loss
    

    关键参数说明:

    • task_type:指定任务类型,如 sft(指令微调)、pt(预训练)、rm(奖励模型)。
    • dataset_dir:数据集存放目录。
    • dataset:具体数据集名称,需在 data/datasets_info.json 中注册。
    • per_device_train_batch_size:单设备批次大小。
    • gradient_accumulation_steps:梯度累积步数,用于模拟更大 batch size。
    • learning_rate:学习率,LoRA 通常设为 1e-4 左右。
    • fp16:是否启用混合精度训练,节省显存并加速。
    • output_dir:模型保存路径。

    五、Web UI 操作流程

    对于初学者,推荐使用 Web UI 进行可视化操作:

    1. 启动服务:在项目根目录下运行命令。

      python src/train_web.py
      

      默认监听端口为 7860,打开浏览器访问 http://localhost:7860。

    2. 配置模型:在左侧菜单选择模型名称,确认本地已下载权重文件。

    3. 加载数据集:上传自定义数据集文件或选择内置数据集,确保格式符合规范(instruction, input, output)。

    4. 设置训练参数:调整学习率、Epoch、Batch Size 等超参数。

    5. 开始训练:点击'开始'按钮,右侧面板将实时显示 Loss 曲线和日志信息。

    6. 导出模型:训练完成后,可在'导出'页面将模型转换为 HuggingFace 格式或 GGUF 格式以便部署。

    六、命令行微调示例

    对于需要脚本化或 CI/CD 集成的场景,可使用命令行直接执行:

    python src/train.py \
        --stage sft \
        --do_train \
        --model_name_or_path Qwen/Qwen1.5-7B-Chat \
        --dataset custom_sft \
        --template qwen \
        --finetuning_type lora \
        --lora_target all \
        --output_dir ./checkpoints \
        --overwrite_cache \
        --per_device_train_batch_size 1 \
        --gradient_accumulation_steps 4 \
        --lr_scheduler_type cosine \
        --logging_steps 10 \
        --save_steps 1000 \
        --learning_rate 5e-5 \
        --num_train_epochs 3.0 \
        --plot_loss \
        --fp16
    

    参数解析:

    • --stage:指定训练阶段,如 sft, pt, rm。
    • --finetuning_type:微调方式,可选 lora, full, freeze。
    • --lora_target:LoRA 作用的目标模块,all 表示全部线性层。
    • --template:模型特定的模板格式,如 qwen, llama, chatglm。
    • --plot_loss:训练结束后自动生成 Loss 曲线图。

    七、推理部署

    训练好的模型可以通过 LLaMA-Factory 提供的推理接口进行部署:

    1. 启动 API 服务

    利用 vLLM 引擎启动高性能推理服务:

    python src/api_server.py \
        --model_name_or_path ./outputs/checkpoint \
        --port 8000 \
        --backend vllm
    

    2. 调用示例

    使用 Python 客户端发送请求:

    import requests
    
    response = requests.post(
        "http://localhost:8000/v1/chat/completions",
        json={
            "model": "local-model",
            "messages": [{"role": "user", "content": "你好,请介绍一下你自己。"}],
            "temperature": 0.7
        }
    )
    print(response.json())
    

    3. 浏览器测试

    访问 Web UI 的推理页面,输入提示词即可直接查看生成结果,适合快速验证效果。

    八、常见问题与排查

    1. 显存溢出 (OOM)

    • 现象:训练过程中报错 CUDA out of memory。
    • 解决:
      • 减小 per_device_train_batch_size。
      • 增大 gradient_accumulation_steps。
      • 启用 fp16 或 bf16 混合精度。
      • 使用 qlora 模式,开启 4 比特量化。
      • 检查是否开启了不必要的缓存或日志。

    2. 数据集格式错误

    • 现象:训练启动时报错 KeyError 或 ValueError。
    • 解决:
      • 检查 JSON 文件中是否包含必需的字段(如 instruction, input, output)。
      • 确保没有空行或非法字符。
      • 确认数据集名称在 datasets_info.json 中已正确注册。

    3. 模型加载失败

    • 现象:无法下载或加载模型权重。
    • 解决:
      • 检查网络连接,尝试使用镜像源(如 HF-Mirror)。
      • 确认模型名称拼写正确。
      • 手动下载模型权重到本地并指定 model_name_or_path 路径。

    九、总结

    LLaMA-Factory 为大模型爱好者和开发者提供了一个强大且易用的微调平台。通过其完善的文档和丰富的功能,用户可以快速实现从数据准备、模型训练到推理部署的全流程。无论是个人学习还是企业级应用,LLaMA-Factory 都能提供高效的解决方案。随着社区的发展,未来将支持更多模型架构和优化算法,值得持续关注。

    建议在实际使用前阅读官方文档以获取最新的功能列表和最佳实践。

    目录

    1. LLaMA-Factory 大语言模型微调框架
    2. 一、功能特点
    3. 二、环境准备与安装
    4. 1. 系统要求
    5. 2. 创建 Conda 环境
    6. 3. 克隆项目源码
    7. 4. 安装依赖
    8. 基础安装
    9. 如需使用 FlashAttention-2 加速(需 NVIDIA Ampere 架构 GPU)
    10. 如需使用 Unsloth 优化
    11. 三、支持的模型与算法
    12. 1. 支持的主流模型
    13. 2. 微调任务类型
    14. 3. 精度与优化技术
    15. 四、配置文件详解
    16. 五、Web UI 操作流程
    17. 六、命令行微调示例
    18. 七、推理部署
    19. 1. 启动 API 服务
    20. 2. 调用示例
    21. 3. 浏览器测试
    22. 八、常见问题与排查
    23. 1. 显存溢出 (OOM)
    24. 2. 数据集格式错误
    25. 3. 模型加载失败
    26. 九、总结
    • 免费图片AI生成工具免费生成了解详情
    • Magick API 一键接入全球大模型注册送1000万token查看
    • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
    • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
    • 100+免费在线小游戏爽一把
    极客日志微信公众号二维码

    微信扫一扫,关注极客日志

    微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

    更多推荐文章

    查看全部
    • GitHub Copilot SDK 与云原生多智能体系统实践
    • IntelliJ IDEA 集成 GitHub Copilot:从安装到实战技巧
    • Spring AOP 核心概念与实战:面向切面编程详解
    • OpenClaw 实战:利用 AI Agent 自动生成测试用例并导出 Excel
    • React 前端开发 50 个基础高频面试题
    • RAG 系统链路构建:文档切割与转换全解析
    • Komari 轻量级服务器监控工具介绍
    • LoRA 训练助手:快速生成 Stable Diffusion 专业训练标签
    • Python FastAPI 入门实战:从零构建生产级 RESTful API
    • OpenClaw 多 Agent 对接飞书机器人实践
    • C++ 入门实战指南:从环境搭建到面向对象编程
    • Python 连接和操作 Elasticsearch 详细指南
    • 国产复旦微 FMQL45T900 开发平台:ARM+FPGA 协同设计与工业应用
    • 大模型时代人形机器人感知:视觉 - 语言模型在机器人中的应用
    • Llama 3 模型微调实战指南:基于 XTuner 的 QLoRA 方法
    • 基于 Java+SpringBoot+Vue 的口腔牙科诊所预约管理系统
    • Clawdbot 部署实战:宝塔反代与 BasicAuth 安全加固
    • 前端状态管理:Recoil 的原子化方案
    • 自然语言处理在社交媒体分析中的应用与实战
    • Flutter 组件 genkit 适配鸿蒙:AI 流式响应与提示词工程

    相关免费在线工具

    • 加密/解密文本

      使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

    • RSA密钥对生成器

      生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

    • Mermaid 预览与可视化编辑

      基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

    • 随机西班牙地址生成器

      随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

    • Gemini 图片去水印

      基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

    • curl 转代码

      解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online