ai工具集2

llama factory

llama factory,部署,推理,訓练,微调教程單机多卡,100+语言模型的統一高效微调框架

标签:ai工具集2llama factory llama factory官网 llama factory微调 llama factory推理 llama factory訓练 llama factory部署 llama_factory

llama factory官网,部署,推理,訓练,微调教程單机多卡,100+语言模型的統一高效微调框架

简介

Efficient fine-tuning對于將大型语言模型(LLMs)调整到下遊任務中至關重要。然而要在不同模型上實现这些方法需要付出相当大的努力。LLaMA-Factory是一个統一的框架,集成了一套先进的高效訓练方法。它允許用户透過内置的Web UI靈活定制100多个LLMs的微调,而無需编寫代碼。LlamaFactory 是一个封装比較完善的LLM微调工具,它能够帮助用户快速地訓练和微调大多數LLM模型。LlamaFactory主要透過Trainer类来實现訓练流程,透過設置資料集、模型選型、訓练类型、微调超参、模型保存,以及訓练状態监控等信息,来開启訓练。

llama factory官网: https://github.com/hiyouga/LLaMA-Factory

llama factory

来自北航和北大的論文“LLAMA-FACTORY: Unified Efficient Fine-Tuning of 100+ Language Models”。

高效的微调對于將大语言模型 (LLM) 适应下遊任務至關重要。然而,在不同模型上實施这些方法需要付出不小的努力。LLAMA-FACTORY是一个集成一套高效訓练方法的統一框架。它允許用户透過内置的 Web UI LLAMA-BOARD 靈活地客製化 100 多个 LLM 的微调,無需编碼。經验验證该框架在语言建模和文本生成任務上的效率和有效性。

開源發布在 GitHub – hiyouga/LLaMA-Factory: Unify Efficient Fine-Tuning of 100+ LLMs


LLAMA-FACTORY是一个使 LLM 微调民主化的框架。它透過可擴展的模块統一了各种高效的微调方法,从而能够以最少的資源和高吞吐量對數百个 LLM 进行微调。此外,它还简化了常用的訓练方法,包括生成式预訓练(Radford,2018)、监督微调 (SFT)(Wei,2022)、人类反馈中强化学習 (RLHF)(Ouyang,2022)和直接偏好優化 (DPO)(Rafailov,2023)。用户可以利用命令行或 Web 界面以最少或無需编碼工作量来定制和微调LLM。

llama factory

LlamaFactory基于PEFT和TRL进行二次封装,从而可以快速開始SFT和RLHF微调。同时,引入GaLore和Unsloth等方案,能降低訓练顯存占用。

主要功能和特色

LLaMA-Factory 是一个国内北航開源的低代碼大模型訓练框架,專為大型语言模型(LLMs)的微调而設计。其主要功能特点包括:

  1. 高效且低成本:能够高效且低成本地支持對100多个模型进行微调,简化了模型微调的过程。
  2. 易于訪問和使用:提供了友好的用户界面,用户無需编寫代碼即可轻松定制和微调LLMs。
  3. 丰富的資料集選项:支持多个資料集選项,用户可以選择自帶的資料集或自己生成資料集进行微调。
  4. 多样化的算法支持:集成了業界最广泛使用的微调方法和優化技術,如LoRA、GaLore、DoRA等。
  5. 實时监控和評估:支持集成TensorBoard、VanDB和MLflow等监控工具,便于實时监控訓练过程和評估模型性能。
  6. 极速推理:提供了基于vLLM的OpenAI風格API、浏览器界面和命令行接口,實现快速推理。

部署安装教程

LLaMA-Factory 的安装相對简單,以下是一般的安装步驟(以conda環境為例):

  1. 創建Python環境:
    使用conda創建一个新的Python環境,并安装必要的依賴库,如PyTorch等。
  2. 克隆LLaMA-Factory專案:
    透過Git克隆LLaMA-Factory的源代碼到本地。

    git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
    
  3. 安装依賴:
    进入專案目錄,安装必要的Python依賴库。

    
     cd LLaMA-Factory
     pip install -e ".[torch,metrics]"
    
  4. 启动服務:
    在專案目錄中運行python src/train_web.py启动服務,然后在浏览器中訪問相应的端口(默认可能是7860)以訪問訓练界面。
    llama factory

支持的算法

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 顯存消耗。

llama factory

GPU现存消耗:

llama factory

五、微调例子

以下是一个使用LLaMA-Factory對Yuan2.0模型进行LoRA微调的例子:

  1. 准備資料集:
    准備客製化的資料集,可以是JSON格式,包含指令、输入和输出等信息。
  2. 注册資料集:
    在LLaMA-Factory的資料集管理文件中注册客製化的資料集。
  3. 启动Web UI服務:
    運行python src/train_web.py启动Web UI服務,并在浏览器中打開相应的地址。
  4. 配置微调参數:
    在Web界面上配置模型路徑、微调方法(選择LoRA)、資料集等参數。
  5. 開始微调:
    点擊“開始”按鈕開始微调过程,可以在界面中查看訓练进度和損失函數等信息。

  6. 評估模型:
    微调完成后,使用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]

LLaMA-Factory是基于LLaMA模型(由Meta AI開發的大型语言模型)的一个擴展,旨在提供更靈活的模型訓练和微调。本文介绍了一种在Windows環境下使用LLaMA-Factory进行模型訓练的一般步驟:

部署教程

一、系統要求

  1. 硬體要求:确保你的计算机有足够的CPU和GPU資源。NVIDIA GPU通常需要支持CUDA。
  2. 軟體要求:安装以下軟體:
    • Python(推荐使用Anaconda環境管理)
    • Git
    • CUDA(如果使用NVIDIA GPU)
    • cuDNN(针對CUDA的深度学習库)

二、安装前的准備

  1. 安装Anaconda
    • 訪問Anaconda官网,下载并安装适合Windows系統的Anaconda版本。
    • 安装完成后,打開Anaconda Prompt。
  2. 創建新的conda環境

    conda create -n llama-factory python=3.8
    conda activate llama-factory
    
  3. 安装Git
    • 如果还没有安装Git,可以从Git官网下载并安装。
  4. 安装CUDA和cuDNN(如果使用NVIDIA GPU):
    • 訪問NVIDIA官网下载CUDA Toolkit。
    • 訪問NVIDIA cuDNN官网下载對应的cuDNN库。
    • 安装完成后,將CUDA和cuDNN的路徑添加到系統環境變數。

三、安装LLaMA-Factory

  1. 克隆LLaMA-Factory仓库

    git clone https://github.com/your-username/LLaMA-Factory.git
    cd LLaMA-Factory
    
  2. 安装依賴

    pip install -r requirements.txt
    
    • 使用pip安装所需的Python库。

四、准備資料集

    1. 資料集格式
      • 确保你的資料集格式符合LLaMA-Factory的要求。通常資料集需要是文本文件,每行一个样本。
    2. 資料集位置
      • 將資料集放置在合适的位置,例如data/train.txt

五、配置訓练参數

  1. 编輯配置文件
    • 在LLaMA-Factory目錄中找到配置文件模板,例如config_template.yaml
    • 复制模板并重命名為your_config.yaml
    • 编輯your_config.yaml,設置資料路徑、模型参數、優化器参數等。

六、開始訓练模型

  1. 启动訓练

    python train.py --config your_config.yaml
    
    • 使用以下命令開始訓练模型:

七、监控訓练过程

  • 在訓练过程中,你可以透過以下方式监控进度:
    • 查看控制台输出。
    • 查看日志文件,通常是train.log

八、故障排除

  • 如果遇到错誤,可以按照以下步驟进行故障排除:
    • 检查错誤信息:仔細阅讀控制台输出的错誤信息。
    • 查看日志文件:日志文件可能包含更详細的错誤信息。
    • 搜索解决方案:使用搜索引擎查找错誤信息,看是否有其他用户遇到过类似問题。
    • 检查資料集:确保資料集格式正确,没有損坏的文件。
    • 调整資源分配:如果資源不足,尝試減少批量大小或模型大小。

九、注意事项

  • 版本兼容性:确保所有安装的库和工具的版本都是兼容的。
  • 系統權限:在Windows上,某些操作可能需要管理员權限。
  • 備份配置:在開始訓练之前,備份你的配置文件。

数据评估

llama factory浏览人数已经达到76,如你需要查询该站的相关权重信息,可以点击"5118数据""爱站数据""Chinaz数据"进入;以目前的网站数据参考,建议大家请以爱站数据为准,更多网站价值评估因素如:llama factory的访问速度、搜索引擎收录以及索引量、用户体验等;当然要评估一个站的价值,最主要还是需要根据您自身的需求以及需要,一些确切的数据则需要找llama factory的站长进行洽谈提供。如该站的IP、PV、跳出率等!

关于llama factory特别声明

本站快摸魚導航提供的llama factory都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由快摸魚導航实际控制,在2024年7月24日 下午5:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,快摸魚導航不承担任何责任。

相关导航

暂无评论

暂无评论...