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

LLaMA Factory 大模型微调实战指南

LLaMA Factory 是一个高效的大型语言模型训练与微调平台。其安装部署、数据准备、SFT 训练、LoRA 合并与量化、推理及评估全流程。支持多种模型架构与训练算法,可通过 WebUI 或命令行完成零代码微调,适用于本地化部署与模型优化场景。

灵魂伴侣发布于 2026/4/6更新于 2026/10/18114 浏览
LLaMA Factory 大模型微调实战指南

一、LLaMA-Factory 简介

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调。

框架特性包括:

  • 模型种类:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Yi、Gemma、Baichuan、ChatGLM、Phi 等。
  • 训练算法:(增量)预训练、(多模态)指令监督微调、奖励模型训练、PPO 训练、DPO 训练、KTO 训练、ORPO 训练等。
  • 运算精度:16 比特全参数微调、冻结微调、LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调。
  • 优化算法:GaLore、BAdam、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ 和 PiSSA。
  • 加速算子:FlashAttention-2 和 Unsloth。
  • 推理引擎:Transformers 和 vLLM。
  • 实验监控:LlamaBoard、TensorBoard、Wandb、MLflow、SwanLab 等。

二、安装部署

1. CUDA 安装

CUDA 是由 NVIDIA 创建的并行计算平台和编程模型。

  1. 检查 GPU 是否支持 CUDA:访问 https://developer.nvidia.com/cuda-gpus。
  2. 确保 Linux 版本支持 CUDA。在命令行中输入 uname -m && cat /etc/*release。
  3. 检查是否安装了 gcc。输入 gcc --version。
  4. 下载并安装所需版本的 CUDA(推荐 12.2 版本)。注意根据系统输出选择正确版本。
  5. 如果之前安装过 CUDA,需先卸载。例如使用 sudo /usr/local/cuda-12.1/bin/cuda-uninstaller。
  6. 完成后输入 nvcc -V 检查版本号。

2. LLaMA-Factory 安装

基础环境建议:Ubuntu 22.04, CUDA 12.4.0, Python 3.11, PyTorch 2.x。

运行以下指令安装 LLaMA-Factory 及其依赖:

# 创建 python 环境
conda create -n llama_factory python=3.10 -y
# 切换到新环境
conda activate llama_factory
# 安装 cuda pytorch 等核心工具
conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=11.8 -c pytorch -c nvidia
pip3 install torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install llmtuner
# 安装 llama_factory
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
# 安装环境依赖
pip install -e ".[torch,metrics]"

如果出现环境冲突,可尝试 pip install --no-deps -e .。

LLaMA-Factory 校验

安装完成后,使用 llamafactory-cli version 校验。

启动 WebUI 页面:

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

下载离线模型

可从魔搭社区下载模型,例如:

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

Windows 高级选项

QLoRA

若需在 Windows 上启用量化 LoRA,请根据您的 CUDA 版本选择适当的 bitsandbytes 发行版本。

FlashAttention-2

若要在 Windows 平台上启用 FlashAttention-2,请选择适当的 flash-attention 发行版本。

Extra Dependency

如需更多功能,可安装对应依赖:

名称描述
torch开源深度学习框架
metrics用于评估和监控机器学习模型性能
deepspeed分布式训练所需的零冗余优化器
bitsandbytes用于大型语言模型量化
vllm提供了高速并发的模型推理服务
galore提供了高效全参微调算法
badam提供了高效全参微调算法

三、数据微调

dataset_info.json 包含了所有经过预处理的本地数据集以及在线数据集定义。目前支持 Alpaca 格式和 ShareGPT 格式。

指令监督微调数据集

指令监督微调(Instruct Tuning)通过让模型学习详细的指令及对应的回答来优化表现。

  • instruction:人类指令(必填)
  • input:人类输入(选填)
  • output:模型回答(必填)
  • system:系统提示词(选填)
  • history:历史消息列表(选填)

示例格式:

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

在 dataset_info.json 中的描述应为:

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

预训练数据集

样例格式:

[{"text": "document"}, {"text": "document"}]

偏好数据集

用于奖励模型训练、DPO 训练和 ORPO 训练。需提供更优回答 (chosen) 和更差回答 (rejected)。

[
  {
    "instruction": "人类指令",
    "input": "人类输入",
    "chosen": "优质回答",
    "rejected": "劣质回答"
  }
]

KTO 数据集

对每一轮问答只给出一个 true/false 的 label,需额外添加 kto_tag 列。

多模态数据集

支持图像、视频及音频数据集输入,需分别添加 images, videos, audios 列。

四、WebUI

LLaMA-Factory 支持通过 WebUI 零代码微调大语言模型。

启动命令:

llamafactory-cli webui

开始训练前需指定:

  1. 模型名称及路径
  2. 训练阶段
  3. 微调方法
  4. 训练数据集
  5. 学习率、训练轮数等参数
  6. 输出目录及配置路径

评估预测与对话

模型训练完毕后,可在评估界面指定模型及适配器路径进行数据集评估;或在对话界面指定模型、适配器及推理引擎进行交互。

导出

满意后可在导出界面指定模型、适配器、分块大小、量化等级等参数导出模型。

五、SFT 训练

命令行

使用配置文件进行微调:

llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml

也可追加参数更新 yaml 文件内容:

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

配置示例:

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
overwrite_cache: true
preprocessing_num_workers: 16
output_dir: saves/llama3-8b/lora/sft
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000
val_size: 0.1
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500

重要训练参数说明:

名称描述
model_name_or_path模型名称或路径
stage训练阶段 (rm, pt, sft, PPO, DPO, KTO, ORPO)
do_traintrue 用于训练,false 用于评估
finetuning_type微调方式 (freeze, lora, full)
lora_targetLoRA 目标模块
dataset使用的数据集
template数据集模板
output_dir输出路径
learning_rate学习率
num_train_epochs训练周期数

六、LoRA 合并

合并

将预训练模型和 LoRA 适配器合并导出成一个模型:

llamafactory-cli export merge_config.yaml

配置示例:

model:
  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:
  export_dir: models/llama3_lora_sft
  export_size: 2
  export_device: cpu
  export_legacy_format: false

量化

量化技术可减少显存占用并加速推理。支持 AQLM, AWQ, GPTQ, QLoRA 等方法。

GPTQ 等后训练量化方法需要指定量化位数 export_quantization_bit 及校准数据集 export_quantization_dataset。

配置示例:

model:
  model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
  template: llama3
export:
  export_dir: models/llama3_gptq
  export_quantization_bit: 4
  export_quantization_dataset: data/c4_demo.json
  export_size: 2
  export_device: cpu
  export_legacy_format: false

七、推理

LLaMA-Factory 支持多种推理方式。

使用 llamafactory-cli chat inference_config.yaml 或 llamafactory-cli webchat inference_config.yaml 进行对话。

默认使用 Huggingface 引擎,也可指定 infer_backend: vllm 以获得更快的速度。

原始模型推理配置

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

微调模型推理配置

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
infer_backend: huggingface

批量推理

启动 vllm 推理引擎:

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

调用 API 服务示例:

API_PORT=8000 CUDA_VISIBLE_DEVICES=0 llamafactory-cli api examples/inference/llama3_lora_sft.yaml

Python 调用代码:

from openai import OpenAI
client = OpenAI(api_key="0", base_url="http://0.0.0.0:8000/v1")
messages = [{"role": "user", "content": "Who are you?"}]
result = client.chat.completions.create(messages=messages, model="meta-llama/Meta-Llama-3-8B-Instruct")
print(result.choices[0].message)

八、评估

通用能力评估

llamafactory-cli eval examples/train_lora/llama3_lora_eval.yaml

配置示例:

model:
  model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
  adapter_name_or_path: saves/llama3-8b/lora/sft
method:
  finetuning_type: lora
dataset:
  task: mmlu_test
template: fewshot
lang: en
n_shot: 5
output:
  save_dir: saves/llama3-8b/lora/eval
eval:
  batch_size: 4

NLG 评估

获得 BLEU 和 ROUGE 分数:

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

评估相关参数

参数名称类型介绍
taskstr评估任务名称 (mmlu_test, ceval_validation, cmmlu_test)
batch_sizeint每个 GPU 使用的批量大小
langstr评估语言 (en, zh)
n_shotintfew-shot 示例数量
save_dirstr保存评估结果的路径

目录

  1. 一、LLaMA-Factory 简介
  2. 二、安装部署
  3. 1. CUDA 安装
  4. 2. LLaMA-Factory 安装
  5. 创建 python 环境
  6. 切换到新环境
  7. 安装 cuda pytorch 等核心工具
  8. 安装 llama_factory
  9. 安装环境依赖
  10. LLaMA-Factory 校验
  11. 下载离线模型
  12. Windows 高级选项
  13. QLoRA
  14. FlashAttention-2
  15. Extra Dependency
  16. 三、数据微调
  17. 指令监督微调数据集
  18. 预训练数据集
  19. 偏好数据集
  20. KTO 数据集
  21. 多模态数据集
  22. 四、WebUI
  23. 评估预测与对话
  24. 导出
  25. 五、SFT 训练
  26. 命令行
  27. 六、LoRA 合并
  28. 合并
  29. 量化
  30. 七、推理
  31. 原始模型推理配置
  32. 微调模型推理配置
  33. 批量推理
  34. 八、评估
  35. 通用能力评估
  36. NLG 评估
  37. 评估相关参数

更多推荐文章

查看全部
  • VsCode 远程调用 Claude Agent 报“无效请求”排查指南
  • Prompt 驱动的 SQL 生成与查询优化
  • OpenClaw 2026.2.22-beta.1 版本更新:支持 Mistral 模型与语音记忆优化
  • PostgreSQL 利用动态 SQL 实现自动按月创建表分区
  • 链表核心算法题解汇总
  • C++ 高精度时间库 chrono 详解
  • 亮数据 MCP 结合 Dify 构建自动化视频数据抓取与分析工作流
  • Qwen3-VL WebUI 本地部署与核心功能实战指南
  • GitCode 克隆代码认证失败,需改用个人访问令牌或 SSH
  • React 集成 Microi 吾码低代码平台开发指南
  • CASIC MOTOR 14.8V 无刷减速电机拆解记录
  • Ubuntu Desktop 离线安装 RustDesk 远程桌面客户端指南
  • AI 视频生成技术解析:从模型原理到 API 集成实战
  • 火山引擎发布两款视频大模型及多项 AI 升级
  • iOS 开发新系统兼容适配:UITabBar 液态玻璃效果与 WiFi 获取
  • Stable Diffusion 模型加载报错:CheckpointLoaderSimple 错误修复
  • ASP.NET Core 主机模型详解:Host、WebHost 与 WebApplication 对比与实践
  • Virt A Mate (VAM) 虚拟现实模拟软件功能介绍
  • 基于 LLaMA-Factory 和 LoRA 的大模型微调部署指南
  • PyFlink 依赖配置指南:JAR、Python 包与虚拟环境集成

相关免费在线工具

  • 加密/解密文本

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