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

LLaMA Factory 大模型微调全流程实战指南

LLaMA Factory 是一个高效的大语言模型训练与微调平台,支持多种模型架构和训练算法。涵盖从环境搭建、数据格式配置到 SFT 训练、LoRA 合并及推理评估的全流程实战指南。通过 WebUI 或命令行,用户可以零代码完成百种预训练模型的微调,并支持量化部署与多模态任务,适合希望快速上手大模型开发的开发者参考。

晚风叙旧发布于 2026/4/8更新于 2026/5/2213 浏览
LLaMA Factory 大模型微调全流程实战指南

LLaMA Factory 简介

LLaMA Factory 是一个简单易用且高效的大型语言模型训练与微调平台。通过它,无需编写复杂代码即可在本地完成上百种预训练模型的微调。其核心特性包括支持多种模型架构(如 LLaMA、Qwen、Yi 等)、丰富的训练算法(SFT、DPO、PPO 等)以及灵活的精度控制(全参数、LoRA、QLoRA 等)。

环境安装与部署

CUDA 配置

使用 GPU 加速前,需确保系统已安装兼容的 CUDA 驱动。建议先查看 NVIDIA 官网确认显卡支持情况。在 Linux 环境下,可通过以下命令检查系统架构与版本:

uname -m && cat /etc/*release

同时需确认 gcc 已安装:

gcc --version

下载并安装 CUDA 12.2 或更高版本时,若之前有旧版本残留,建议先卸载。例如卸载 12.1 版本可执行:

sudo /usr/local/cuda-12.1/bin/cuda-uninstaller

若上述命令不可用,可直接清理目录并重新运行安装脚本。安装完成后,输入 nvcc -V 验证版本号。

LLaMA-Factory 安装

基础环境推荐 Ubuntu 22.04 + Python 3.10 + PyTorch 2.x。创建虚拟环境并安装依赖:

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 用户需注意 QLoRA 和 FlashAttention-2 的特定依赖包版本,请根据 CUDA 版本选择对应的 wheel 文件安装。

数据准备与格式

所有数据集需放置在 data 目录下,并在 dataset_info.json 中注册。目前支持 Alpaca 和 ShareGPT 格式。

指令监督微调 (SFT)

这是最常见的微调场景。数据集中应包含 instruction(人类指令)、input(人类输入)和 output(模型回答)。system 列用于设定系统提示词,history 列用于多轮对话历史。

示例 JSON 结构:

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

对于单轮对话,省略 history 即可。在 dataset_info.json 中映射字段:

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

其他数据集类型

  • 预训练:仅需 text 列,内容为纯文本段落。
  • 偏好数据集:用于 DPO/ORPO 训练,需包含 chosen(优质回答)和 rejected(劣质回答)。
  • KTO 数据集:包含 kto_tag(true/false)表示人类反馈。
  • 多模态:图像需 images 列,视频需 videos 列,音频需 audios 列,数量需与文本中的标记一致。

模型训练与微调

WebUI 操作

进入 WebUI 后,主要配置项包括模型路径、训练阶段(SFT/DPO 等)、微调方法(LoRA/Full)、数据集、学习率及输出目录。点击开始即可自动执行训练任务。

命令行训练

对于更精细的控制,可使用 YAML 配置文件。参考 examples/train_lora/llama3_lora_sft.yaml:

model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
stage: sft
do_train: true
finetuning_type: lora
lora_target: all
dataset: identity,alpaca_en_demo
template: llama3
cutoff_len: 1024
max_samples: 1000
output_dir: saves/llama3-8b/lora/sft
learning_rate: 1.0e-4
num_train_epochs: 3.0
bf16: true
per_device_train_batch_size: 1
gradient_accumulation_steps: 8

直接运行命令:

llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml

也可动态追加参数覆盖配置,如调整学习率:

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

LoRA 合并与量化

训练完成后,适配器通常以增量形式存在。为了部署方便,建议将 LoRA 权重合并到基座模型中。

合并模型

使用 export 命令,指定原始模型路径和适配器路径:

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

注意:合并时使用未量化的预训练模型效果更佳。

量化部署

为降低显存占用,可进行 GPTQ/AWQ 等量化处理。配置示例:

export_quantization_bit: 4
export_quantization_dataset: data/c4_demo.json
export_size: 2

量化能显著减少推理延迟,但需预留校准数据集以保证精度。

推理与评估

在线对话

支持 Huggingface 和 vLLM 后端。配置文件只需指定模型路径和模板:

model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
template: llama3
infer_backend: huggingface

微调模型需额外指定适配器:

adapter_name_or_path: saves/llama3-8b/lora/sft
finetuning_type: lora

启动命令:

llamafactory-cli chat inference_config.yaml

批量推理

针对大量测试集,可调用 API 服务或使用 vLLM 脚本:

python scripts/vllm_infer.py --model_name_or_path path_to_merged_model --dataset alpaca_en_demo

能力评估

通用能力评估(如 MMLU、C-Eval):

llamafactory-cli eval examples/train_lora/llama3_lora_eval.yaml

NLG 生成质量评估(BLEU/ROUGE):

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

评估参数中可设置 task(任务类型)、lang(语言)、batch_size 等。确保数据集路径正确,并根据显存调整批次大小。

目录

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

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

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

更多推荐文章

查看全部
  • 基于 Spring Boot 的智能客服机器人系统设计与实现
  • Visual C++运行库缺失导致程序启动失败解决方案
  • 哈希表进阶:哈希桶封装 unordered_set 和 unordered_map 与迭代器详解
  • 使用 Google Colab 部署 LLaMA-13B 及 LangChain 实战
  • 深度学习八大经典神经网络架构详解与实战指南
  • LogiOps 在 Linux 下配置 Logitech 鼠标完整教程
  • Java 数据类型、运算符和方法重点总结
  • 华为 OD 机试:伐木工问题解析
  • 大模型实践技术总结:集群、训练、微调与推理
  • GitHub Copilot 接入第三方 OpenAI 兼容模型方案
  • 从零搭建 AI 系统权限控制系统
  • 自动驾驶指令理解模型:Llama-Factory垂直领域适配
  • 主流 AI IDE 与编程工具对比及选型建议
  • 医疗连续体机器人模块化控制界面设计与 Python 库应用(下)
  • 树莓派 4B 部署 OpenClaw 实战:网络限制与模型配置
  • Ubuntu 24.04 向日葵连接失败解决方法
  • 安卓案例:利用定时器实现逐帧动画
  • 渐进式 AIGC 系统:多模态大模型与 Agent 智能体私有化部署方案
  • Qoder AI 编码工具功能详解
  • Agent 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