LlamaFactory

hiyougaApache-2.0活跃维护 有专家点评

一套统一接口搞定 100+ 大语言模型和多模态模型的微调,支持 LoRA 等高效训练方式,省去为每个模型单独写训练脚本的麻烦。

Unified Efficient Fine-Tuning of 100+ LLMs & VLMs (ACL 2024)

v0.9.5发布于 2026-05-30 15:57 UTC75,980star +57 / 7 天9,362fork同步于 2026-11-10 23:19 UTC

专家点评

上手难度:进阶更新于 2026-11-11

把 100+ LLM/VLM 的 SFT、DPO、PPO 收敛到一套配置和 CLI 上,省掉每个模型重写训练脚本

适用场景

  • 需要在一批模型上跑同一套 SFT/DPO 配方做横向对比:换模型只改 YAML 里的 model_name_or_path,不用为每个架构重写 collator 和模板,自己维护脚本会先卡在 chat template 和 padding 对齐上
  • 单卡或少量卡上做 LoRA/QLoRA 试跑:量化、GaLore、DoRA 这些都在配置层暴露,不用自己拼 bitsandbytes 和 peft 的组合
  • 多模态模型(LLaVA 类、Qwen-VL 类)的指令微调:图文数据格式和 projector 训练已经接好,从零搭要自己处理图像 token 展开
  • 需要 Web UI 给不写代码的同事做数据准备和启动训练:这是它相对 trl/axolotl 的差异点,但别指望 UI 覆盖所有参数

踩坑

  • 启动入口在 issue 里被反复抱怨(llamafactory-cli 与 python src/... 两种方式并存),照着旧博客或旧版本文档操作时容易对不上,先确认当前版本的入口再写脚本
  • QLoRA 依赖 bitsandbytes 且要与 CUDA Toolkit 版本匹配,Windows 上还要手动重装 CUDA 版 PyTorch;在非标准 CUDA 环境(conda 混装、驱动偏旧)里,这一步会先于训练报错
  • 多模态部分有 issue 指出 LLaVA 实现存在对齐问题,做视觉指令微调时不要默认它的默认实现就是正确基线,至少自己抽查一批输出
  • 推理模型(DeepSeek-R1 系列、GRPO)的支持是 issue 里呼声最高但仍在演进的方向,README 的方法列表不等于每个模型都有验证过的配方

同类对比

axolotl 配置粒度更细、更适合把训练流程固化进 CI;trl 更贴近 HF 生态、改代码更自由。只需要单一模型、单一方法时,直接用 peft + trl 写百来行脚本,比引入这一层抽象更好排查。

怎么上手

由 README 提炼,执行前请确认
git clone --depth 1 https://github.com/hiyouga/LlamaFactory.git
cd LlamaFactory
pip install -e .
pip install -r requirements/metrics.txt
硬件要求按 README 说明

README 未给出具体显存门槛;官方 Docker 镜像基于 CUDA 12.4 与 PyTorch 2.6.0,支持 NVIDIA GPU,另提供 Ascend NPU 安装说明与镜像,Windows 需手动安装 CUDA 版 PyTorch。

支持 Apple Silicon需要 CUDA支持 ROCm / AMD昇腾 / Ascend
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

统一高效微调 100+ 大语言模型与多模态模型的开源框架,零代码 CLI 和 Web UI 即可上手

一套统一接口搞定 100+ 大语言模型和多模态模型的微调,支持 LoRA 等高效训练方式,省去为每个模型单独写训练脚本的麻烦。

核心能力

  • 支持 LLaMA、Qwen3、DeepSeek、Gemma、GLM 等 100+ 模型
  • 集成预训练、SFT、奖励建模、PPO、DPO、KTO、ORPO 等方法
  • 提供 16-bit 全参、冻结、LoRA 及 2~8-bit QLoRA 量化微调
  • 内置 GaLore、BAdam、DoRA、LoRA+、PiSSA 等进阶算法
  • 支持 FlashAttention-2、Unsloth、Liger Kernel 等加速技巧

容易踩的坑

Windows 上需手动卸载并重装 CUDA 版 PyTorch,否则无法使用 GPU;QLoRA 需额外安装 bitsandbytes,且要匹配 CUDA Toolkit 版本;Ascend NPU 需另装 requirements/npu.txt 与 CANN Toolkit;deepspeed 等为可选依赖,需单独安装 requirements 下对应文件。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.9.5
  1. v0.9.5v0.9.5: Qwen3.5/3.6, Gemma 4, Transformers v5最新正式版2026-05-30 · 2026-05-30 15:57 UTC

    Added primary support for Qwen3.5/Qwen3.6/Gemma4 models and compatibility with Transformers v5.

    What's Changed

  2. v0.9.4v0.9.4: Goodbye 20252025-12-31 · 2025-12-31 15:00 UTC
    查看更新说明

    Farewell to 2025. Thank you to all contributors and supporters. We will continue to deliver an easy and efficient LLM fine-tuning framework to the community in 2026. Stay tuned.

    Breaking

    • Repository name updated: LLaMA-Factory → LlamaFactory
    • Python 3.9–3.10 have been deprecated; LlamaFactory now requires Python 3.11–3.13
    • Migrated from pip to uv; use uv pip install llamafactory
    • The official LlamaFactory blog is now live: https://blog.llamafactory.net/en/

    New features

    • 🔥 Support Orthogononal Fine-Tuning (OFT) by @zqiu24 in #8623
    • 🔥 Support Semantic Initialization for new added tokens by @ximinng in #9267
    • 🔥 Support Megatron-LM training via MCoreAdapter by @Kuangdd01 in #9237
    • 🔥 Support KTransformers backend by @JimmyPeilinLi in #9400
    • Support MPO algorithm by @Kuangdd01 in #8930
    • Support FP8 training by @penfever in #8960
    • Support Transformers v5 by @tangefly in #9569
    • Support reasoning and plaintext in function call message by @tangefly in #9610
    • Support DeepSpeed AutoTP by @sunyi0505 in #9602
    • Support efficient NPU fused kernels by @frozenleaves in #9520
    • Support TRL 0.24 by @UsernameFull in #9617

    Models

    • Falcon H1 by @dhiaEddineRhaiem in #8403
    • Kimi-VL and GLM-4.5V by @Kuangdd01 in #8462
    • Gemma3n by @Kuangdd01 in #8509
    • Granite4 by @Tuyohai in #8680
    • Qwen3-2507 by @hiyouga in #8750
    • MiniCPM-V 4.0 by @ZMXJJ in #8813
    • Intern-S1-mini by @hhaAndroid in #8976
    • Seed-OSS by @Kuangdd01 in #8992
    • MiniCPM-V 4.5 by @tc-mb in #9022
    • InternVL-3.5 by @Kuangdd01 in #9028
    • ERNIE-4.5-Text and ERNIE-4.5-VL by @isLinXu in #9165
    • Ling-V2 by @wangsff in #9188
    • Qwen3-VL and Qwen3-Omni by @xvxuopop and @Kuangdd01 in #9196
    • Hunyuan-mt by @wyfdgg in #9284
    • GLM-4.6V by @isLinXu in #9586
    • Ministral 3 by @tangefly in #9582
    • VibeThinker by @isLinXu in #9616
    • MiMo-V2-Flash by @isLinXu in #9637
    • MiniMax-M1 and MiniMax-M2 by @isLinXu in #9680

    Thanks to teams collaborating with LlamaFactory in 2025

    • NPU Team: @jiaqiw09 @frozenleaves @xvxuopop @UsernameFull @codemayq
    • KTransformers Team: @JimmyPeilinLi @poryfly @mrhaoxx
    • ROLL Team

    And to individuals who made significant contributions

    • @Kuangdd01 @isLinXu @tangefly
    • @Copilot

    Full Changelog: https://github.com/hiyouga/LLaMA-Factory/compare/v0.9.3...v0.9.4

  3. v0.9.3v0.9.3: Llama4, Gemma3, Qwen3, InternVL3, Qwen2.5-Omni2025-06-16 · 2025-06-16 17:21 UTC
    查看更新说明

    We will attend the AWS Summit Shanghai 2025 on June 20th! See you in Shanghai 👋

    New features

    • 🔥 InternVL2.5/InternVL3 model by @Kuangdd01 in #7258
    • 🔥 Qwen2.5-Omni model by @Kuangdd01 in #7537
    • 🔥 Llama 4 and Gemma 3 multimodal model by @hiyouga in #7273 and #7611
    • 🔥 Official GPU docker image by @yzoaim in #8181
    • 🔥 SGLang inference by @Qiaolin-Yu and @jhinpan in #7278
    • GLM-4-0414 and GLM-Z1 model by @zRzRzRzRzRzRzR in #7695
    • Kimi-VL model by @Kuangdd01 in #7719
    • Qwen3 model by @hiyouga in #7885
    • MiMo and MiMo-VL model by @Kuangdd01 in #7946 #8249
    • SmolLM/SmolLM2 model by @akshatsehgal in #8050 #8220
    • MiniCPM4 model by @LDLINGLINGLING in #8314
    • Mistral-Small-3.1 model by @Kuangdd01 in #8335
    • Add scripts/eval_bleu_rouge.py by @SnowFox4004 in #7419
    • Add Muon optimizer by @tianshijing in #7749
    • Support video/audio inference with vLLM by @hiyouga in #7566
    • Support S3/GCS cloud data by @erictang000 in #7567
    • Support vLLM-ascend by @leo-pony in #7739
    • Support OmegaConf by @hiyouga in #7793
    • Support early-stopping by @hiyouga in #7797
    • Add enable_thinking argument for reasoning models by @hiyouga in #7928
    • PyTorch-elastic and fault-tolerant launch by @hubutui in #8286
    • Length Desensitization DPO (LD-DPO) by @amangup in #8362

    New models

    • Base models
      • SmolLM/SmolLM2 (135M/360M/1.7B) 📄
      • Qwen3 Base (0.6B/1.7B/4B/8B/14B/30B) 📄
      • Gemma 3 (1B/4B/12B/27B) 📄🖼️
      • MedGemma (4B) 📄🩺
      • MiMo Base (7B) 📄
      • Seed-Coder Base (8B) 📄⌨️
      • Mistral-Small-3.1 Base (24B) 📄🖼️
      • GLM-4-0414 Base (32B) 📄
      • Llama 4 (109B/492B) 📄🖼️
    • Instruct/Chat models
      • SmolLM/SmolLM2 Instruct (135M/360M/1.7B) 📄🤖
      • MiniCPM4 (0.5B/8B) 📄🤖
      • Qwen3 (0.6B/1.7B/4B/8B/14B/32B/30B/235B) 📄🤖🧠
      • Gemma 3 Instruct (1B/4B/12B/27B) 📄🤖🖼️
      • InternVL2.5/3 Instruct/MPO (1B/2B/8B/14B/38B/78B) 📄🤖🖼️
      • Qwen2.5-Omni (3B/7B) 📄🤖🖼️🔈
      • MedGemma Instruct (4B/27B) 📄🤖🩺
      • MiMo SFT/RL (7B) 📄🤖
      • MiMo-VL SFT/RL (7B) 📄🤖🖼️
      • Hunyuan Instruct (7B) 📄🤖
      • Seed-Coder Instruct/Reasoning (8B) 📄🤖🧠⌨️
      • GLM-4-0414/GLM-Z1 Instruct (9B/32B) 📄🤖🧠
      • DeepSeek-R1-0528 (8B/671B) 📄🤖🧠
      • Kimi-VL Instruct/Thinking (17B) 📄🤖🧠🖼️
      • Mistral-Small-3.1 Instruct (24B) 📄🤖🖼️
      • Qwen2.5-VL Instruct (32B) 📄🤖🖼️
      • Llama 4 Instruct (109B/492B) 📄🤖🖼️

    New datasets

    • Preference datasets
      • COIG-P (zh) 📄

    Bug fix

    • Fix add new tokens by @flashJd in #7253
    • Fix ultrachat_200k dataset by @felladrin in #7259
    • Add efficient 4D attention mask for neat packing by @BlackWingedKing in #7272
    • Fix WSD lr scheduler by @x22x22 in #7304
    • Fix position ids in neat packing by @BlackWingedKing in #7318
    • Fix proxy setting in webui by @taoharry in #7332
    • Improve entrypoint by @ENg-122 in #7345
    • Fix ray destroy process group by @erictang000 in #7395
    • Fix SGLang dependencies by @guoquan in #7432
    • Upgrade docker package version by @rumichi2210 in #7442
    • Update liger kernel for qwen2.5-vl by @xiaosu-zhu in #7453
    • Fix lora on quant models by @GuoCoder in #7456
    • Enable liger kernel for gemma3 by @kennylam777 in #7462
    • Enable liger kernel for paligemma by @eljandoubi in #7466
    • Add Swanlab lark notification by @Xu-pixel in #7481
    • Fix gemma3 use cache attribute by @ysjprojects in #7500
    • Fix pixtral plugin by @Kuangdd01 in #7505
    • Fix KTO mismatch pair strategy by @himalalps in #7509
    • Support dataset_shards by @aliencaocao in #7530
    • Fix qwen2.5omni plugin by @Kuangdd01 in #7573 #7578 #7883
    • Fix ppo trainer by @gechengze in #7576
    • Fix workflow by @Shawn-Tao in #7635
    • Support qwen2.5omni audio+video2text by @Kuangdd01 in #7638
    • Upgrade deps for SGLang by @adarshxs in #7639
    • Allow ray env setting by @eri
  4. v0.9.2v0.9.2: MiniCPM-o, SwanLab, APOLLO2025-03-11 · 2025-03-11 13:47 UTC
    查看更新说明

    We will attend the vLLM Beijing Meetup on Mar 16th! See you in Beijing 👋

    New features

    • 🔥 APOLLO optimizer by @zhuhanqing in #6617
    • 🔥 SwanLab experiment tracker by @Zeyi-Lin in #6401
    • 🔥 Ray Trainer by @erictang000 in #6542
    • Batch inference with vLLM TP by @JieShenAI in #6190
    • QLoRA on Ascend NPU by @codemayq in #6601
    • Yarn and Llama3 rope scaling by @hiyouga in #6693
    • Support uv run by @erictang000 in #6907
    • Ollama modelfile auto-generation by @codemayq in #4686
    • Mistral tool prompt by @AlongWY in #5473
    • Llama3 and Qwen2 tool prompt by @hiyouga in #6367 and #6369

    New models

    • Base models
      • GPT2 (0.1B/0.4B/0.8B/1.5B) 📄
      • Granite 3.0-3.1 (1B/2B/3B/8B) 📄
      • PaliGemma2 (3B/10B/28B) 📄🖼️
      • Moonlight (16B) 📄
      • DeepSeek V2-V2.5 Base (236B) 📄
      • DeepSeek V3 Base (671B) 📄
    • Instruct/Chat models
      • Granite 3.0-3.1 (1B/2B/3B/8B) by @Tuyohai in #5922 📄🤖
      • DeepSeek R1 (1.5B/7B/8B/14B/32B/70B/671B) by @Qwtdgh in #6767 📄🤖
      • TeleChat2 (3B/7B/12B/35B/115B) @ge-xing in #6313 📄🤖
      • Qwen2.5-VL (3B/7B/72B) by @hiyouga in #6779 📄🤖🖼️
      • PaliGemma2-mix (3B/10B/28B) by @Kuangdd01 in #7060 📄🤖🖼️
      • Qwen2 Audio (7B) by @BUAADreamer in #6701 📄🤖🔈
      • MiniCPM-V/MiniCPM-o (8B) by @BUAADreamer in #6598 and #6631 📄🤖🖼️🔈
      • InternLM3-Instruct (8B) by @hhaAndroid in #6640 📄🤖
      • Marco-o1 (8B) 📄🤖
      • Skywork-o1 (8B) 📄🤖
      • Phi-4 (14B) 📄🤖
      • Moonlight Instruct (16B) 📄
      • Mistral Small (24B) 📄🤖
      • QwQ (32B) 📄🤖
      • Llama-3.3-Instruct (70B) 📄🤖
      • QvQ (72B) 📄🤖🖼️
      • DeepSeek V2-V2.5 (236B) 📄🤖
      • DeepSeek V3 (671B) 📄🤖

    New datasets

    • Supervised fine-tuning datasets
      • OpenO1 (en) 📄
      • Open Thoughts (en) 📄
      • Open-R1-Math (en) 📄
      • Chinese-DeepSeek-R1-Distill (zh) 📄

    Changes

    • Refactor VLMs register by @hiyouga in #6600
    • Refactor mm plugin by @hiyouga in #6895
    • Refactor template by @hiyouga in #6896
    • Refactor data pipeline by @hiyouga in #6901
    • Update vlm arguments by @hiyouga in #6976
    • We have cleaned large files in git history using BFG Repo-Cleaner, find the backup repo here

    Bug fix

    • Add trust_remote_code option by @yafshar in #5819
    • Fix mllama config by @hiyouga in #6137 and #6140
    • Fix mllama pad by @hiyouga in #6151 and #6874
    • Pin tokenizers version by @hiyouga in #6157
    • Fix tokenized data loading by @village-way in #6160
    • Show hostname in webui by @hykilpikonna in #6170
    • Fix VLMs zero3 training by @hiyouga in #6233
    • Add skip_special_tokens by @hiyouga in #6363
    • Support non-reenterent-gc by @hiyouga in #6364
    • Add disable_shuffling option by @hiyouga in #6388
    • Fix gen kwargs by @hiyouga in #6395
    • Enable module run by @youkaichao in #6457
    • Fix eval loss value by @hiyouga in #6465
    • Fix paligemma inference by @hiyouga in #6483
    • Add deepseek v3 template by @piamo in #5507
    • Add http proxy argument in dockerfile by @shibingli in #6462
    • Fix trainer generate by @hiyouga in #6512
    • Fix pixtral DPO training by @hiyouga in #6547
    • Fix ray args by @stephen-nju in #6564
    • Fix minicpm template by @BUAADreamer in #6620
    • Fix stop tokens for visual detection by @hiyouga in #6624
    • Pin vllm version by @hiyouga in #6629
    • Fix mllama any image by @hiyouga in #6637 and #7053
    • Fix tokenizer max length by @xiaosu-zhu in #6632
    • Fix webui locale by @steveepreston in #6653
    • Fix MiniCPM-o DPO training by @BUAADreamer in #6657
    • Fix Qwen2 MoE training by @hiyouga in #6684
    • Upgrade to gradio 5 by @hiyouga in #6688
    • Support Japanese local file by @engchina in #6698
    • Fix DPO loss by @yinpu in #6722
    • Webui thin
  5. v0.9.1v0.9.1: Many Vision Models, Qwen2.5 Coder, Gradient Fix2024-11-24 · 2024-11-24 17:17 UTC
    查看更新说明

    New features

    • 🔥Support Llama-3.2 and Llama-3.2-Vision by @marko1616 in #5547 and #5555
    • 🔥Support LLaVA-NeXT, LLaVA-NeXT-Video and Video-LLaVA by @BUAADreamer in #5574
    • 🔥Support Pixtral model by @Kuangdd01 in #5581
    • Support EXAONE3.0 by @shing100 in #5585
    • Support Index-series models by @Cuiyn in #5910
    • Support Liger-Kernel for Qwen2-VL by @aliencaocao in #5438
    • Support download models from ModelHub by @huniu20 in #5642
    • Fix abnormal loss values in transformers 4.46 by @hiyouga in #5852 #5871
    • Support multi-image inference by @hiyouga in #5895
    • Support calculating effective tokens for SFT and DPO by @wtmlon in #6078

    Note: now you can install transformers>=4.46.0,<=4.46.1 to make the gradient accumulation fix enabled.

    New models

    • Base models
      • Qwen2.5 (0.5B/1.5B/3B/7B/14B/32B/72B) 📄
      • Qwen2.5-Coder (0.5B/1.5B/3B/7B/14B/32B) 📄🖥️
      • Llama-3.2 (1B/3B) 📄
      • OpenCoder (1.5B/8B) 📄🖥️
      • Index (1.9B) 📄
    • Instruct/Chat models
      • Qwen2.5-Instruct (0.5B/1.5B/3B/7B/14B/32B/72B) 📄🤖
      • Qwen2.5-Coder-Instruct (0.5B/1.5B/3B/7B/14B/32B) 📄🤖🖥️
      • Llama-3.2-Instruct (1B/3B) 📄🤖
      • OpenCoder-Instruct (1.5B/8B) 📄🤖🖥️
      • Index-Chat (1.9B) 📄🤖
      • LLaVA-NeXT (7B/8B/13B/34B/72B/110B) 📄🤖🖼️
      • LLaVA-NeXT-Video (7B/34B) 📄🤖🖼️
      • Video-LLaVA (7B) 📄🤖🖼️
      • Pixtral (12B) 📄🤖🖼️
      • EXAONE-3.0-Instruct (8B) 📄🤖

    Security fix

    • Fix CVE-2024-52803 by @superboy-zjc in aa6a174d6822340022433c5ba38182b4932adecb

    Bug fix

    • Update version of rocm docker by @HardAndHeavy in #5427
    • Fix Phi-3-small template by @menibrief in #5475
    • Fix function call dataset process function by @whybeyoung in #5483
    • Add docker args by @StrangeBytesDev in #5533
    • Fix logger by @chengchengpei in #5546
    • Fix Gemma2 flash attention warning by @amrear in #5580
    • Update setup by @johnnynunez in #5615 #5665
    • Add project by @NLPJCL in #5801
    • Fix saving Qwen2-VL processor by @hiyouga in #5857
    • Support change base image in dockerfile by @sd3ntato in #5880
    • Fix template replace behaviour by @hiyouga in #5907
    • Add image_dir argument by @hiyouga in #5909
    • Add rank0 logger by @hiyouga in #5912
    • Fix DPO metrics by @hiyouga in #5913 #6052
    • Update datasets version by @hiyouga in #5926
    • Fix chat engines by @hiyouga in #5927
    • Fix vllm 0.6.3 by @hiyouga in #5970
    • Fix extra args in llamaboard by @hiyouga in #5971
    • Fix vllm input args by @JJJJerry in #5973
    • Add vllm_config args by @hiyouga in #5982 #5990
    • Add shm_size in docker compose config by @XYZliang in #6010
    • Fix tyro version by @hiyouga in #6065
    • Fix ci by @hiyouga in #6120
    • Fix Qwen2-VL inference on vLLM by @hiyouga in #6123 #6126
    • Release v0.9.1 by @hiyouga in #6124
    • Fix #3881 #4712 #5411 #5542 #5549 #5611 #5668 #5705 #5747 #5749 #5768 #5796 #5797 #5883 #5904 #5966 #5988 #6050 #6061

    Full Changelog: https://github.com/hiyouga/LLaMA-Factory/compare/v0.9.0...v0.9.1

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    # LlamaFactory

    GitHub Repo stars GitHub last commit GitHub contributors GitHub workflow PyPI Citation Docker Pulls

    Twitter Discord WeChat Blog

    Open in Colab Open in DSW Open in Spaces Open in Studios Open in Novita

    Used by Amazon, NVIDIA, Aliyun, etc.


    Check our new open-source project —🐧 PenguinHarness: Local-first multi-agent app development platform - create, fine-tune, deploy AI apps automatically!

    Follow us and give us a star ⭐: https://github.com/Prism-Shadow/penguin-harness

    https://github.com/user-attachments/assets/9b7033e8-f08a-4c3f-bd33-547896664e6e


    Supporters ❤️

    Warp, the agentic terminal for developersAvailable for MacOS, Linux, & Windows

    Easily fine-tune 100+ large language models with zero-code CLI and Web UI

    GitHub Trend

    👋 Join our WeChat and NPU user groups.

    [ English | 中文 ]

    Fine-tuning a large language model can be easy as...

    https://github.com/user-attachments/assets/3991a3a8-4276-4d30-9cab-4cb0c4b9b99e

    Start local training:

    Start cloud training:

    Read technical notes:

    [!NOTE] Except for the above links, all other websites are unauthorized third-party websites. Please carefully use them.

    Table of Contents

    Features

    • Various models: LLaMA, LLaVA, Mistral, Mixtral-MoE, Qwen3, Qwen3-VL, DeepSeek, Gemma, GLM, Phi, etc.
    • Integrated methods: (Continuous) pre-training, (multimodal) supervised fine-tuning, reward modeling, PPO, DPO, KTO, ORPO, etc.
    • Scalable resources: 16-bit full-tuning, freeze-tuning, LoRA and 2/3/4/5/6/8-bit QLoRA via AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ.
    • Advanced algorithms: GaLore, BAdam, APOLLO, Adam-mini, Muon, OFT, DoRA, LongLoRA, LLaMA Pro, Mixture-of-Depths, LoRA+, LoftQ and PiSSA.
    • Practical tricks: FlashAttention-2, Unsloth, Liger Kernel, KTransformers, RoPE scaling, NEFTune and rsLoRA.
    • Wide tasks: Multi-turn dialogue, tool using, image understanding, visual grounding, video recognition, audio understanding, etc.
    • Experiment monitors: LlamaBoard, TensorBoard, Wandb, MLflow, SwanLab, etc.
    • Faster inference: OpenAI-style API, Gradio UI and CLI with vLLM worker or SGLang worker.

    Day-N Support for Fine-Tuning Cutting-Edge Models

    Support DateModel Name
    Day 0Qwen3 / Qwen2.5-VL / Gemma 3 / GLM-4.1V / InternLM 3 / MiniCPM-o-2.6
    Day 1Llama 3 / GLM-4 / Mistral Small / PaliGemma2 / Llama 4

    Blogs

    [!TIP] Now we have a dedicated blog for LlamaFactory!

    Website: https://blog.llamafactory.net/en/

    Changelog

    [25/10/26] We support Megatron-core training backend with mcore_adapter. See PR #9237 to get started.

    [25/08/22] We supported OFT and OFTv2. See examples for usage.

    [25/08/20] We supported fine-tuning the Intern-S1-mini models. See PR #8976 to get started.

    [25/08/06] We supported fine-tuning the GPT-OSS models. See PR #8826 to get started.

    [25/07/02] We supported fine-tuning the GLM-4.1V-9B-Thinking model.

    [25/04/28] We supported fine-tuning the Qwen3 model family.

    [25/04/21] We supported the Muon optimizer. See examples for usage. Thank @tianshijing's PR.

    [25/04/16] We supported fine-tuning the InternVL3 model. See PR #7258 to get started.

    [25/04/14] We supported fine-tuning the GLM-Z1 and Kimi-VL models.

    [25/04/06] We supported fine-tuning the Llama 4 model. See PR #7611 to get started.

    [25/03/31] We supported fine-tuning the Qwen2.5 Omni model. See PR #7537 to get started.

    [25/03/15] We supported SGLang as inference backend. Try infer_backend: sglang to accelerate inference.

    [25/03/12] We supported fine-tuning the Gemma 3 model.

    [25/02/24] Announcing EasyR1, an efficient, scalable and multi-modality RL training framework for efficient GRPO training.

    [25/02/11] We supported saving the Ollama modelfile when exporting the model checkpoints. See examples for usage.

    [25/02/05] We supported fine-tuning the Qwen2-Audio and MiniCPM-o-2.6 on audio understanding tasks.

    [25/01/31] We supported fine-tuning the DeepSeek-R1 and Qwen2.5-VL models.

    [25/01/15] We supported APOLLO optimizer. See examples for usage.

    [25/01/14] We supported fine-tuning the MiniCPM-o-2.6 and MiniCPM-V-2.6 models. Thank @BUAADreamer's PR.

    [25/01/14] We supported fine-tuning the InternLM 3 models. Thank @hhaAndroid's PR.

    [25/01/10] We supported fine-tuning the Phi-4 model.

    [24/12/21] We supported using SwanLab for experiment tracking and visualization. See this section for details.

    [24/11/27] We supported fine-tuning the Skywork-o1 model and the OpenO1 dataset.

    [24/10/09] We supported downloading pre-trained models and datasets from the Modelers Hub. See this tutorial for usage.

    [24/09/19] We supported fine-tuning the Qwen2.5 models.

    [24/08/30] We supported fine-tuning the Qwen2-VL models. Thank @simonJJJ's PR.

    [24/08/27] We supported Liger Kernel. Try enable_liger_kernel: true for efficient training.

    [24/08/09] We supported Adam-mini optimizer. See examples for usage. Thank @relic-yuexi's PR.

    [24/07/04] We supported contamination-free packed training. Use neat_packing: true to activate it. Thank @chuan298's PR.

    [24/06/16] We supported PiSSA algorithm. See examples for usage.

    [24/06/07] We supported fine-tuning the Qwen2 and GLM-4 models.

    [24/05/26] We supported SimPO algorithm for preference learning. See examples for usage.

    [24/05/20] We supported fine-tuning the PaliGemma series models. Note that the PaliGemma models are pre-trained models, you need to fine-tune them with paligemma template for chat completion.

    [24/05/18] We supported KTO algorithm for preference learning. See examples for usage.

    [24/05/14] We supported training and inference on the Ascend NPU devices. Check installation section for details.

    [24/04/26] We supported fine-tuning the LLaVA-1.5 multimodal LLMs. See examples for usage.

    [24/04/22] We provided a Colab notebook for fine-tuning the Llama-3 model on a free T4 GPU. Two Llama-3-derived models fine-tuned using LlamaFactory are available at Hugging Face, check Llama3-8B-Chinese-Chat and Llama3-Chinese for details.

    [24/04/21] We supported Mixture-of-Depths according to AstraMindAI's implementation. See examples for usage.

    [24/04/16] We supported BAdam optimizer. See examples for usage.

    [24/04/16] We supported unsloth's long-sequence training (Llama-2-7B-56k within 24GB). It achieves 117% speed and 50% memory compared with FlashAttention-2, more benchmarks can be found in this page.

    [24/03/31] We supported ORPO. See examples for usage.

    [24/03/21] Our paper "LlamaFactory: Unified Efficient Fine-Tuning of 100+ Language Models" is available at arXiv!

    [24/03/20] We supported FSDP+QLoRA that fine-tunes a 70B model on 2x24GB GPUs. See examples for usage.

    [24/03/13] We supported LoRA+. See examples for usage.

    [24/03/07] We supported GaLore optimizer. See examples for usage.

    [24/03/07] We integrated vLLM for faster and concurrent inference. Try infer_backend: vllm to enjoy 270% inference speed.

    [24/02/28] We supported weight-decomposed LoRA (DoRA). Try use_dora: true to activate DoRA training.

    [24/02/15] We supported block expansion proposed by LLaMA Pro. See examples for usage.

    [24/02/05] Qwen1.5 (Qwen2 beta version) series models are supported in LlamaFactory. Check this blog post for details.

    [24/01/18] We supported agent tuning for most models, equipping model with tool using abilities by fine-tuning with dataset: glaive_toolcall_en.

    [23/12/23] We supported unsloth's implementation to boost LoRA tuning for the LLaMA, Mistral and Yi models. Try use_unsloth: true argument to activate unsloth patch. It achieves 170% speed in our benchmark, check this page for details.

    [23/12/12] We supported fine-tuning the latest MoE model Mixtral 8x7B in our framework. See hardware requirement here.

    [23/12/01] We supported downloading pre-trained models and datasets from the ModelScope Hub. See this tutorial for usage.

    [23/10/21] We supported NEFTune trick for fine-tuning. Try neftune_noise_alpha: 5 argument to activate NEFTune.

    [23/09/27] We supported $S^2$-Attn proposed by LongLoRA for the LLaMA models. Try shift_attn: true argument to enable shift short attention.

    [23/09/23] We integrated MMLU, C-Eval and CMMLU benchmarks in this repo. See examples for usage.

    [23/09/10] We supported FlashAttention-2. Try flash_attn: fa2 argument to enable FlashAttention-2 if you are using RTX4090, A100 or H100 GPUs.

    [23/08/12] We supported RoPE scaling to extend the context length of the LLaMA models. Try rope_scaling: linear argument in training and rope_scaling: dynamic argument at inference to extrapolate the position embeddings.

    [23/08/11] We supported DPO training for instruction-tuned models. See examples for usage.

    [23/07/31] We supported dataset streaming. Try streaming: true and max_steps: 10000 arguments to load your dataset in streaming mode.

    [23/07/29] We released two instruction-tuned 13B models at Hugging Face. See these Hugging Face Repos (LLaMA-2 / Baichuan) for details.

    [23/07/18] We developed an all-in-one Web UI for training, evaluation and inference. Try train_web.py to fine-tune models in your Web browser. Thank @KanadeSiina and @codemayq for their efforts in the development.

    [23/07/09] We released FastEdit ⚡🩹, an easy-to-use package for editing the factual knowledge of large language models efficiently. Please follow FastEdit if you are interested.

    [23/06/29] We provided a reproducible example of training a chat model using instruction-following datasets, see Baichuan-7B-sft for details.

    [23/06/22] We aligned the demo API with the OpenAI's format where you can insert the fine-tuned model in arbitrary ChatGPT-based applications.

    [23/06/03] We supported quantized training and inference (aka QLoRA). See examples for usage.

    [!TIP] If you cannot use the latest feature, please pull the latest code and install LlamaFactory again.

    Supported Models

    ModelModel sizeTemplate
    BLOOM/BLOOMZ560M/1.1B/1.7B/3B/7.1B/176B-
    DeepSeek (LLM/Code/MoE)7B/16B/67B/236Bdeepseek
    DeepSeek 3-3.2236B/671Bdeepseek3
    DeepSeek R1 (Distill)1.5B/7B/8B/14B/32B/70B/671Bdeepseekr1
    ERNIE-4.50.3B/21B/300Bernie_nothink
    Falcon/Falcon H10.5B/1.5B/3B/7B/11B/34B/40B/180Bfalcon/falcon_h1
    Gemma/Gemma 2/CodeGemma2B/7B/9B/27Bgemma/gemma2
    Gemma 3/Gemma 3n270M/1B/4B/6B/8B/12B/27Bgemma3/gemma3n
    GLM-4/GLM-4-0414/GLM-Z19B/32Bglm4/glmz1
    GLM-4.5/GLM-4.5(6)V9B/106B/355Bglm4_moe/glm4_5v
    GPT-20.1B/0.4B/0.8B/1.5B-
    GPT-OSS20B/120Bgpt_oss
    Granite 3-41B/2B/3B/7B/8Bgranite3/granite4
    Hunyuan/Hunyuan1.5 (MT)0.5B/1.8B/4B/7B/13Bhunyuan/hunyuan_small
    InternLM 2-37B/8B/20Bintern2
    InternVL 2.5-3.51B/2B/4B/8B/14B/30B/38B/78B/241Bintern_vl
    Intern-S1-mini8Bintern_s1
    Kimi-VL16Bkimi_vl
    Ling 2.0 (mini/flash)16B/100Bbailing_v2
    LFM 2.5 (VL)1.2B/1.6Blfm2/lfm2_vl
    Llama7B/13B/33B/65B-
    Llama 27B/13B/70Bllama2
    Llama 3-3.31B/3B/8B/70Bllama3
    Llama 4109B/402Bllama4
    Llama 3.2 Vision11B/90Bmllama
    LLaVA-1.57B/13Bllava
    LLaVA-NeXT7B/8B/13B/34B/72B/110Bllava_next
    LLaVA-NeXT-Video7B/34Bllava_next_video
    MiMo7B/309Bmimo/mimo_v2
    MiniCPM 4/50.5B/1B/8Bcpm4/minicpm5
    MiniCPM-o/MiniCPM-V 4.58B/9Bminicpm_o/minicpm_v
    MiniCPM-V 4.63B/8Bminicpm_v_4_6
    MiniMax-M1/MiniMax-M2229B/456Bminimax1/minimax2
    Ministral 33B/8B/14Bministral3
    Mistral/Mixtral7B/8x7B/8x22Bmistral
    PaliGemma/PaliGemma23B/10B/28Bpaligemma
    Phi-3/Phi-3.54B/14Bphi
    Phi-3-small7Bphi_small
    Phi-4-mini/Phi-43.8B/14Bphi4_mini/phi4
    Pixtral12Bpixtral
    Qwen2 (Code/Math/MoE/QwQ)0.5B/1.5B/3B/7B/14B/32B/72B/110Bqwen
    Qwen3 (MoE/Instruct/Thinking/Next)0.6B/1.7B/4B/8B/14B/32B/80B/235Bqwen3/qwen3_nothink
    Qwen3.50.8B/2B/4B/9B/27B/35B/122B/397Bqwen3_5/qwen3_5_nothink
    Qwen3.627B/35Bqwen3_6
    Qwen2-Audio7Bqwen2_audio
    Qwen2.5-Omni3B/7Bqwen2_omni
    Qwen3-Omni30Bqwen3_omni
    Qwen2-VL/Qwen2.5-VL/QVQ2B/3B/7B/32B/72Bqwen2_vl
    Qwen3-VL2B/4B/8B/30B/32B/235Bqwen3_vl
    Seed (OSS/Coder)8B/36Bseed_oss/seed_coder
    StarCoder 23B/7B/15B-
    TeleChat 2-2.53B/7B/35B/115Btelechat2
    Xing4.0-29B-A4B29B-A4Bxing4_0
    Yuan 22B/51B/102Byuan

    [!NOTE] For the "base" models, the template argument can be chosen from default, alpaca, vicuna etc. But make sure to use the corresponding template for the "instruct/chat" models.

    If the model has both reasoning and non-reasoning versions, please use the _nothink suffix to distinguish between them. For example, qwen3 and qwen3_nothink.

    Remember to use the SAME template in training and inference.

    *: You should install the transformers from main branch and use DISABLE_VERSION_CHECK=1 to skip version check.

    **: You need to install a specific version of transformers to use the corresponding model.

    Please refer to constants.py for a full list of models we supported.

    You also can add a custom chat template to template.py.

    Supported Training Approaches

    ApproachFull-tuningFreeze-tuningLoRAQLoRAOFTQOFT
    Pre-Training:white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark:
    Supervised Fine-Tuning:white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark:
    Reward Modeling:white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark:
    PPO Training:white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark:
    DPO Training:white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark:
    KTO Training:white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark:
    ORPO Training:white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark:
    SimPO Training:white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark::white_check_mark:

    [!TIP] The implementation details of PPO can be found in this blog.

    Provided Datasets

    Some datasets require confirmation before using them, so we recommend logging in with your Hugging Face account using these commands.

    pip install "huggingface_hub<1.0.0"
    huggingface-cli login
    

    Requirement

    MandatoryMinimumRecommend
    python3.11>=3.11
    torch2.0.02.6.0
    torchvision0.15.00.21.0
    transformers4.49.04.50.0
    datasets2.16.03.2.0
    accelerate0.34.01.2.1
    peft0.14.00.15.1
    trl0.8.60.9.6
    OptionalMinimumRecommend
    CUDA11.612.2
    deepspeed0.10.00.16.4
    bitsandbytes0.39.00.43.1
    vllm0.4.30.8.2
    flash-attn2.5.62.7.2

    Hardware Requirement

    * estimated

    MethodBits7B14B30B70BxB
    Full (bf16 or fp16)32120GB240GB600GB1200GB18xGB
    Full (pure_bf16)1660GB120GB300GB600GB8xGB
    Freeze/LoRA/GaLore/APOLLO/BAdam/OFT1616GB32GB64GB160GB2xGB
    QLoRA / QOFT810GB20GB40GB80GBxGB
    QLoRA / QOFT46GB12GB24GB48GBx/2GB
    QLoRA / QOFT24GB8GB16GB24GBx/4GB

    Getting Started

    Installation

    [!IMPORTANT] Installation is mandatory.

    Install from Source
    git clone --depth 1 https://github.com/hiyouga/LlamaFactory.git
    cd LlamaFactory
    pip install -e .
    pip install -r requirements/metrics.txt
    

    Optional dependencies available: metrics, deepspeed. Install with: pip install -e . && pip install -r requirements/metrics.txt -r requirements/deepspeed.txt

    Additional dependencies for specific features are available in requirements/.

    Install from Docker Image
    docker run -it --rm --gpus=all --ipc=host hiyouga/llamafactory:latest
    

    This image is built on Ubuntu 22.04 (x86_64), CUDA 12.4, Python 3.11, PyTorch 2.6.0, and Flash-attn 2.7.4.

    Find the pre-built images: https://hub.docker.com/r/hiyouga/llamafactory/tags

    Please refer to build docker to build the image yourself.

    Create an isolated Python environment with uv:

    uv run llamafactory-cli webui
    
    Install PyTorch

    You need to manually install the GPU version of PyTorch on the Windows platform. Please refer to the official website and the following command to install PyTorch with CUDA support:

    pip uninstall torch torchvision torchaudio
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
    python -c "import torch; print(torch.cuda.is_available())"
    

    If you see True then you have successfully installed PyTorch with CUDA support.

    Try dataloader_num_workers: 0 if you encounter Can't pickle local object error.

    Install BitsAndBytes

    To enable Quantized LoRA (QLoRA) on Windows, you need to install bitsandbytes.

    For most users, it is recommended to install the latest official release:

    pip install bitsandbytes
    

    If you are using uv to manage your virtual environment, it is recommended to install bitsandbytes after installing the GPU-enabled version of PyTorch:

    uv pip install bitsandbytes --no-deps
    

    [!IMPORTANT] Pay attention to the CUDA Toolkit version when installing bitsandbytes. Official bitsandbytes releases are built for specific CUDA Toolkit versions. On Windows x86-64, separate builds are currently provided for CUDA 11.8–12.6 and CUDA 12.8–12.9. Support for NVIDIA RTX 50 Series GPUs (e.g., RTX 5060 Ti, sm_120) requires the CUDA 12.8–12.9 builds.

    If your environment uses an older CUDA version, or you need compatibility with older Windows / PyTorch combinations, you can install the third-party precompiled Windows wheel:

    pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.41.2.post2-py3-none-win_amd64.whl
    
    Install Flash Attention-2

    To enable FlashAttention-2 on the Windows platform, please use the script from flash-attention-windows-wheel to compile and install it by yourself.

    To install LlamaFactory on Ascend NPU devices, please use Python 3.12 and install the extra dependencies with pip install -r requirements/npu.txt. Additionally, you need to install the Ascend CANN Toolkit and Kernels. Please follow the installation tutorial.

    You can also download the pre-built Docker images:

    # Docker Hub
    docker pull hiyouga/llamafactory:latest-910b-ubuntu
    docker pull hiyouga/llamafactory:latest-a3-ubuntu
    docker pull hiyouga/llamafactory:latest-950-ubuntu
    docker pull hiyouga/llamafactory:latest-910b-openeuler
    docker pull hiyouga/llamafactory:latest-a3-openeuler
    docker pull hiyouga/llamafactory:latest-950-openeuler
    
    # quay.io
    docker pull quay.io/ascend/llamafactory:latest-910b-ubuntu
    docker pull quay.io/ascend/llamafactory:latest-a3-ubuntu
    docker pull quay.io/ascend/llamafactory:latest-950-ubuntu
    docker pull quay.io/ascend/llamafactory:latest-910b-openeuler
    docker pull quay.io/ascend/llamafactory:latest-a3-openeuler
    docker pull quay.io/ascend/llamafactory:latest-950-openeuler
    
    Install BitsAndBytes

    To use QLoRA based on bitsandbytes on Ascend NPU, please follow these 3 steps:

    1. Manually compile bitsandbytes: Refer to the installation documentation for the NPU version of bitsandbytes to complete the compilation and installation. The compilation requires a cmake version of at least 3.22.1 and a g++ version of at least 12.x.
    # Install bitsandbytes from source
    # Clone bitsandbytes repo, Ascend NPU backend is currently enabled on multi-backend-refactor branch
    git clone -b multi-backend-refactor https://github.com/bitsandbytes-foundation/bitsandbytes.git
    cd bitsandbytes/
    
    # Install dependencies
    pip install -r requirements-dev.txt
    
    # Install the dependencies for the compilation tools. Note that the commands for this step may vary depending on the operating system. The following are provided for reference
    apt-get install -y build-essential cmake
    
    # Compile & install  
    cmake -DCOMPUTE_BACKEND=npu -S .
    make
    pip install .
    
    1. Install transformers from the main branch.
    git clone -b main https://github.com/huggingface/transformers.git
    cd transformers
    pip install .
    
    1. Set double_quantization: false in the configuration. You can refer to the example.

    Data Preparation

    Please refer to data/README.md for checking the details about the format of dataset files. You can use datasets on HuggingFace / ModelScope / Modelers hub, load the dataset in local disk, or specify a path to s3/gcs cloud storage.

    [!NOTE] Please update data/dataset_info.json to use your custom dataset.

    You can also use Easy Dataset, DataFlow and GraphGen to create synthetic data for fine-tuning.

    Quickstart

    Use the following 3 commands to run LoRA fine-tuning, inference and merging of the Qwen3-4B-Instruct model, respectively.

    llamafactory-cli train examples/train_lora/qwen3_lora_sft.yaml
    llamafactory-cli chat examples/inference/qwen3_lora_sft.yaml
    llamafactory-cli export examples/merge_lora/qwen3_lora_sft.yaml
    

    See examples/README.md for advanced usage (including distributed training).

    [!TIP] Use llamafactory-cli help to show help information.

    Read FAQs first if you encounter any problems.

    Fine-Tuning with LLaMA Board GUI (powered by Gradio)

    llamafactory-cli webui
    

    Build Docker

    For CUDA users:

    cd docker/docker-cuda/
    docker compose up -d
    docker compose exec llamafactory bash
    

    For Ascend NPU users:

    cd docker/docker-npu/
    
    # A2 with Ubuntu
    docker compose --profile a2-ubuntu up -d
    docker compose --profile a2-ubuntu exec llamafactory-a2-ubuntu bash
    
    # A3 with Ubuntu
    docker compose --profile a3-ubuntu up -d
    docker compose --profile a3-ubuntu exec llamafactory-a3-ubuntu bash
    
    # A2 with openEuler
    docker compose --profile a2-openeuler up -d
    docker compose --profile a2-openeuler exec llamafactory-a2-openeuler bash
    
    # A3 with openEuler
    docker compose --profile a3-openeuler up -d
    docker compose --profile a3-openeuler exec llamafactory-a3-openeuler bash
    

    For AMD ROCm users:

    cd docker/docker-rocm/
    docker compose up -d
    docker compose exec llamafactory bash
    

    For CUDA users:

    docker build -f ./docker/docker-cuda/Dockerfile \
        --build-arg PIP_INDEX=https://pypi.org/simple \
        -t llamafactory:latest .
    
    docker run -dit --ipc=host --gpus=all \
        -p 7860:7860 \
        -p 8000:8000 \
        --name llamafactory \
        llamafactory:latest
    
    docker exec -it llamafactory bash
    

    For Ascend NPU users:

    docker build -f ./docker/docker-npu/Dockerfile \
        --build-arg PIP_INDEX=https://pypi.org/simple \
        -t llamafactory:latest .
    
    docker run -dit --ipc=host \
        -v /usr/local/dcmi:/usr/local/dcmi \
        -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
        -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
        -v /etc/ascend_install.info:/etc/ascend_install.info \
        -p 7860:7860 \
        -p 8000:8000 \
        --device /dev/davinci0 \
        --device /dev/davinci_manager \
        --device /dev/devmm_svm \
        --device /dev/hisi_hdc \
        --name llamafactory \
        llamafactory:latest
    
    docker exec -it llamafactory bash
    

    For AMD ROCm users:

    docker build -f ./docker/docker-rocm/Dockerfile \
        --build-arg PIP_INDEX=https://pypi.org/simple \
        -t llamafactory:latest .
    
    docker run -dit --ipc=host \
        -p 7860:7860 \
        -p 8000:8000 \
        --device /dev/kfd \
        --device /dev/dri \
        --name llamafactory \
        llamafactory:latest
    
    docker exec -it llamafactory bash
    

    You can uncomment VOLUME [ "/root/.cache/huggingface", "/app/shared_data", "/app/output" ] in the Dockerfile to use data volumes.

    When building the Docker image, use -v ./hf_cache:/root/.cache/huggingface argument to mount the local directory to the container. The following data volumes are available.

    • hf_cache: Utilize Hugging Face cache on the host machine.
    • shared_data: The directionary to store datasets on the host machine.
    • output: Set export dir to this location so that the merged result can be accessed directly on the host machine.

    Deploy with OpenAI-style API and vLLM

    API_PORT=8000 llamafactory-cli api examples/inference/qwen3.yaml infer_backend=vllm vllm_enforce_eager=true
    

    [!TIP] Visit this page for API document.

    Examples: Image understanding | Function calling

    Download from ModelScope Hub

    If you have trouble with downloading models and datasets from Hugging Face, you can use ModelScope.

    export USE_MODELSCOPE_HUB=1 # `set USE_MODELSCOPE_HUB=1` for Windows
    

    Train the model by specifying a model ID of the ModelScope Hub as the model_name_or_path. You can find a full list of model IDs at ModelScope Hub, e.g., LLM-Research/Meta-Llama-3-8B-Instruct.

    Download from Modelers Hub

    You can also use Modelers Hub to download models and datasets.

    export USE_OPENMIND_HUB=1 # `set USE_OPENMIND_HUB=1` for Windows
    

    Train the model by specifying a model ID of the Modelers Hub as the model_name_or_path. You can find a full list of model IDs at Modelers Hub, e.g., TeleAI/TeleChat-7B-pt.

    Use W&B Logger

    To use Weights & Biases for logging experimental results, you need to add the following arguments to yaml files.

    report_to: wandb
    run_name: test_run # optional
    

    Set WANDB_API_KEY to your key when launching training tasks to log in with your W&B account.

    Use SwanLab Logger

    To use SwanLab for logging experimental results, you need to add the following arguments to yaml files.

    use_swanlab: true
    swanlab_run_name: test_run # optional
    

    When launching training tasks, you can log in to SwanLab in three ways:

    1. Add swanlab_api_key=<your_api_key> to the yaml file, and set it to your API key.
    2. Set the environment variable SWANLAB_API_KEY to your API key.
    3. Use the swanlab login command to complete the login.

    Projects using LlamaFactory

    If you have a project that should be incorporated, please contact via email or create a pull request.

    1. Wang et al. ESRL: Efficient Sampling-based Reinforcement Learning for Sequence Generation. 2023. [arxiv]
    2. Yu et al. Open, Closed, or Small Language Models for Text Classification? 2023. [arxiv]
    3. Wang et al. UbiPhysio: Support Daily Functioning, Fitness, and Rehabilitation with Action Understanding and Feedback in Natural Language. 2023. [arxiv]
    4. Luceri et al. Leveraging Large Language Models to Detect Influence Campaigns in Social Media. 2023. [arxiv]
    5. Zhang et al. Alleviating Hallucinations of Large Language Models through Induced Hallucinations. 2023. [arxiv]
    6. Wang et al. Know Your Needs Better: Towards Structured Understanding of Marketer Demands with Analogical Reasoning Augmented LLMs. KDD 2024. [arxiv]
    7. Wang et al. CANDLE: Iterative Conceptualization and Instantiation Distillation from Large Language Models for Commonsense Reasoning. ACL 2024. [arxiv]
    8. Choi et al. FACT-GPT: Fact-Checking Augmentation via Claim Matching with LLMs. 2024. [arxiv]
    9. Zhang et al. AutoMathText: Autonomous Data Selection with Language Models for Mathematical Texts. 2024. [arxiv]
    10. Lyu et al. KnowTuning: Knowledge-aware Fine-tuning for Large Language Models. 2024. [arxiv]
    11. Yang et al. LaCo: Large Language Model Pruning via Layer Collapse. 2024. [arxiv]
    12. Bhardwaj et al. Language Models are Homer Simpson! Safety Re-Alignment of Fine-tuned Language Models through Task Arithmetic. 2024. [arxiv]
    13. Yang et al. Enhancing Empathetic Response Generation by Augmenting LLMs with Small-scale Empathetic Models. 2024. [arxiv]
    14. Yi et al. Generation Meets Verification: Accelerating Large Language Model Inference with Smart Parallel Auto-Correct Decoding. ACL 2024 Findings. [arxiv]
    15. Cao et al. Head-wise Shareable Attention for Large Language Models. 2024. [arxiv]
    16. Zhang et al. Enhancing Multilingual Capabilities of Large Language Models through Self-Distillation from Resource-Rich Languages. 2024. [arxiv]
    17. Kim et al. Efficient and Effective Vocabulary Expansion Towards Multilingual Large Language Models. 2024. [arxiv]
    18. Yu et al. KIEval: A Knowledge-grounded Interactive Evaluation Framework for Large Language Models. ACL 2024. [arxiv]
    19. Huang et al. Key-Point-Driven Data Synthesis with its Enhancement on Mathematical Reasoning. 2024. [arxiv]
    20. Duan et al. Negating Negatives: Alignment without Human Positive Samples via Distributional Dispreference Optimization. 2024. [arxiv]
    21. Xie and Schwertfeger. Empowering Robotics with Large Language Models: osmAG Map Comprehension with LLMs. 2024. [arxiv]
    22. Wu et al. Large Language Models are Parallel Multilingual Learners. 2024. [arxiv]
    23. Zhang et al. EDT: Improving Large Language Models' Generation by Entropy-based Dynamic Temperature Sampling. 2024. [arxiv]
    24. Weller et al. FollowIR: Evaluating and Teaching Information Retrieval Models to Follow Instructions. 2024. [arxiv]
    25. Hongbin Na. CBT-LLM: A Chinese Large Language Model for Cognitive Behavioral Therapy-based Mental Health Question Answering. COLING 2024. [arxiv]
    26. Zan et al. CodeS: Natural Language to Code Repository via Multi-Layer Sketch. 2024. [arxiv]
    27. Liu et al. Extensive Self-Contrast Enables Feedback-Free Language Model Alignment. 2024. [arxiv]
    28. Luo et al. BAdam: A Memory Efficient Full Parameter Training Method for Large Language Models. 2024. [arxiv]
    29. Du et al. Chinese Tiny LLM: Pretraining a Chinese-Centric Large Language Model. 2024. [arxiv]
    30. Ma et al. Parameter Efficient Quasi-Orthogonal Fine-Tuning via Givens Rotation. ICML 2024. [arxiv]
    31. Liu et al. Dynamic Generation of Personalities with Large Language Models. 2024. [arxiv]
    32. Shang et al. How Far Have We Gone in Stripped Binary Code Understanding Using Large Language Models. 2024. [arxiv]
    33. Huang et al. LLMTune: Accelerate Database Knob Tuning with Large Language Models. 2024. [arxiv]
    34. Deng et al. Text-Tuple-Table: Towards Information Integration in Text-to-Table Generation via Global Tuple Extraction. 2024. [arxiv]
    35. Acikgoz et al. Hippocrates: An Open-Source Framework for Advancing Large Language Models in Healthcare. 2024. [arxiv]
    36. Zhang et al. Small Language Models Need Strong Verifiers to Self-Correct Reasoning. ACL 2024 Findings. [arxiv]
    37. Zhou et al. FREB-TQA: A Fine-Grained Robustness Evaluation Benchmark for Table Question Answering. NAACL 2024. [arxiv]
    38. Xu et al. Large Language Models for Cyber Security: A Systematic Literature Review. 2024. [arxiv]
    39. Dammu et al. "They are uncultured": Unveiling Covert Harms and Social Threats in LLM Generated Conversations. 2024. [arxiv]
    40. Yi et al. A safety realignment framework via subspace-oriented model fusion for large language models. 2024. [arxiv]
    41. Lou et al. SPO: Multi-Dimensional Preference Sequential Alignment With Implicit Reward Modeling. 2024. [arxiv]
    42. Zhang et al. Getting More from Less: Large Language Models are Good Spontaneous Multilingual Learners. 2024. [arxiv]
    43. Zhang et al. TS-Align: A Teacher-Student Collaborative Framework for Scalable Iterative Finetuning of Large Language Models. 2024. [arxiv]
    44. Zihong Chen. Sentence Segmentation and Sentence Punctuation Based on XunziALLM. 2024. [paper]
    45. Gao et al. The Best of Both Worlds: Toward an Honest and Helpful Large Language Model. 2024. [arxiv]
    46. Wang and Song. MARS: Benchmarking the Metaphysical Reasoning Abilities of Language Models with a Multi-task Evaluation Dataset. 2024. [arxiv]
    47. Hu et al. Computational Limits of Low-Rank Adaptation (LoRA) for Transfor