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

LlamaFactory 多模态大模型微调实战指南

综述由AI生成本文介绍 LlamaFactory 框架在 Python 环境下的高效安装与使用方法。通过 uv 工具完成依赖管理,利用命令行接口实现模型训练、导出、推理及评估全流程。重点演示了针对 Qwen3-VL 多模态模型的 QLoRA 微调实战,涵盖数据格式配置、YAML 参数调优及训练日志分析。内容去除了无关平台推广信息,聚焦技术细节与实操步骤,适合希望快速上手大模型微调的开发者参考。

dehua dong发布于 2026/4/7更新于 2026/5/2217 浏览
LlamaFactory 多模态大模型微调实战指南

LlamaFactory 多模态大模型微调实战指南

LlamaFactory 是一个统一的大模型训练与微调框架,旨在降低大模型定制的技术门槛。它支持全量微调、LoRA、QLoRA 等多种策略,提供 Web UI 和命令行两种交互方式,适合从实验到部署的全流程。

环境安装

推荐使用 uv 工具进行依赖管理,它能快速解决版本冲突问题。

首先克隆项目仓库:

git clone --depth 1 https://github.com/hiyouga/LlamaFactory.git 

进入目录并同步环境:

cd LlamaFactory uv sync 

验证安装是否成功,启动 Web UI:

uv run llamafactory-cli webui 

浏览器访问本地地址,若界面正常加载,说明环境配置无误。

文章配图

文章配图

命令行基础用法

除了 Web UI,命令行模式更适合自动化脚本和服务器部署。核心命令格式为 llamafactory-cli + 任务 + 配置文件。

常用任务类型包括:

  • train:训练模型
  • export:导出合并后的模型
  • chat:在线推理
  • eval:评估模型效果

配置文件采用 YAML 格式,官方提供了丰富的示例,涵盖全量训练、LoRA 微调等场景。

训练示例

以 Qwen3 LoRA 微调为例:

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

执行命令:

uv run llamafactory-cli train examples/train_lora/qwen3_lora_sft.yaml 

导出与推理

导出模型(合并 LoRA 权重):

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_size: 2
export_device: cpu
export_legacy_format: false

运行:

llamafactory-cli export merge_config.yaml 

在线推理:

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

运行:

llamafactory-cli chat inference_config.yaml 

微调 Qwen3-VL 多模态模型

下面通过一个实际案例,演示如何使用 QLoRA 微调 Qwen3-VL 模型。

1. 模型准备

国内网络下载 HuggingFace 模型可能超时,建议设置镜像源:

export HF_ENDPOINT="https://hf-mirror.com"

本次选用 Qwen/Qwen3-VL-2B-Instruct。

2. 数据准备

数据集配置位于 data/dataset_info.json。LlamaFactory 支持 alpaca 和 sharegpt 两种格式。

  • Alpaca 格式:包含 instruction, input, output。
  • ShareGPT 格式:包含 messages 列表,适合多轮对话及多模态任务。

本次使用 COCO 数据集,属于 ShareGPT 格式。需在 dataset_info.json 中注册配置:

"coco-400": {
  "file_name": "coco-400.json",
  "formatting": "sharegpt",
  "columns": {
    "messages": "conversations",
    "id": "id"
  },
  "tags": {
    "role_tag": "from",
    "content_tag": "value",
    "user_tag": "user",
    "assistant_tag": "assistant"
  }
}

确保 JSON 文件结构符合 ShareGPT 规范,包含音频或图像路径信息。

3. 参数配置

基于官方提供的 QLoRA 示例模板进行修改。关键参数如下:

  • 模型路径:model_name_or_path
  • 量化位宽:quantization_bit (推荐 4bit)
  • 数据集:dataset
  • 模板:template (视觉模型需用 qwen3_vl_nothink,语言模型用 qwen3_nothink,选错会报错)

修改后的配置文件示例:

model_name_or_path: Qwen/Qwen3-VL-2B-Instruct
quantization_bit: 4
quantization_method: bnb
trust_remote_code: true

stage: sft
do_train: true
finetuning_type: lora
lora_rank: 8
lora_target: all

dataset: coco-3000
template: qwen3_vl_nothink
cutoff_len: 2048
preprocessing_num_workers: 16
dataloader_num_workers: 4

output_dir: saves/qwen3-2b-coco-3000/lora/sft
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true
report_to: none

per_device_train_batch_size: 2
gradient_accumulation_steps: 4
learning_rate: 1e-5
num_train_epochs: 2
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true

4. 启动训练

执行训练命令:

uv run llamafactory-cli train examples/train_qlora/qwen3-coco.yaml 

训练过程中会输出日志,关注 Loss 变化及显存占用。以下是清洗后的典型训练日志片段:

[INFO|trainer.py] Running training...
Num examples = 600
Num Epochs = 2
Instantaneous batch size per device = 2
Total train batch size (w. parallel) = 8
Gradient Accumulation steps = 4
Total optimization steps = 150

{'loss': 4.3662, 'grad_norm': 5.82, 'learning_rate': 6e-06, 'epoch': 0.13}
{'loss': 4.0005, 'grad_norm': 6.60, 'learning_rate': 9.7e-06, 'epoch': 0.4}
{'loss': 3.1868, 'grad_norm': 3.40, 'learning_rate': 8.5e-06, 'epoch': 0.67}
... loss 持续下降 ...
{'loss': 2.6784, 'grad_norm': 1.99, 'learning_rate': 1.3e-09, 'epoch': 2.0}

Saving model checkpoint to saves/qwen3-2b-coco-3000/lora/sft/checkpoint-150
train_loss = 3.1502
train_runtime = 0:01:33
Figure saved at: saves/qwen3-2b-coco-3000/lora/sft/training_loss.png

训练完成后,可在 output_dir 下找到生成的 LoRA 权重文件和损失曲线图。

文章配图

文章配图

文章配图

文章配图

文章配图

目录

  1. LlamaFactory 多模态大模型微调实战指南
  2. 环境安装
  3. 命令行基础用法
  4. 训练示例
  5. 导出与推理
  6. 微调 Qwen3-VL 多模态模型
  7. 1. 模型准备
  8. 2. 数据准备
  9. 3. 参数配置
  10. 4. 启动训练
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • AI 绘画与摄影:ChatGPT、Midjourney 与文心一格工具解析
  • Python NumPy 入门指南:数据处理与科学计算基础
  • AIGC 情感化智能客服实战:降低投诉率的技术方案
  • C++ 高性能 HTTP 服务器构建与实战优化
  • Qwen3-VL 结合 LLaMA-Factory 实现 Grounding 任务 LoRA 微调
  • RabbitMQ 分布式系统实战:从安装部署到 C++ 调用
  • 游戏 Hacknet:零基础体验 Web 黑客攻防与 Linux 命令操作
  • Windows 11 安装 Ubuntu 子系统
  • Clawdbot 接入飞书机器人
  • FMCW 雷达基础(八):2D-MUSIC 测角算法原理
  • C++ 模板进阶:特化、萃取与可变参数模板
  • Coze 低代码 AI 智能体平台全解析:100 个落地场景与发布指南
  • HarmonyOS ArkUI 实战:从零打造计数器应用
  • AI 提示工程实战:如何与大模型高效对话
  • Vite 自动导入与组件命名配置实战
  • Ubuntu 20.04 网络配置指南
  • AI 写作辅助平台深度评测:炼字工坊与蛙蛙写作
  • YOLO 目标检测算法简介及 YOLO v1 模型流程详解
  • 借助 AI 高效生成测试用例的实操指南
  • Windows 系统常用 CMD 命令大全(108 个)

相关免费在线工具

  • 加密/解密文本

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