LLaMA-Factory
创始人
2025-01-07 11:36:48
0

在这里插入图片描述


文章目录

    • 一、关于 LLaMA-Factory
      • 项目特色
      • 性能指标
    • 二、如何使用
      • 1、安装 LLaMA Factory
      • 2、数据准备
      • 3、快速开始
      • 4、LLaMA Board 可视化微调
      • 5、构建 Docker
        • CUDA 用户:
        • 昇腾 NPU 用户:
        • 不使用 Docker Compose 构建
          • CUDA 用户:
          • 昇腾 NPU 用户:
        • 数据卷详情
      • 6、利用 vLLM 部署 OpenAI API
      • 7、从魔搭社区下载
      • 8、使用 W&B 面板
    • 三、支持
      • 1、模型
      • 2、训练方法
      • 3、数据集
        • 预训练数据集
        • 指令微调数据集
        • 偏好数据集
      • 4、软硬件依赖
        • 硬件依赖


一、关于 LLaMA-Factory

A WebUI for Efficient Fine-Tuning of 100+ LLMs

  • github : https://github.com/hiyouga/LLaMA-Factory

Demo 视频

其他打开方式

  • Colab:https://colab.research.google.com/drive/1d5KQtbemerlSDSxZIfAaWXhKr30QypiK?usp=sharing
  • PAI-DSW: https://gallery.pai-ml.com/#/preview/deepLearning/nlp/llama_factory
  • 本地机器:请见如何使用

项目特色

  • 多种模型: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 和 Agent 微调。
  • 实用技巧:FlashAttention-2、Unsloth、RoPE scaling、NEFTune 和 rsLoRA。
  • 实验监控:LlamaBoard、TensorBoard、Wandb、MLflow 等等。
  • 极速推理:基于 vLLM 的 OpenAI 风格 API、浏览器界面和命令行接口。

性能指标

与 ChatGLM 官方的 P-Tuning 微调相比,LLaMA Factory 的 LoRA 微调提供了 3.7 倍的加速比,同时在广告文案生成任务上取得了更高的 Rouge 分数。结合 4 比特量化技术,LLaMA Factory 的 QLoRA 微调进一步降低了 GPU 显存消耗。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


二、如何使用


1、安装 LLaMA Factory

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e ".[torch,metrics]" 

可选的额外依赖项:torch、torch-npu、metrics、deepspeed、bitsandbytes、hqq、eetq、gptq、awq、aqlm、vllm、galore、badam、qwen、modelscope、quality

Tip : 遇到包冲突时,可使用 pip install --no-deps -e . 解决。

Windows 和 昇腾 NPU 用户指南 详见:https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md


2、数据准备

关于数据集文件的格式,请参考 data/README_zh.md 的内容。你可以使用 HuggingFace / ModelScope 上的数据集或加载本地数据集。

Note:使用自定义数据集时,请更新 data/dataset_info.json 文件。


3、快速开始

下面三行命令分别对 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 

高级用法请参考 examples/README_zh.md(包括多 GPU 微调)。

Tip: 使用 llamafactory-cli help 显示帮助信息。


4、LLaMA Board 可视化微调

由 Gradio 驱动

llamafactory-cli webui 

5、构建 Docker


CUDA 用户:
cd docker/docker-cuda/ docker-compose up -d docker-compose exec llamafactory bash 

昇腾 NPU 用户:
cd docker/docker-npu/ docker-compose up -d docker-compose exec llamafactory bash 

不使用 Docker Compose 构建

CUDA 用户:
docker build -f ./docker/docker-cuda/Dockerfile \     --build-arg INSTALL_BNB=false \     --build-arg INSTALL_VLLM=false \     --build-arg INSTALL_DEEPSPEED=false \     --build-arg INSTALL_FLASHATTN=false \     --build-arg PIP_INDEX=https://pypi.org/simple \     -t llamafactory:latest .  docker run -dit --gpus=all \     -v ./hf_cache:/root/.cache/huggingface \     -v ./ms_cache:/root/.cache/modelscope \     -v ./data:/app/data \     -v ./output:/app/output \     -p 7860:7860 \     -p 8000:8000 \     --shm-size 16G \     --name llamafactory \     llamafactory:latest  docker exec -it llamafactory bash 

昇腾 NPU 用户:
# 根据您的环境选择镜像 docker build -f ./docker/docker-npu/Dockerfile \     --build-arg INSTALL_DEEPSPEED=false \     --build-arg PIP_INDEX=https://pypi.org/simple \     -t llamafactory:latest .  # 根据您的资源更改 `device` docker run -dit \     -v ./hf_cache:/root/.cache/huggingface \     -v ./ms_cache:/root/.cache/modelscope \     -v ./data:/app/data \     -v ./output:/app/output \     -v /usr/local/dcmi:/usr/local/dcmi \     -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \     -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \     -v /etc/ascend_install.info:/etc/ascend_install.info \     -p 7860:7860 \     -p 8000:8000 \     --device /dev/davinci0 \     --device /dev/davinci_manager \     --device /dev/devmm_svm \     --device /dev/hisi_hdc \     --shm-size 16G \     --name llamafactory \     llamafactory:latest  docker exec -it llamafactory bash 

数据卷详情
  • hf_cache:使用宿主机的 Hugging Face 缓存文件夹,允许更改为新的目录。
  • data:宿主机中存放数据集的文件夹路径。
  • output:将导出目录设置为该路径后,即可在宿主机中访问导出后的模型。

6、利用 vLLM 部署 OpenAI API

API_PORT=8000 llamafactory-cli api examples/inference/llama3_vllm.yaml 

Tip : API 文档请查阅 https://platform.openai.com/docs/api-reference/chat/create。


7、从魔搭社区下载

如果您在 Hugging Face 模型和数据集的下载中遇到了问题,可以通过下述方法使用魔搭社区。

export USE_MODELSCOPE_HUB=1 # Windows 使用 `set USE_MODELSCOPE_HUB=1` 

model_name_or_path 设置为模型 ID 来加载对应的模型。在魔搭社区查看所有可用的模型,例如 LLM-Research/Meta-Llama-3-8B-Instruct


8、使用 W&B 面板

若要使用 Weights & Biases 记录实验数据,请在 yaml 文件中添加下面的参数。

report_to: wandb run_name: test_run # 可选 

在启动训练任务时,将 WANDB_API_KEY 设置为密钥来登录 W&B 账户。


三、支持


1、模型

模型名模型大小Template
Baichuan 27B/13Bbaichuan2
BLOOM/BLOOMZ560M/1.1B/1.7B/3B/7.1B/176B-
ChatGLM36Bchatglm3
Command R35B/104Bcohere
DeepSeek (Code/MoE)7B/16B/67B/236Bdeepseek
Falcon7B/11B/40B/180Bfalcon
Gemma/Gemma 2/CodeGemma2B/7B/9B/27Bgemma
GLM-49Bglm4
InternLM27B/20Bintern2
Llama7B/13B/33B/65B-
Llama 27B/13B/70Bllama2
Llama 38B/70Bllama3
LLaVA-1.57B/13Bvicuna
Mistral/Mixtral7B/8x7B/8x22Bmistral
OLMo1B/7B-
PaliGemma3Bgemma
Phi-1.5/Phi-21.3B/2.7B-
Phi-34B/7B/14Bphi
Qwen/Qwen1.5/Qwen2 (Code/MoE)0.5B/1.5B/4B/7B/14B/32B/72B/110Bqwen
StarCoder 23B/7B/15B-
XVERSE7B/13B/65Bxverse
Yi/Yi-1.56B/9B/34Byi
Yi-VL6B/34Byi_vl
Yuan 22B/51B/102Byuan

Note : 对于所有“基座”(Base)模型,template 参数可以是 default, alpaca, vicuna 等任意值。但“对话”(Instruct/Chat)模型请务必使用对应的模板

请务必在训练和推理时采用完全一致的模板。

项目所支持模型的完整列表请参阅 constants.py。

您也可以在 template.py 中添加自己的对话模板。


2、训练方法

方法全参数训练部分参数训练LoRAQLoRA
预训练
指令监督微调
奖励模型训练
PPO 训练
DPO 训练
KTO 训练
ORPO 训练
SimPO 训练

3、数据集


预训练数据集
  • Wiki Demo (en)
  • RefinedWeb (en)
  • RedPajama V2 (en)
  • Wikipedia (en)
  • Wikipedia (zh)
  • Pile (en)
  • SkyPile (zh)
  • FineWeb (en)
  • FineWeb-Edu (en)
  • The Stack (en)
  • StarCoder (en)

指令微调数据集
  • Identity (en&zh)
  • Stanford Alpaca (en)
  • Stanford Alpaca (zh)
  • Alpaca GPT4 (en&zh)
  • Glaive Function Calling V2 (en&zh)
  • LIMA (en)
  • Guanaco Dataset (multilingual)
  • BELLE 2M (zh)
  • BELLE 1M (zh)
  • BELLE 0.5M (zh)
  • BELLE Dialogue 0.4M (zh)
  • BELLE School Math 0.25M (zh)
  • BELLE Multiturn Chat 0.8M (zh)
  • UltraChat (en)
  • OpenPlatypus (en)
  • CodeAlpaca 20k (en)
  • Alpaca CoT (multilingual)
  • OpenOrca (en)
  • SlimOrca (en)
  • MathInstruct (en)
  • Firefly 1.1M (zh)
  • Wiki QA (en)
  • Web QA (zh)
  • WebNovel (zh)
  • Nectar (en)
  • deepctrl (en&zh)
  • Advertise Generating (zh)
  • ShareGPT Hyperfiltered (en)
  • ShareGPT4 (en&zh)
  • UltraChat 200k (en)
  • AgentInstruct (en)
  • LMSYS Chat 1M (en)
  • Evol Instruct V2 (en)
  • Cosmopedia (en)
  • STEM (zh)
  • Ruozhiba (zh)
  • Neo-sft (zh)
  • WebInstructSub (en)
  • Magpie-Pro-300K-Filtered (en)
  • LLaVA mixed (en&zh)
  • Open Assistant (de)
  • Dolly 15k (de)
  • Alpaca GPT4 (de)
  • OpenSchnabeltier (de)
  • Evol Instruct (de)
  • Dolphin (de)
  • Booksum (de)
  • Airoboros (de)
  • Ultrachat (de)

偏好数据集
  • DPO mixed (en&zh)
  • UltraFeedback (en)
  • Orca DPO Pairs (en)
  • HH-RLHF (en)
  • Nectar (en)
  • Orca DPO (de)
  • KTO mixed (en)

部分数据集的使用需要确认,我们推荐使用下述命令登录您的 Hugging Face 账户。

pip install --upgrade huggingface_hub huggingface-cli login 

4、软硬件依赖

必需项至少推荐
python3.83.11
torch1.13.12.3.0
transformers4.41.24.41.2
datasets2.16.02.19.2
accelerate0.30.10.30.1
peft0.11.10.11.1
trl0.8.60.9.4
可选项至少推荐
CUDA11.612.2
deepspeed0.10.00.14.0
bitsandbytes0.39.00.43.1
vllm0.4.30.4.3
flash-attn2.3.02.5.9

硬件依赖

* 估算值

方法精度7B13B30B70B110B8x7B8x22B
FullAMP120GB240GB600GB1200GB2000GB900GB2400GB
Full1660GB120GB300GB600GB900GB400GB1200GB
Freeze1620GB40GB80GB200GB360GB160GB400GB
LoRA/GaLore/BAdam1616GB32GB64GB160GB240GB120GB320GB
QLoRA810GB20GB40GB80GB140GB60GB160GB
QLoRA46GB12GB24GB48GB72GB30GB96GB
QLoRA24GB8GB16GB24GB48GB18GB48GB

2024-07-17(三)

相关内容

热门资讯

玩家交流!红龙poker辅助,... 玩家交流!红龙poker辅助,pokemmo手机脚本,细节揭秘(有挂插件)1、下载好pokemmo手...
透视脚本!hhpoker辅助(... 透视脚本!hhpoker辅助(底牌)详细透视辅助神器(有挂方法)1、该软件可以轻松地帮助玩家将hhp...
7分钟辅助!wpk有作弊,微扑... 7分钟辅助!wpk有作弊,微扑克微乐辅助,AI教程(有挂技巧)1、微扑克微乐辅助系统规律教程、微扑克...
透视安装包!wepoker私人... 透视安装包!wepoker私人局可以透视,(wepoker)竟然真的有挂(详细透视底牌辅助安装)1、...
一分钟了解!!hhpoker德... 一分钟了解!!hhpoker德州作弊,hhpoker底牌透视脚本,解密教程(有挂普及)hhpoker...
八分钟攻略!wpk辅助插件,w... 八分钟攻略!wpk辅助插件,wpk透视辅助靠谱,辅助教程(有挂辅助挂)1、wpk透视辅助靠谱透视辅助...
一分钟揭秘!红龙poker作弊... 一分钟揭秘!红龙poker作弊指令,poker master辅助,揭秘教程(有挂介绍);1、完成红龙...
透视软件!wepoker分析,... 透视软件!wepoker分析,(WePoKer)一直是真的有挂(详细透视底牌辅助神器)1、起透看视 ...
必看攻略!!德州hhpoker... 必看攻略!!德州hhpoker脚本,hhpoker作弊实战视频,2025新版教程(有挂攻略);1、h...
二分钟实锤!wpk刷入池率脚本... 二分钟实锤!wpk刷入池率脚本,(Wpk)一直真的有挂(详细透视辅助下载普及);1、许多玩家不知道w...