一.概述

本教程旨在帮助用户快速上手使用 LLaMA-Factory 进行大型模型微调。

LLaMA-Factory 是一个高效、灵活且易于扩展的工具包,用于微调和部署大型语言模型。它支持在多种 GPU 环境下进行 LLM(大型语言模型)预训练和微调,兼容多种优化技术,并与 DeepSpeed 集成,充分发挥 ZeRO 的优势,提升训练效率和资源利用率。

本教程示例:

示例1:LLaMA-2-7B 微调

示例2:LLaMA-3 微调

通过本教程,用户将:

  • 掌握如何使用 LLaMA-Factory 启动训练任务
  • 学会使用相关命令对模型进行微调
  • 掌握如何利用 LLaMA-Factory 部署训练好的语言模型

本教程适合那些希望快速上手微调 LLaMA(LLaMA-2、LLaMA-3)以及其他大型语言模型的开发者和研究人员。

二.快速开始

2.1 环境准备

本教程运行硬件环境:

类别 详细信息
CPU 16 vCPU Intel(R) Xeon(R) Platinum 8352V CPU @ 2.10GHz
GPU RTX 4090
GPU 显存 24GB
CUDA 版本 12.1
操作系统 Linux 5.15.0-94-generic
Python 版本 3.12.3
PyTorch 版本 2.3.0

创建一个 conda 环境 llama ,并激活环境

conda create --name llama python=3.10 -y
conda activate llama

2.2 下载资源包

从资源站下载资源包:

mkdir run-llama
cd run-llama
# 从aheadai资源站下载资源包
wget https://mirrors.aheadai.cn/scripts/LLaMA-Factory.zip

解压资源包

unzip LLaMA-Factory.zip
cd LLaMA-Factory

确保解压后文件结构如下:

./LLaMA_example/
    ├── assets/                 
    ├── data/                   
    ├── docker/              
    ├── evaluation/                
    ├── examples/                   
    ├── Model/    
    ├── scripts/
    ├── src/
    ├── test/
    ├── CITATION.cff
    ├── LICENSE
    ├── MANIFEST.in
    ├── pyproject
    ├── README
    ├── README_zh
    ├── setup.py
    └── requirements.txt         

2.3 部署LLaMA框架

pip install -e ".[torch,metrics]"

三.开始训练

3.1 训练示例

3.11 Llama3-8B-Instruct 模型的 LoRA 微调推理合并

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

对于此模型在使用时需要确认,即运行训练任务时可能会尝试访问一个受限制的 Hugging Face 仓库,但由于未登录或没有访问权限,导致操作失败。

此类模型权重加载或者数据集使用,需要提供 huggingface 令牌:

pip install --upgrade huggingface_hub
huggingface-cli login

3.12 llava-hf/llava-1.5-7b-hf 微调

llamafactory-cli train examples/train_lora/qwen2vl_lora_sft.yaml

3.13 llava-hf/llava-1.5-7b-hf 微调

llamafactory-cli train examples/train_lora/llava1_5_lora_sft.yaml

3.2 数据准备

可以在 HuggingFace / ModelScope / Modelers Hub 上使用数据集,也可以在本地磁盘中加载数据集,此情况需要在微调模型时修改对应配置文件中的路径。

自定义HuggingFace缓存路径:

可以通过设置 Hugging Face 的相关环境变量来修改默认的缓存路径,从而改变模型权重、分词器、数据集等的存储位置:

export HF_HOME=/your/custom/path
export TRANSFORMERS_CACHE=/your/custom/path/transformers

注意:

  • 这里 /your/custom/path 是您希望的新缓存路径。
  • 如果只设置 HF_HOME,所有缓存(包括数据集等)会默认存储到该路径。
  • 如果设置了 TRANSFORMERS_CACHE,则模型和分词器会优先存储到该路径。
3.21 从 ModelScope Hub 下载

如果在从 Hugging Face 下载模型和数据集时遇到问题,可以使用 ModelScope

export USE_MODELSCOPE_HUB=1 # `set USE_MODELSCOPE_HUB=1` for Windows
3.22 从 Modelers Hub 下载

以使用 Modelers Hub 下载模型和数据集:

export USE_OPENMIND_HUB=1 # `set USE_OPENMIND_HUB=1` for Windows
本文系作者 @ admin 原创发布在 文档中心 | AheadAI ,未经许可,禁止转载。