跳到主要内容
LLaMA Factory 微调大语言模型与视觉语言模型 | 极客日志
Python AI 算法
LLaMA Factory 微调大语言模型与视觉语言模型 LLaMA Factory 提供一站式大模型微调平台,支持多种模型架构及训练方法。涵盖全参数、LoRA、QLoRA 等多种精度与算法,兼容 LLM 与 VLM 任务。内置丰富数据集,支持自定义格式。通过 Conda 环境安装后,利用可视化界面即可完成从 Qwen3 到 Qwen2.5-VL 的微调实践。文档结构清晰,支持 alpaca 与 sharegpt 格式,便于开发者快速上手领域模型定制与部署。
极光 发布于 2026/3/28 更新于 2026/4/23 3 浏览LLaMA Factory 微调指南
开源地址:https://github.com/hiyouga/LLaMA-Factory
一、LLaMA Factory 的特色
多种模型 :LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Qwen2-VL、Qwen3、DeepSeek、Yi、Gemma、ChatGLM、Phi 等。
集成方法 :(增量)预训练、(多模态)指令监督微调、奖励模型训练、PPO 训练、DPO 训练、KTO 训练、ORPO 训练等。
多种精度 :16 比特全参数微调、冻结微调、LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调。
先进算法 :GaLore、BAdam、APOLLO、Adam-mini、Muon、OFT、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ 和 PiSSA。
实用技巧 :FlashAttention-2、Unsloth、Liger Kernel、RoPE scaling、NEFTune 和 rsLoRA。
广泛任务 :多轮对话、工具调用、图像理解、视觉定位、视频识别和语音理解等。
实验监控 :LlamaBoard、TensorBoard、Wandb、MLflow、SwanLab 等。
极速推理 :基于 vLLM 或 SGLang 的 OpenAI 风格 API、浏览器界面和命令行接口。
支持的训练方法:
方法 全参数训练 部分参数训练 LoRA QLoRA 预训练 ✅ ✅ ✅ ✅ 指令监督微调 ✅ ✅ ✅ ✅ 奖励模型训练 ✅ ✅ ✅ ✅ PPO 训练 ✅ ✅ ✅ ✅ DPO 训练 ✅ ✅ ✅ ✅ KTO 训练 ✅ ✅ ✅ ✅ ORPO 训练 ✅ ✅ ✅ ✅ SimPO 训练 ✅ ✅ ✅ ✅
二、支持的模型
主要包括以下模型:
Baichuan 2 7B/13B baichuan2 BLOOM/BLOOMZ 560M/1.1B/1.7B/3B/7.1B/176B - ChatGLM3 6B chatglm3 Command R 35B/104B cohere DeepSeek (Code/MoE) 7B/16B/67B/236B deepseek DeepSeek 2.5/3 236B/671B deepseek3 DeepSeek R1 (Distill) 1.5B/7B/8B/14B/32B/70B/671B deepseekr1 ERNIE-4.5 0.3B/21B/300B ernie/ernie_nothink Falcon 7B/11B/40B/180B falcon Falcon-H1 0.5B/1.5B/3B/7B/34B falcon_h1 Gemma/Gemma 2/CodeGemma 2B/7B/9B/27B gemma/gemma2 Gemma 3/Gemma 3n 270M/1B/4B/6B/8B/12B/27B gemma3/gemma3n GLM-4/GLM-4-0414/GLM-Z1 9B/32B glm4/glmz1 GLM-4.1V 9B glm4v GLM-4.5/GLM-4.5V 106B/355B glm4_moe/glm4v_moe GPT-2 0.1B/0.4B/0.8B/1.5B - GPT-OSS 20B/120B gpt Granite 3.0-3.3 1B/2B/3B/8B granite3 Granite 4 7B granite4 Hunyuan (MT) 7B hunyuan Index 1.9B index InternLM 2-3 7B/8B/20B intern2 InternVL 2.5-3.5 1B/2B/4B/8B/14B/30B/38B/78B/241B intern_vl InternLM/Intern-S1-mini 8B intern_s1 Kimi-VL 16B kimi_vl Ling 2.0 (mini/flash) 16B/100B bailing_v2 Llama 7B/13B/33B/65B - Llama 2 7B/13B/70B llama2 Llama 3-3.3 1B/3B/8B/70B llama3 Llama 4 109B/402B llama4 Llama 3.2 Vision 11B/90B mllama LLaVA-1.5 7B/13B llava LLaVA-NeXT 7B/8B/13B/34B/72B/110B llava_next LLaVA-NeXT-Video 7B/34B llava_next_video MiMo 7B mimo MiniCPM 1-4.1 0.5B/1B/2B/4B/8B cpm/cpm3/cpm4 MiniCPM-o-2.6/MiniCPM-V-2.6 8B minicpm_o/minicpm_v Ministral/Mistral-Nemo 8B/12B ministral Mistral/Mixtral 7B/8x7B/8x22B mistral Mistral Small 24B mistral_small OLMo 1B/7B - PaliGemma/PaliGemma2 3B/10B/28B paligemma Phi-1.5/Phi-2 1.3B/2.7B - Phi-3/Phi-3.5 4B/14B phi Phi-3-small 7B phi_small Phi-4 14B phi4 Pixtral 12B pixtral Qwen (1-2.5) (Code/Math/MoE/QwQ) 0.5B/1.5B/3B/7B/14B/32B/72B/110B qwen Qwen3 (MoE/Instruct/Thinking/Next) 0.6B/1.7B/4B/8B/14B/32B/80B/235B qwen3/qwen3_nothink Qwen2-Audio 7B qwen2_audio Qwen2.5-Omni 3B/7B qwen2_omni Qwen3-Omni 30B qwen3_omni Qwen2-VL/Qwen2.5-VL/QVQ 2B/3B/7B/32B/72B qwen2_vl Qwen3-VL 235B qwen3_vl Seed (OSS/Coder) 8B/36B seed_oss/seed_coder Skywork o1 8B skywork_o1 StarCoder 2 3B/7B/15B - TeleChat2 3B/7B/35B/115B telechat2 XVERSE 7B/13B/65B xverse Yi/Yi-1.5 (Code) 1.5B/6B/9B/34B yi Yi-VL 6B/34B yi_vl Yuan 2 2B/51B/102B yuan
三、提供的数据集(基础)
预训练数据集
Wiki Demo (en)
RefinedWeb (en)
RedPajama V2 (en)
Wikipedia (en)
Wikipedia (zh)
Pile (en)
SkyPile (zh)
FineWeb (en)
FineWeb-Edu (en)
CCI3-HQ (zh)
CCI3-Data (zh)
CCI4.0-M2-Base-v1 (en&zh)
CCI4.0-M2-CoT-v1 (en&zh)
CCI4.0-M2-Extra-v1 (en&zh)
The Stack (en)
StarCoder (en)
指令微调数据集
Identity (en&zh)
Stanford Alpaca (en)
Stanford Alpaca (zh)
Alpaca GPT4 (en&zh)
Glaive Function Calling V2 (en&zh)
LIMA (en)
Guanaco Dataset (multilingual)
BELLE 2M (zh)
BELLE 1M (zh)
BELLE 0.5M (zh)
BELLE Dialogue 0.4M (zh)
BELLE School Math 0.25M (zh)
BELLE Multiturn Chat 0.8M (zh)
UltraChat (en)
OpenPlatypus (en)
CodeAlpaca 20k (en)
Alpaca CoT (multilingual)
OpenOrca (en)
SlimOrca (en)
MathInstruct (en)
Firefly 1.1M (zh)
Wiki QA (en)
Web QA (zh)
WebNovel (zh)
Nectar (en)
deepctrl (en&zh)
Advertise Generating (zh)
ShareGPT Hyperfiltered (en)
ShareGPT4 (en&zh)
UltraChat 200k (en)
Infinity Instruct (zh)
AgentInstruct (en)
LMSYS Chat 1M (en)
Evol Instruct V2 (en)
Cosmopedia (en)
STEM (zh)
Ruozhiba (zh)
Neo-sft (zh)
Magpie-Pro-300K-Filtered (en)
Magpie-ultra-v0.1 (en)
WebInstructSub (en)
OpenO1-SFT (en&zh)
Open-Thoughts (en)
Open-R1-Math (en)
Chinese-DeepSeek-R1-Distill (zh)
LLaVA mixed (en&zh)
Pokemon-gpt4o-captions (en&zh)
Open Assistant (de)
Dolly 15k (de)
Alpaca GPT4 (de)
OpenSchnabeltier (de)
Evol Instruct (de)
Dolphin (de)
Booksum (de)
Airoboros (de)
Ultrachat (de)
偏好数据集
DPO mixed (en&zh)
UltraFeedback (en)
COIG-P (zh)
RLHF-V (en)
VLFeedback (en)
RLAIF-V (en)
Orca DPO Pairs (en)
HH-RLHF (en)
Nectar (en)
Orca DPO (de)
KTO mixed (en)
注意:部分数据集的使用需要确认,推荐使用下述命令登录自己的 Hugging Face 账户
pip install --upgrade huggingface_hub
huggingface-cli login
四、安装 LLaMA Factory git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
创建一个 Conda 环境,名字为 LLaMA-Factory,指定 Python 是 3.10:
conda create -n LLaMA-Factory python=3.10
然后安装 torch==2.5.1,CUDA=12.1,执行命令:
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu121
pip install -e ".[torch,metrics]" --no-build-isolation
方法 精度 7B 14B 30B 70B xBFull (bf16 or fp16) 32 120GB 240GB 600GB 1200GB 18xGBFull (pure_bf16) 16 60GB 120GB 300GB 600GB 8xGBFreeze/LoRA/GaLore/APOLLO/BAdam 16 16GB 32GB 64GB 160GB 2xGBQLoRA 8 10GB 20GB 40GB 80GB xGBQLoRA 4 6GB 12GB 24GB 48GB x/2GBQLoRA 2 4GB 8GB 16GB 24GB x/4GB
五、微调 LLM 实践--Qwen3-4B-Thinking conda activate LLaMA-Factory
选择模型(Qwen3-4B-Thinking)、微调方法(lora)、训练方式(Supervised Fine-Tuning)监督微调。
选择数据集(alpaca_zh_demo),点击'预览数据集'能看到数据内容。
其他参考可以默认了,然后点击'训练',等待训练完成。
六、微调 VLM 实践--Qwen/Qwen2.5-VL-3B-Instruct conda activate LLaMA-Factory
选择模型(Qwen/Qwen2.5-VL-3B-Instruct)、微调方法(lora)、训练方式(Supervised Fine-Tuning)监督微调。
选择数据集(mllm_demo),点击'预览数据集'能看到数据内容。
对应的图片:(LLaMA-Factory/data/mllm_demo_data/1.jpg)
其他参考可以默认了,然后点击'训练',等待训练完成。
七、了解源代码 首先看看数据集的目录,有上面微调训练用到的 alpaca_zh_demo.json、mllm_demo.json,还有一些其他数据集,也能使用。
看一下 alpaca_zh_demo.json 文件的数据:
[
{
"instruction" : "识别并解释给定列表中的两个科学理论:细胞理论和日心说。" ,
"input" : "" ,
"output" : "细胞理论是生物科学的一个理论,它认为所有生命体都是由微小的基本单元——细胞所构成。这是生物学的一个基础理论,认为细胞是所有生物的基本结构和功能单位,所有的生物都是由一个或多个细胞组成,细胞只能通过细胞分裂产生新的细胞。这一理论由薛定谔、施瓦内和雪莱于 1839 年首次提出。\n\n日心说是指太阳是太阳系的中心,也就是说,行星围绕太阳旋转的理论。这个理论打破了传统的地心说观点,认为地球并不是宇宙的中心。日心说的提出者是尼古拉·哥白尼,他在 16 世纪初发表了他的著作《天体运行论》,阐述了太阳系行星围绕太阳运行的模型,为天文学的发展做出了巨大贡献。"
} ,
...
]
看一下 mllm_demo.json 文件的数据:
[
{
"messages" : [
{ "content" : "<image>Who are they?" , "role" : "user" } ,
{ "content" : "They're Kane and Gretzka from Bayern Munich." , "role" : "assistant" }
] ,
"images" : [ "mllm_demo_data/1.jpg" , "mllm_demo_data/1.jpg" ]
} ,
...
]
目前支持 alpaca 格式和 sharegpt 格式的数据集。允许的文件类型包括 json、jsonl、csv、parquet 和 arrow。
然后在 dataset_info.json 文件中,添加自定义的数据集名字和格式就好啦。(能看到 alpaca_zh_demo 和 mllm_demo 数据集也在里面的)
比如,新加了 vlm_graph_gen 数据集,标注内容在 vlm_graph_gen.json 中:
{
"identity" : { "file_name" : "identity.json" } ,
"alpaca_en_demo" : { "file_name" : "alpaca_en_demo.json" } ,
"alpaca_zh_demo" : { "file_name" : "alpaca_zh_demo.json" } ,
"glaive_toolcall_en_demo" : { "file_name" : "glaive_toolcall_en_demo.json" , "formatting" : "sharegpt" , "columns" : { "messages" : "conversations" , "tools" : "tools" } } ,
"glaive_toolcall_zh_demo" : { "file_name" : "glaive_toolcall_zh_demo.json" , "formatting" : "sharegpt" , "columns" : { "messages" : "conversations" , "tools" : "tools" } } ,
"mllm_demo" : { "file_name" : "mllm_demo.json" , "formatting" : "sharegpt" , "columns" : { "messages" : "messages" , "images" : "images" } , "tags" : { "role_tag" : "role" , "content_tag" : "content" , "user_tag" : "user" , "assistant_tag" : "assistant" } } ,
"vlm_graph_gen" : { "file_name" : "vlm_graph_gen.json" , "formatting" : "sharegpt" , "columns" : { "messages" : "messages" , "images" : "images" } , "tags" : { "role_tag" : "role" , "content_tag" : "content" , "user_tag" : "user" , "assistant_tag" : "assistant" } }
}
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online