LLaMA-Factory: 统一高效地微调100+ LLMs & VLMs (ACL 2024)

LLaMA-Factory 是一个强大的工具,旨在简化和加速大规模语言模型(LLMs)和视觉语言模型(VLMs)的微调过程。它支持超过 100 种不同的模型架构,并集成了多种先进的微调技术和优化算法。

项目地址: https://github.com/hiyouga/LLaMA-Factory

核心特性

  • 广泛的模型支持: 支持 LLaMA, LLaVA, Mistral, Mixtral-MoE, Qwen, Qwen2-VL, DeepSeek, Yi, Gemma, ChatGLM, Phi 等超过100个模型。

  • 多种训练方法: 包括 (Continuous) pre-training, (multimodal) supervised fine-tuning, reward modeling, PPO, DPO, KTO, ORPO 等。

  • 高效的资源利用: 支持 16-bit full-tuning, freeze-tuning, LoRA 以及 2/3/4/5/6/8-bit QLoRA via AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 等量化技术。

  • 先进的优化算法: 包括 GaLore, BAdam, APOLLO, Adam-mini, DoRA, LongLoRA, LLaMA Pro, Mixture-of-Depths, LoRA+, LoftQ 和 PiSSA 等。

  • 实用技巧: 集成 FlashAttention-2, Unsloth, Liger Kernel, RoPE scaling, NEFTune 和 rsLoRA 等技术。

  • 广泛的任务支持: 支持多轮对话、工具使用、图像理解、视觉定位、视频识别、音频理解等。

  • 实验监控工具: 支持 LlamaBoard, TensorBoard, Wandb, MLflow, SwanLab 等多种监控工具。

  • 快速推理: 支持 OpenAI-style API, Gradio UI 和基于 vLLM worker 的 CLI 接口。

性能基准

在广告文本生成任务中,相较于 ChatGLM 的 P-Tuning 方法,LLaMA Factory 的 LoRA 微调速度提升高达 3.7 倍,同时具有更好的 Rouge 分数。通过利用 4-bit 量化技术,LLaMA Factory 的 QLoRA 进一步提高了 GPU 内存效率。

最新进展

  • EasyR1: 用于高效 GRPO 训练的高效、可扩展和多模态 RL 训练框架。
  • 支持保存 Ollama modelfile。
  • 支持 Qwen2-Audio 和 MiniCPM-o-2.6 在音频理解任务上的微调。
  • 支持 DeepSeek-R1 和 Qwen2.5-VL 模型的微调。
  • 支持 APOLLO 优化器。
  • 支持 MiniCPM-o-2.6 和 MiniCPM-V-2.6 模型的微调。
  • 支持 InternLM3 模型微调。
  • 支持 Phi-4 模型微调。
  • 集成 SwanLab 用于实验跟踪和可视化。
  • 支持 Skywork-o1 模型和 OpenO1 数据集的微调。
  • 支持从 Modelers Hub 下载预训练模型和数据集。
  • 支持 Qwen2.5 模型微调。
  • 支持 Qwen2-VL 模型微调。
  • 集成 Liger Kernel 以提高训练效率。
  • 支持 Adam-mini 优化器。
  • 支持 contamination-free packed training。
  • 支持 PiSSA 算法。
  • 支持 Qwen2 和 GLM-4 模型微调。
  • 支持 SimPO 算法进行偏好学习。
  • 支持 PaliGemma 系列模型微调。
  • 支持 KTO 算法进行偏好学习。
  • 支持在 Ascend NPU 设备上训练和推理。
  • 支持 LLaVA-1.5 多模态 LLMs 的微调。
  • 提供 Colab notebook 用于在免费 T4 GPU 上微调 Llama-3 模型。
  • 支持 Mixture-of-Depths。
  • 支持 BAdam 优化器。
  • 支持 unsloth 的长序列训练 (Llama-2-7B-56k within 24GB)。
  • 支持 ORPO。
  • 支持 FSDP+QLoRA,可在 2x24GB GPU 上微调 70B 模型。
  • 支持 LoRA+。
  • 支持 GaLore 优化器。
  • 集成 vLLM 用于更快速和并发的推理。
  • 支持 weight-decomposed LoRA (DoRA)。
  • 支持 LLaMA Pro 提出的块扩展。

快速上手

  1. 安装

    git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
    cd LLaMA-Factory
    pip install -e ".[torch,metrics]"
    
  2. 数据准备: 参考 data/README.md 准备数据集。

  3. 快速启动:

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

总结

LLaMA-Factory 是一个功能强大且易于使用的工具,适用于研究人员和开发人员,用于高效微调各种 LLMs 和 VLMs。 其广泛的模型支持、先进的训练技术和优化的推理引擎,使其成为 LLM 领域的一个重要贡献。