综合介绍
LLaMA-Factory 是一个统一的高效微调框架,支持对100多种大型语言模型(LLMs)进行灵活定制和高效训练。通过内置的 LLaMA Board 网页界面,用户无需编写代码即可完成模型微调。该框架集成了多种先进的训练方法和实用技巧,显著提升了训练速度和GPU内存利用率。
功能列表
- 多模型支持:支持 LLaMA、LLaVA、Mistral、Qwen 等多种语言模型。
- 多种训练方法:包括全量微调、冻结微调、LoRA、QLoRA 等。
- 高效算法:集成 GaLore、BAdam、Adam-mini、DoRA 等先进算法。
- 实用技巧:支持 FlashAttention-2、Unsloth、Liger Kernel 等。
- 实验监控:提供 LlamaBoard、TensorBoard、Wandb、MLflow 等监控工具。
- 快速推理:提供类似 OpenAI 的 API、Gradio UI 和 CLI 接口。
- 数据集支持:支持从 HuggingFace、ModelScope 等平台下载预训练模型和数据集。
使用帮助
安装流程
- 克隆项目代码:
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
- 安装依赖:
pip install -e ".[torch,metrics]"
可选依赖包括:torch、torch-npu、metrics、deepspeed、liger-kernel、bitsandbytes 等。
数据准备
请参考 data/README.md
了解数据集文件格式的详细信息。可以使用 HuggingFace / ModelScope / Modelers hub 上的数据集,或加载本地磁盘上的数据集。
快速开始
使用以下命令运行 LoRA 微调、推理和合并 Llama3-8B-Instruct 模型:
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
更多高级用法请参考 examples/README.md
。
使用 LLaMA Board GUI
通过 Gradio 提供的 LLaMA Board GUI 进行微调:
llamafactory-cli webui
Docker 部署
对于 CUDA 用户:
cd docker/docker-cuda/
docker compose up -d
docker compose exec llamafactory bash
对于 Ascend NPU 用户:
cd docker/docker-npu/
docker compose up -d
docker compose exec llamafactory bash
对于 AMD ROCm 用户:
cd docker/docker-rocm/
docker compose up -d
docker compose exec llamafactory bash
API 部署
使用 OpenAI 风格的 API 和 vLLM 进行推理:
API_PORT=8000 llamafactory-cli api examples/inference/llama3_vllm.yaml
访问此页面获取 API 文档。
下载模型和数据集
如果从 Hugging Face 下载模型和数据集有困难,可以使用 ModelScope:
export USE_MODELSCOPE_HUB=1
通过指定 ModelScope Hub 的模型 ID 来训练模型,例如 LLM-Research/Meta-Llama-3-8B-Instruct
。
使用 W&B 记录实验结果
要使用 Weights & Biases 记录实验结果,需要在 yaml 文件中添加以下参数:
wandb:
project: "your_project_name"
entity: "your_entity_name"