llama factory
LLaMA-Factory是一个统一的框架,集成了一套先进的高效训练方法。它允许用户通过内置的Web UI灵活定制100多个LLMs的微调,而无需编写代码。
标签:ai工具集2llama factory llama factory官网 llama factory微调 llama factory推理 llama factory教程 llama factory训练 llama factory部署 llama_factoryllama factory官网,部署,微调教程,推理,训练,单机多卡
简介
Efficient fine-tuning对于将大型语言模型(LLMs)调整到下游任务中至关重要。然而要在不同模型上实现这些方法需要付出相当大的努力。LLaMA-Factory是一个统一的框架,集成了一套先进的高效训练方法。它允许用户通过内置的Web UI灵活定制100多个LLMs的微调,而无需编写代码。LlamaFactory 是一个封装比较完善的LLM微调工具,它能够帮助用户快速地训练和微调大多数LLM模型。LlamaFactory主要通过Trainer类来实现训练流程,通过设置数据集、模型选型、训练类型、微调超参、模型保存,以及训练状态监控等信息,来开启训练。
llama factory官网: https://github.com/hiyouga/LLaMA-Factory
论文地址: https://arxiv.org/abs/2403.13372
LlamaFactory基于PEFT和TRL进行二次封装,从而可以快速开始SFT和RLHF微调。同时,引入GaLore和Unsloth等方案,能降低训练显存占用。
主要功能和特色
LLaMA-Factory 是一个国内北航开源的低代码大模型训练框架,专为大型语言模型(LLMs)的微调而设计。其主要功能特点包括:
- 高效且低成本:能够高效且低成本地支持对100多个模型进行微调,简化了模型微调的过程。
- 易于访问和使用:提供了友好的用户界面,用户无需编写代码即可轻松定制和微调LLMs。
- 丰富的数据集选项:支持多个数据集选项,用户可以选择自带的数据集或自己生成数据集进行微调。
- 多样化的算法支持:集成了业界最广泛使用的微调方法和优化技术,如LoRA、GaLore、DoRA等。
- 实时监控和评估:支持集成TensorBoard、VanDB和MLflow等监控工具,便于实时监控训练过程和评估模型性能。
- 极速推理:提供了基于vLLM的OpenAI风格API、浏览器界面和命令行接口,实现快速推理。
部署安装教程
LLaMA-Factory 的安装相对简单,以下是一般的安装步骤(以conda环境为例):
- 创建Python环境:
使用conda创建一个新的Python环境,并安装必要的依赖库,如PyTorch等。 - 克隆LLaMA-Factory项目:
通过Git克隆LLaMA-Factory的源代码到本地。git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
- 安装依赖:
进入项目目录,安装必要的Python依赖库。cd LLaMA-Factory pip install -e ".[torch,metrics]"
- 启动服务:
在项目目录中运行python src/train_web.py
启动服务,然后在浏览器中访问相应的端口(默认可能是7860)以访问训练界面。
支持的算法
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 显存消耗。
GPU现存消耗:
五、微调例子
以下是一个使用LLaMA-Factory对Yuan2.0模型进行LoRA微调的例子:
- 准备数据集:
准备自定义的数据集,可以是JSON格式,包含指令、输入和输出等信息。 - 注册数据集:
在LLaMA-Factory的数据集管理文件中注册自定义的数据集。 - 启动Web UI服务:
运行python src/train_web.py
启动Web UI服务,并在浏览器中打开相应的地址。 - 配置微调参数:
在Web界面上配置模型路径、微调方法(选择LoRA)、数据集等参数。 -
开始微调:
点击“开始”按钮开始微调过程,可以在界面中查看训练进度和损失函数等信息。 -
评估模型:
微调完成后,使用LLaMA-Factory提供的评估工具对模型进行评估,检查模型性能是否有所提升。
通过以上步骤,用户可以利用LLaMA-Factory轻松实现LLMs的微调,提升模型在特定任务上的性能。
更多微调
- https://github.com/hiyouga/LLaMA-Factory/blob/main/examples/README_zh.md
1.2 特性
- • 各种模型: LLaMA, LLaVA, Mistral, Mixtral-MoE, Qwen, Yi, Gemma, Baichuan, ChatGLM, Phi, etc.
- • 集成训练方法: (Continuous) pre-training, (multimodal) supervised fine-tuning, reward modeling, PPO, DPO and ORPO.
- • Scalable resources: 32-bit full-tuning, 16-bit freeze-tuning, 16-bit LoRA and 2/4/8-bit QLoRA via AQLM/AWQ/GPTQ/LLM.int8.
- • Advanced algorithms: GaLore, BAdam, DoRA, LongLoRA, LLaMA Pro, Mixture-of-Depths, LoRA+, LoftQ and Agent tuning.
- • 实用tricks: FlashAttention-2, Unsloth, RoPE scaling, NEFTune and rsLoRA.
- • 实验监控:LlamaBoard, TensorBoard, Wandb, MLflow, etc.
- • 推理集成: OpenAI-style API, Gradio UI and CLI with vLLM worker.
LlamaFactory支持单机单卡,同时整合了accelerate和deepseed的单机多卡、多机多卡分布式训练。
支持的模型
模型名 模型大小 Template
Baichuan2[1] 7B/13B baichuan2
BLOOM[2] 560M/1.1B/1.7B/3B/7.1B/176B –
BLOOMZ[3] 560M/1.1B/1.7B/3B/7.1B/176B –
ChatGLM3[4] 6B chatglm3
Command-R[5] 35B/104B cohere
DeepSeek (MoE)[6] 7B/16B/67B/236B deepseek
Falcon[7] 7B/11B/40B/180B falcon
Gemma/CodeGemma[8] 2B/7B gemma
GLM4[9] 9B glm4
InternLM2[10] 7B/20B intern2
LLaMA[11] 7B/13B/33B/65B –
LLaMA-2[12] 7B/13B/70B llama2
LLaMA-3[13] 8B/70B llama3
LLaVA-1.5[14] 7B/13B vicuna
Mistral/Mixtral[15] 7B/8x7B/8x22B mistral
OLMo[16] 1B/7B –
PaliGemma[17] 3B gemma
Phi-1.5/2[18] 1.3B/2.7B –
Phi-3[19] 4B/7B/14B phi
Qwen[20] 1.8B/7B/14B/72B qwen
Qwen1.5 (Code/MoE)[21] 0.5B/1.8B/4B/7B/14B/32B/72B/110B qwen
Qwen2 (MoE)[22] 0.5B/1.5B/7B/57B/72B qwen
StarCoder2[23] 3B/7B/15B –
XVERSE[24] 7B/13B/65B xverse
Yi (1/1.5)[25] 6B/9B/34B yi
Yi-VL[26] 6B/34B yi_vl
Yuan[27] 2B/51B/102B yuan
预训练数据集
- • Wiki Demo (en)[28]
- • RefinedWeb (en)[29]
- • RedPajama V2 (en)[30]
- • Wikipedia (en)[31]
- • Wikipedia (zh)[32]
- • Pile (en)[33]
- • SkyPile (zh)[34]
- • FineWeb (en)[35]
- • FineWeb-Edu (en)[36]
- • The Stack (en)[37]
- • StarCoder (en)[38]
指令微调数据集
- • Identity (en&zh)[39]
- • Stanford Alpaca (en)[40]
- • Stanford Alpaca (zh)[41]
- • Alpaca GPT4 (en&zh)[42]
- • Glaive Function Calling V2 (en&zh)[43]
- • LIMA (en)[44]
- • Guanaco Dataset (multilingual)[45]
- • BELLE 2M (zh)[46]
- • BELLE 1M (zh)[47]
- • BELLE 0.5M (zh)[48]
- • BELLE Dialogue 0.4M (zh)[49]
- • BELLE School Math 0.25M (zh)[50]
- • BELLE Multiturn Chat 0.8M (zh)[51]
- • UltraChat (en)[52]
- • OpenPlatypus (en)[53]
- • CodeAlpaca 20k (en)[54]
- • Alpaca CoT (multilingual)[55]
- • OpenOrca (en)[56]
- • SlimOrca (en)[57]
- • MathInstruct (en)[58]
- • Firefly 1.1M (zh)[59]
- • Wiki QA (en)[60]
- • Web QA (zh)[61]
- • WebNovel (zh)[62]
- • Nectar (en)[63]
- • deepctrl (en&zh)[64]
- • Advertise Generating (zh)[65]
- • ShareGPT Hyperfiltered (en)[66]
- • ShareGPT4 (en&zh)[67]
- • UltraChat 200k (en)[68]
- • AgentInstruct (en)[69]
- • LMSYS Chat 1M (en)[70]
- • Evol Instruct V2 (en)[71]
- • Cosmopedia (en)[72]
- • STEM (zh)[73]
- • Ruozhiba (zh)[74]
- • LLaVA mixed (en&zh)[75]
- • Open Assistant (de)[76]
- • Dolly 15k (de)[77]
- • Alpaca GPT4 (de)[78]
- • OpenSchnabeltier (de)[79]
- • Evol Instruct (de)[80]
- • Dolphin (de)[81]
- • Booksum (de)[82]
- • Airoboros (de)[83]
- • Ultrachat (de)[84]
偏好数据集
- • DPO mixed (en&zh)[85]
- • UltraFeedback (en)[86]
- • Orca DPO Pairs (en)[87]
- • HH-RLHF (en)[88]
- • Nectar (en)[89]
- • Orca DPO (de)[90]
- • KTO mixed (en)[91]
数据评估
本站ai导航提供的llama factory都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由ai导航实际控制,在2024年7月24日 下午4:54收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,ai导航不承担任何责任。