LLaMA-Factory
训练与微调

LLaMA-Factory

LLaMA Factory 是一个强大且易于使用的平台,用于在本地训练和微调包括 Llama 系列在内的各种大型语言模型。它提供了丰富的特性,包括多种模型支持、灵活的微调技术、用户友好的界面以及模型评估和部署工具,旨在降低 LLM 微调的门槛,并提高效率。

快点收藏起来

什么是 LLaMA Factory

LLaMA Factory 是一个易于使用且高效的平台,专门用于训练和微调大型语言模型(Large Language Models, LLMs),尤其侧重于 Meta 公司开源的 Llama 系列模型。该工具旨在简化 LLM 的微调过程,使得研究人员、开发者甚至非专业人士都可以在本地轻松地对数百个预训练模型进行定制,而无需编写复杂的代码。LLaMA Factory 提供了一系列强大的功能和灵活的选项,支持多种微调技术和模型架构,旨在成为用户定制化 LLM 的强大助手。

LLaMA-Factory

LLaMA Factory 的功能

LLaMA Factory 提供了丰富的功能,使其成为一个全面的 LLM 微调工具包:

  • 广泛的模型支持: 支持包括 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 等实验监控工具,方便用户跟踪训练过程。
  • 用户友好的界面: 提供命令行界面(CLI)和 Web 用户界面(WebUI)两种操作方式,满足不同用户的需求。WebUI 尤其适合初学者,提供了无需编码即可进行模型微调和推理的图形化操作界面。
  • 高效的微调技术: 利用低秩自适应(LoRA)等高效的微调技术,可以显著减少 GPU 内存的使用,使得在资源有限的环境下也能进行模型微调。
  • 数据准备工具: 提供内置的数据集模板和工具,方便用户准备和管理用于微调的数据。
  • 模型合并与导出: 支持将微调后的模型适配器与原始模型合并,并导出到 Hugging Face Hub 或本地存储。
  • 模型部署: 可以使用 vLLM 框架部署微调后的模型,并通过 OpenAI 风格的 API 或 REST API 进行访问。

如何使用/快速开始

开始使用 LLaMA Factory 的步骤相对简单,以下是一个基本指南:

  1. 安装依赖: 首先,您需要克隆 LLaMA Factory 的 GitHub 仓库,并安装所有必要的 Python 包。根据您的 CUDA 版本,可能需要安装特定版本的 PyTorch 和 bitsandbytes 库。例如,在 Google Colab 中,您可以使用以下命令:
    ! git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
     %cd LLaMA-Factory
     ! pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1
     ! pip uninstall -y jax
     ! pip install -e .[torch,bitsandbytes,liger-kernel]
  2. 准备数据: LLaMA Factory 支持多种数据格式。您需要根据您的微调任务准备好相应格式的数据集,并将其放置在 data 文件夹中。可以参考官方文档中的数据准备指南。
  3. 配置参数: 您可以通过修改配置文件(例如 YAML 文件)或在 WebUI 中设置参数来配置微调过程。这包括选择模型、数据集、微调类型(如 LoRA)、学习率、训练轮数等。
  4. 启动微调: 如果您使用命令行界面,可以运行 llamafactory-cli train config.yaml 命令来启动微调。如果您使用 WebUI,可以运行 llamafactory-cli webui 命令启动 Web 界面,然后在界面中选择相应的模型、数据集和参数,点击“开始”按钮即可开始训练。
  5. 监控训练: 您可以使用集成的实验监控工具(如 LlamaBoard、TensorBoard 或 Wandb)来跟踪训练的进度和性能指标。
  6. 评估模型: 微调完成后,您可以在 WebUI 的“Chat”界面或使用命令行工具加载微调后的模型适配器,并进行对话测试以评估模型的性能。
  7. 合并和部署(可选): 您可以将微调后的适配器与原始模型合并,然后将合并后的模型导出到 Hugging Face Hub 或使用 vLLM 进行部署。

LLaMA Factory 通过其简洁的界面和丰富的功能,极大地简化了大型语言模型的微调过程,使得更多的人能够参与到 LLM 的定制和应用中来。无论是进行学术研究还是开发实际应用,LLaMA Factory 都是一个值得尝试的强大工具。

相关导航