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

LLaMA Factory 大模型微调实战指南

LLaMA Factory 是一个高效的大模型微调平台,支持多种模型架构与训练算法。从 CUDA 环境搭建、软件安装到数据集格式配置的全流程。内容涵盖 WebUI 零代码操作、命令行 YAML 配置训练、LoRA 适配器合并与量化技术,以及基于 vLLM 的推理部署与模型评估方法。通过实战步骤解析,帮助开发者快速掌握本地化大模型微调的核心技能。

清心发布于 2026/4/7更新于 2026/5/2312 浏览
LLaMA Factory 大模型微调实战指南

LLaMA-Factory 简介

LLaMA-Factory 是一个简单易用且高效的大型语言模型训练与微调平台。通过它,可以在无需编写大量代码的前提下,在本地完成上百种预训练模型的微调。其核心特性包括支持多种主流模型架构(如 LLaMA、Qwen、Yi、ChatGLM 等)、丰富的训练算法(SFT、DPO、PPO 等)以及灵活的精度控制(全参数、LoRA、QLoRA 等)。此外,框架还集成了 FlashAttention-2、Unsloth 等加速算子,并支持 TensorBoard、Wandb 等实验监控工具。

安装部署

CUDA 环境配置

CUDA 是 NVIDIA 提供的并行计算平台和编程模型。首先需确认 GPU 是否支持 CUDA,可通过官方文档查询兼容列表。在 Linux 环境下,建议先检查系统版本和编译器环境:

uname -m && cat /etc/*release
gcc --version

确保输出符合预期后,下载并安装 CUDA Toolkit(推荐 12.2 版本)。若之前已安装旧版本,需先卸载:

sudo /usr/local/cuda-12.1/bin/cuda-uninstaller
# 若命令不可用,可手动清理
sudo rm -r /usr/local/cuda-12.1/
sudo apt clean && sudo apt autoclean

安装完成后,运行 nvcc -V 验证版本号。注意在安装过程中,若不确定驱动兼容性,建议取消 Driver 的自动安装选项。

LLaMA-Factory 安装

基础环境建议如下:Ubuntu 22.04 + CUDA 12.x + Python 3.10 + PyTorch 2.2.2。

创建虚拟环境并安装依赖:

conda create -n llama_factory python=3.10 -y
conda activate llama_factory
conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=11.8 -c pytorch -c nvidia
pip install llmtuner

克隆项目并安装依赖:

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"

若遇到依赖冲突,可尝试 pip install --no-deps -e . 跳过依赖检查。安装成功后,可通过以下命令校验:

llamafactory-cli version

启动 WebUI 界面:

CUDA_VISIBLE_DEVICES=0 GRADIO_SHARE=1 GRADIO_SERVER_PORT=7860 llamafactory-cli webui

如需使用离线模型,可从 ModelScope 等平台下载,例如:

git clone https://www.modelscope.cn/Qwen/Qwen2.5-0.5B-Instruct.git

Windows 用户注意事项

Windows 环境下启用 QLoRA 或 FlashAttention-2 可能需要特定版本的二进制包。请根据 CUDA 版本从 GitHub 发布页下载对应的 .whl 文件进行安装。此外,部分高级功能(如 DeepSpeed、vLLM)可能需要额外安装依赖项。

数据微调准备

LLaMA-Factory 支持多种数据集格式,主要包括 Alpaca 和 ShareGPT。自定义数据集需在 dataset_info.json 中注册。目前支持的指令监督微调、偏好数据集及多模态数据集格式如下:

指令监督微调

指令微调通过让模型学习指令与回答的配对来优化表现。数据集中通常包含 instruction(指令)、input(输入)、output(回答)三列。若指定了 system 列,将作为系统提示词;history 列则用于多轮对话历史。

示例格式:

[
  {
    "instruction": "计算这些物品的总费用。",
    "input": "汽车 - $3000,衣服 - $100,书 - $20。",
    "output": "汽车、衣服和书的总费用为 $3120。",
    "history": []
  }
]

在 dataset_info.json 中的配置需对应字段映射:

"数据集名称": {
  "file_name": "data.json",
  "columns": {
    "prompt": "instruction",
    "query": "input",
    "response": "output",
    "system": "system",
    "history": "history"
  }
}

其他数据集类型

  • 预训练数据集:仅需 text 列,用于无监督学习语言表征。
  • 偏好数据集:包含 chosen(优质回答)和 rejected(劣质回答),适用于 DPO 或奖励模型训练。
  • KTO 数据集:包含 kto_tag(true/false),用于直接反馈优化。
  • 多模态数据集:需额外添加 images、videos 或 audios 列,路径数量必须与文本中的标记严格一致。

WebUI 操作指南

LLaMA-Factory 提供了友好的 Web 界面,支持零代码微调。启动服务后,主要操作流程如下:

  1. 模型选择:指定预训练模型名称或本地路径。
  2. 训练阶段:选择 SFT、RLHF 等任务类型。
  3. 微调方法:设定 LoRA、Full Fine-tuning 等策略。
  4. 数据集配置:加载已注册的本地或在线数据集。
  5. 超参数调整:设置学习率、Batch Size、Epochs 等关键参数。
  6. 输出管理:定义模型保存目录及日志路径。

配置完成后点击启动按钮即可开始训练。训练结束后,可在评估预测界面查看效果,或在对话界面测试模型响应。若对结果满意,可直接在导出界面合并模型并量化。

SFT 命令行训练

对于需要更精细控制的场景,推荐使用命令行配合 YAML 配置文件。以 LoRA 微调为例:

llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml

也可动态覆盖配置项:

llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml learning_rate=1e-5 logging_steps=1

核心配置参数说明:

参数说明
model_name_or_path模型名称或路径
stage训练阶段 (pt/sft/rm/dpo/kto/orpo)
finetuning_type微调方式 (freeze/lora/full)
lora_targetLoRA 目标模块,默认 all
dataset数据集名称,逗号分隔多个
template模型模板,需与模型匹配
learning_rate学习率
num_train_epochs训练轮数
bf16是否启用 bf16 混合精度

LoRA 合并与量化

训练完成后,LoRA 适配器通常独立于基座模型存在。为了便于部署,可将两者合并为一个完整模型。合并时需指定基座模型路径、适配器路径及导出目录:

model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
adapter_name_or_path: saves/llama3-8b/lora/sft
export_dir: models/merged_model
export_device: cpu

合并后的模型可根据需求进行量化压缩,以减少显存占用并提升推理速度。LLaMA-Factory 支持 GPTQ、AWQ、QLoRA 等多种量化方案。例如使用 GPTQ 量化至 4-bit:

export_quantization_bit: 4
export_quantization_dataset: data/c4_demo.json

注意:合并过程建议使用未量化的基座模型,避免精度损失累积。量化时务必提供校准数据集以保证效果。

推理与评估

推理配置

支持 Huggingface 和 vLLM 两种推理后端。原始模型推理只需指定模型路径和模板;微调模型推理则需额外传入适配器路径及微调类型。

model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
adapter_name_or_path: saves/llama3-8b/lora/sft
finetuning_type: lora
infer_backend: vllm

批量推理可通过脚本调用 API 接口实现,适合大规模评测场景。

模型评估

训练完成后,可使用内置评估工具测试通用能力(如 MMLU、C-Eval)或生成质量(BLEU、ROUGE)。

通用能力评估示例:

llamafactory-cli eval examples/train_lora/llama3_lora_eval.yaml

NLG 评估示例:

llamafactory-cli train examples/extras/nlg_eval/llama3_lora_predict.yaml

评估参数包括任务类型、语言、Few-shot 数量及批次大小等,可根据实际需求灵活调整。

目录

  1. LLaMA-Factory 简介
  2. 安装部署
  3. CUDA 环境配置
  4. 若命令不可用,可手动清理
  5. LLaMA-Factory 安装
  6. Windows 用户注意事项
  7. 数据微调准备
  8. 指令监督微调
  9. 其他数据集类型
  10. WebUI 操作指南
  11. SFT 命令行训练
  12. LoRA 合并与量化
  13. 推理与评估
  14. 推理配置
  15. 模型评估
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • Kimi K2.5 开源权重多模态旗舰大模型详解
  • ROS 机器人开发入门:第一天 Linux 基础与常用命令
  • 【VSCode Copilot登录失败终极指南】:9大常见问题与高效解决方案
  • AI 驱动的产品全流程落地实践:从需求挖掘到灰度发布
  • 红黑树从概念到手撕实现:平衡树的折中智慧
  • 开源 AI 编程工具选型对比:OpenCode 与 GitHub Copilot 优劣分析
  • FPGA 经典面试题目及参考答案汇总
  • FPGA 入门实战:利用 LED 实现 2 选 1 多路选择器
  • Docker 镜像核心解析:以 Nginx 为例
  • Android Framework 源码深度解析:系统架构与核心机制
  • Python 报错 ModuleNotFoundError: No module named 'distutils' 解决办法
  • C++ 异常处理机制详解
  • AI 产品经理薪资趋势与核心面试指南
  • Naiz AI:从语义到像素,全链路重构视频数字孪生
  • 位运算实战:判断字符唯一性与查找缺失数字
  • 一个 Skill 文件优化 AI 生成的前端页面设计
  • DeepFace + OpenCV 实现实时情绪分析器
  • Qwen2.5-7B-Instruct LoRA 微调实战 - LLaMA-Factory 单机单卡 V100
  • C++ 线程库与多线程编程核心机制解析
  • CherryStudio 使用指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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