LLaMA-Factory 简介
LLaMA-Factory[1] 是一个用于高效微调100多种大型语言模型(LLMs)的统一平台,该项目在2024年的ACL会议上进行了展示。
它支持多种模型和微调方法,包括全参数微调、局部冻结微调、LoRA和量化LoRA(QLoRA)等先进的算法和技术。
项目特点
主要特点
-
多样化模型支持:支持LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Qwen2-VL、Yi、Gemma、Baichuan、ChatGLM、Phi等多种预训练模型。
-
集成化微调方法:支持持续预训练、多模态监督微调、奖励建模、PPO、DPO、KTO、ORPO等多种训练方法。
-
可扩展资源利用:支持16位全参数微调、冻结微调、LoRA和2/3/4/5/6/8位QLoRA等技术。
-
先进算法应用:集成了GaLore、BAdam、Adam-mini、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ、PiSSA和Agent tuning等先进优化算法。
-
实用技巧集成:包括FlashAttention-2、Unsloth、Liger Kernel、RoPE scaling、NEFTune和rsLoRA等实用技巧。
-
实验监控工具:支持LlamaBoard、TensorBoard、Wandb、MLflow等多种实验监控工具。
-
快速推理能力:提供OpenAI风格的API、Gradio UI和CLI以及vLLM worker支持。
使用场景
LLaMA-Factory 可用于多种自然语言处理任务,包括但不限于:
-
聊天机器人的微调
-
文本生成任务
-
机器翻译
-
问答系统
-
文档理解和摘要
-
代码生成和理解
项目使用
安装
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
数据准备
请参考 data/README.md[2] 了解数据集文件格式的详细信息。
你可以使用HuggingFace / ModelScope 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
使用 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
注:本文内容仅供参考,具体项目特性请参照官方 GitHub 页面的最新说明。
欢迎关注&点赞&在看,感谢你的阅读~
资源列表
[1]
Github地址: https://github.com/hiyouga/LLaMA-Factory
[2]
数据准备: https://github.com/hiyouga/LLaMA-Factory/blob/main/data/README.md