国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LLMs:LLaMA Efficient Tuning(一款可高效微調(diào)【全參數(shù)/LoRA/QLoRA】主流大模型【ChatGLM2/LLaMA2/Baichuan等】的高效工具【預(yù)訓(xùn)練+指令監(jiān)督微調(diào)+

這篇具有很好參考價值的文章主要介紹了LLMs:LLaMA Efficient Tuning(一款可高效微調(diào)【全參數(shù)/LoRA/QLoRA】主流大模型【ChatGLM2/LLaMA2/Baichuan等】的高效工具【預(yù)訓(xùn)練+指令監(jiān)督微調(diào)+。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

LLMs:LLaMA Efficient Tuning(一款可高效微調(diào)【全參數(shù)/LoRA/QLoRA】主流大模型【ChatGLM-2/LLaMA-2/Baichuan等】的高效工具【預(yù)訓(xùn)練+指令監(jiān)督微調(diào)+獎勵模型訓(xùn)練+PPO 訓(xùn)練+DPO 訓(xùn)練】)的簡介、安裝、使用方法之詳細攻略

目錄

相關(guān)文章

LLMs之ChatGLM:ChatGLM Efficient Tuning(一款高效微調(diào)ChatGLM-6B/ChatGLM2-6B的工具【LoRA/P-Tuning V2/Freeze Tuning/全量微調(diào)】)的簡介、安裝、使用方法之詳細攻略

LLMs:LLaMA Efficient Tuning(一款可高效微調(diào)【全參數(shù)/LoRA/QLoRA】主流大模型【ChatGLM2/LLaMA2/Baichuan等】的高效工具【預(yù)訓(xùn)練+指令監(jiān)督微調(diào)+獎勵模型訓(xùn)練+PPO 訓(xùn)練+DPO 訓(xùn)練】)的簡介、安裝、使用方法之詳細攻略

LLaMA Efficient Tuning的簡介

1、支持的模型

2、支持的訓(xùn)練方法

3、可使用的數(shù)據(jù)集:用于預(yù)訓(xùn)練、用于指令監(jiān)督微調(diào)、用于獎勵模型或 DPO訓(xùn)練

LLaMA Efficient Tuning的的安裝

1、配置環(huán)境依賴

(1)、Python依賴

2、環(huán)境搭建

3、數(shù)據(jù)準備:構(gòu)建自定義數(shù)據(jù)集

4、微調(diào)/測試

(1)、瀏覽器一鍵微調(diào)/測試

(2)、單 GPU 訓(xùn)練:預(yù)訓(xùn)練、指令監(jiān)督微調(diào)、獎勵模型訓(xùn)練、PPO 訓(xùn)練、DPO 訓(xùn)練

(3)、多 GPU 分布式訓(xùn)練:T1、使用 Huggingface Accelerate、T2、使用 DeepSpeed

5、多種推理方式:API、CLI、GUI

6、指標評估、模型預(yù)測

7、導(dǎo)出微調(diào)模型

LLaMA Efficient Tuning的使用方法


相關(guān)文章

LLMs之ChatGLM:ChatGLM Efficient Tuning(一款高效微調(diào)ChatGLM-6B/ChatGLM2-6B的工具【LoRA/P-Tuning V2/Freeze Tuning/全量微調(diào)】)的簡介、安裝、使用方法之詳細攻略

https://yunyaniu.blog.csdn.net/article/details/131427931

LLMs:LLaMA Efficient Tuning(一款可高效微調(diào)【全參數(shù)/LoRA/QLoRA】主流大模型【ChatGLM2/LLaMA2/Baichuan等】的高效工具【預(yù)訓(xùn)練+指令監(jiān)督微調(diào)+獎勵模型訓(xùn)練+PPO 訓(xùn)練+DPO 訓(xùn)練】)的簡介、安裝、使用方法之詳細攻略

https://yunyaniu.blog.csdn.net/article/details/132012771

LLaMA Efficient Tuning的簡介

? ? ? 2023年6月發(fā)布的LLaMA Efficient Tuning,它是一款可高效微調(diào)【全參數(shù)/LoRA/QLoRA】主流大模型【ChatGLM2/LLaMA2/Baichuan等】的高效工具,包括預(yù)訓(xùn)練、指令監(jiān)督微調(diào)、獎勵模型訓(xùn)練、PPO 訓(xùn)練、DPO 訓(xùn)練等功能。目前該項目仍在持續(xù)更新。

官方地址
GitHub - hiyouga/LLaMA-Efficient-Tuning: Easy-to-use LLM fine-tuning framework (LLaMA-2, BLOOM, Falcon, Baichuan, Qwen, ChatGLM2)

1、支持的模型

模型名 模型大小 默認模塊 Template
LLaMA 7B/13B/33B/65B q_proj,v_proj -
LLaMA-2 7B/13B/70B q_proj,v_proj llama2
BLOOM 560M/1.1B/1.7B/3B/7.1B/176B query_key_value -
BLOOMZ 560M/1.1B/1.7B/3B/7.1B/176B query_key_value -
Falcon 7B/40B query_key_value -
Baichuan 7B/13B W_pack baichuan
InternLM 7B q_proj,v_proj intern
Qwen 7B c_attn chatml
XVERSE 13B q_proj,v_proj xverse
ChatGLM2 6B query_key_value chatglm2
  • 默認模塊是?--lora_target?參數(shù)的部分可選項。請使用?python src/train_bash.py -h?查看全部可選項。
  • 對于所有“基座”(Base)模型,--template?參數(shù)可以是?default,?alpaca,?vicuna?等任意值。但“對話”(Chat)模型請務(wù)必使用對應(yīng)的模板。

2、支持的訓(xùn)練方法

方法 全參數(shù)訓(xùn)練 部分參數(shù)訓(xùn)練 LoRA QLoRA
預(yù)訓(xùn)練 ? ? ? ?
指令監(jiān)督微調(diào) ? ? ? ?
獎勵模型訓(xùn)練 ? ?
PPO 訓(xùn)練 ? ?
DPO 訓(xùn)練 ? ? ?
  • 使用?--quantization_bit 4/8?參數(shù)來啟用 QLoRA 訓(xùn)練。

3、可使用的數(shù)據(jù)集:用于預(yù)訓(xùn)練、用于指令監(jiān)督微調(diào)、用于獎勵模型或 DPO訓(xùn)練

  • 用于預(yù)訓(xùn)練:
    • Wiki Demo (en)
    • RefinedWeb (en)
    • StarCoder (en)
    • Wikipedia (en)
    • Wikipedia (zh)
  • 用于指令監(jiān)督微調(diào):
    • Stanford Alpaca (en)
    • Stanford Alpaca (zh)
    • GPT-4 Generated Data (en&zh)
    • Open Assistant (multilingual)
    • Self-cognition (zh)
    • ShareGPT (zh)
    • 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)
    • Firefly 1.1M (zh)
    • LIMA (en)
    • CodeAlpaca 20k (en)
    • Alpaca CoT (multilingual)
    • Web QA (zh)
    • UltraChat (en)
    • WebNovel (zh)
  • 用于獎勵模型或 DPO 訓(xùn)練:
    • HH-RLHF (en)
    • Open Assistant (multilingual)
    • GPT-4 Generated Data (en&zh)

使用方法請參考?data/README.md?文件。

部分數(shù)據(jù)集的使用需要確認,我們推薦使用下述命令登錄您的 Hugging Face 賬戶。

pip install --upgrade huggingface_hub

huggingface-cli login

LLaMA Efficient Tuning的的安裝

1、配置環(huán)境依賴

(1)、Python依賴

Python依賴

Python 3.8+, PyTorch 1.13.1

Transformers, Datasets, Accelerate, PEFT, TRL

protobuf, cpm-kernels, sentencepiece

jieba, rouge-chinese, nltk(用于評估)

gradio, matplotlib(用于網(wǎng)頁端交互)

uvicorn, fastapi, sse-starlette(用于 API)

2、環(huán)境搭建

通用

git clone https://github.com/hiyouga/LLaMA-Efficient-Tuning.git
conda create -n llama_etuning python=3.10
conda activate llama_etuning
cd LLaMA-Efficient-Tuning
pip install -r requirements.txt

Windows平臺+QLoRA

如果要在 Windows 平臺上開啟量化 LoRA(QLoRA),需要安裝預(yù)編譯的 bitsandbytes 庫, 支持 CUDA 11.1 到 12.1.

pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.39.1-py3-none-win_amd64.whl

3、數(shù)據(jù)準備:構(gòu)建自定義數(shù)據(jù)集

關(guān)于數(shù)據(jù)集文件的格式,請參考 data/example_dataset 文件夾的內(nèi)容。構(gòu)建自定義數(shù)據(jù)集時,既可以使用單個 .json 文件,也可以使用一個數(shù)據(jù)加載腳本和多個文件。
注意:使用自定義數(shù)據(jù)集時,請更新 data/dataset_info.json 文件,該文件的格式請參考 data/README.md。

源代碼地址

https://github.com/hiyouga/LLaMA-Efficient-Tuning/blob/main/data/dataset_info.json

LLMs:LLaMA Efficient Tuning(一款可高效微調(diào)【全參數(shù)/LoRA/QLoRA】主流大模型【ChatGLM2/LLaMA2/Baichuan等】的高效工具【預(yù)訓(xùn)練+指令監(jiān)督微調(diào)+,NLP/LLMs,自然語言處理,基礎(chǔ)大模型,LLaMA2

# 定位到數(shù)據(jù)集文件目錄(data/dataset_info.json )修改對應(yīng)的配置信息
{
  "dataset_DIY": {
    "file_name": "dataset_DIY.json",
    # "file_sha1": "607f94a7f581341e59685aef32f531095232cf23"
  },

4、微調(diào)/測試

(1)、瀏覽器一鍵微調(diào)/測試

瀏覽器一鍵微調(diào)/測試

CUDA_VISIBLE_DEVICES=0 python src/train_web.py

我們極力推薦新手使用瀏覽器一體化界面,因為它還可以自動生成運行所需的命令行腳本。

目前網(wǎng)頁 UI 僅支持單卡訓(xùn)練。

(2)、單 GPU 訓(xùn)練:預(yù)訓(xùn)練、指令監(jiān)督微調(diào)、獎勵模型訓(xùn)練、PPO 訓(xùn)練、DPO 訓(xùn)練

預(yù)訓(xùn)練 預(yù)訓(xùn)練
CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
? ? --stage pt \
? ? --model_name_or_path path_to_llama_model \
? ? --do_train \
? ? --dataset wiki_demo \
? ? --template default \
? ? --finetuning_type lora \
? ? --lora_target q_proj,v_proj \
? ? --output_dir path_to_pt_checkpoint \
? ? --overwrite_cache \
? ? --per_device_train_batch_size 4 \
? ? --gradient_accumulation_steps 4 \
? ? --lr_scheduler_type cosine \
? ? --logging_steps 10 \
? ? --save_steps 1000 \
? ? --learning_rate 5e-5 \
? ? --num_train_epochs 3.0 \
? ? --plot_loss \
? ? --fp16

指令監(jiān)督微調(diào)

指令監(jiān)督微調(diào)
CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
? ? --stage sft \
? ? --model_name_or_path path_to_llama_model \
? ? --do_train \
? ? --dataset alpaca_gpt4_zh \
? ? --template default \
? ? --finetuning_type lora \
? ? --lora_target q_proj,v_proj \
? ? --output_dir path_to_sft_checkpoint \
? ? --overwrite_cache \
? ? --per_device_train_batch_size 4 \
? ? --gradient_accumulation_steps 4 \
? ? --lr_scheduler_type cosine \
? ? --logging_steps 10 \
? ? --save_steps 1000 \
? ? --learning_rate 5e-5 \
? ? --num_train_epochs 3.0 \
? ? --plot_loss \
? ? --fp16
?

獎勵模型訓(xùn)練

獎勵模型訓(xùn)練
CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
? ? --stage rm \
? ? --model_name_or_path path_to_llama_model \
? ? --do_train \
? ? --dataset comparison_gpt4_zh \
? ? --template default \
? ? --finetuning_type lora \
? ? --lora_target q_proj,v_proj \
? ? --resume_lora_training False \
? ? --checkpoint_dir path_to_sft_checkpoint \
? ? --output_dir path_to_rm_checkpoint \
? ? --per_device_train_batch_size 2 \
? ? --gradient_accumulation_steps 4 \
? ? --lr_scheduler_type cosine \
? ? --logging_steps 10 \
? ? --save_steps 1000 \
? ? --learning_rate 1e-6 \
? ? --num_train_epochs 1.0 \
? ? --plot_loss \
? ? --fp16

PPO 訓(xùn)練

PPO 訓(xùn)練
CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
? ? --stage ppo \
? ? --model_name_or_path path_to_llama_model \
? ? --do_train \
? ? --dataset alpaca_gpt4_zh \
? ? --template default \
? ? --finetuning_type lora \
? ? --lora_target q_proj,v_proj \
? ? --resume_lora_training False \
? ? --checkpoint_dir path_to_sft_checkpoint \
? ? --reward_model path_to_rm_checkpoint \
? ? --output_dir path_to_ppo_checkpoint \
? ? --per_device_train_batch_size 2 \
? ? --gradient_accumulation_steps 4 \
? ? --lr_scheduler_type cosine \
? ? --logging_steps 10 \
? ? --save_steps 1000 \
? ? --learning_rate 1e-5 \
? ? --num_train_epochs 1.0 \
? ? --plot_loss
DPO 訓(xùn)練 DPO 訓(xùn)練
CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
? ? --stage dpo \
? ? --model_name_or_path path_to_llama_model \
? ? --do_train \
? ? --dataset comparison_gpt4_zh \
? ? --template default \
? ? --finetuning_type lora \
? ? --lora_target q_proj,v_proj \
? ? --resume_lora_training False \
? ? --checkpoint_dir path_to_sft_checkpoint \
? ? --output_dir path_to_dpo_checkpoint \
? ? --per_device_train_batch_size 2 \
? ? --gradient_accumulation_steps 4 \
? ? --lr_scheduler_type cosine \
? ? --logging_steps 10 \
? ? --save_steps 1000 \
? ? --learning_rate 1e-5 \
? ? --num_train_epochs 1.0 \
? ? --plot_loss \
? ? --fp16

(3)、多 GPU 分布式訓(xùn)練:T1、使用 Huggingface Accelerate、T2、使用 DeepSpeed

T1、使用 Huggingface Accelerate

accelerate config # 首先配置分布式環(huán)境

accelerate launch src/train_bash.py # 參數(shù)同上

使用 DeepSpeed ZeRO-2 進行全參數(shù)微調(diào)的 Accelerate 配置示例

compute_environment: LOCAL_MACHINE

deepspeed_config:

??gradient_accumulation_steps: 4

??gradient_clipping: 0.5

??offload_optimizer_device: none

??offload_param_device: none

??zero3_init_flag: false

??zero_stage: 2

distributed_type: DEEPSPEED

downcast_bf16: 'no'

machine_rank: 0

main_training_function: main

mixed_precision: fp16

num_machines: 1

num_processes: 4

rdzv_backend: static

same_network: true

tpu_env: []

tpu_use_cluster: false

tpu_use_sudo: false

use_cpu: false

T2、使用 DeepSpeed

deepspeed --num_gpus 8 --master_port=9901 src/train_bash.py \

????--deepspeed ds_config.json \

????... # 參數(shù)同上

使用 DeepSpeed ZeRO-2 進行全參數(shù)微調(diào)的 DeepSpeed 配置示例

{

??"train_micro_batch_size_per_gpu": "auto",

??"gradient_accumulation_steps": "auto",

??"gradient_clipping": "auto",

??"zero_allow_untested_optimizer": true,

??"fp16": {

????"enabled": "auto",

????"loss_scale": 0,

????"initial_scale_power": 16,

????"loss_scale_window": 1000,

????"hysteresis": 2,

????"min_loss_scale": 1

??}, ?

??"zero_optimization": {

????"stage": 2,

????"allgather_partitions": true,

????"allgather_bucket_size": 5e8,

????"reduce_scatter": true,

????"reduce_bucket_size": 5e8,

????"overlap_comm": false,

????"contiguous_gradients": true

??}

}

5、多種推理方式:API、CLI、GUI

API 服務(wù)

API 服務(wù)
python src/api_demo.py \
? ? --model_name_or_path path_to_llama_model \
? ? --template default \
? ? --finetuning_type lora \
? ? --checkpoint_dir path_to_checkpoint
關(guān)于 API 文檔請見 http://localhost:8000/docs。

命令行測試

命令行測試
python src/cli_demo.py \
? ? --model_name_or_path path_to_llama_model \
? ? --template default \
? ? --finetuning_type lora \
? ? --checkpoint_dir path_to_checkpoint
?

瀏覽器測試

瀏覽器測試
python src/web_demo.py \
? ? --model_name_or_path path_to_llama_model \
? ? --template default \
? ? --finetuning_type lora \
? ? --checkpoint_dir path_to_checkpoint

6、指標評估、模型預(yù)測

指標評估

指標評估(BLEU 分數(shù)和漢語 ROUGE 分數(shù))
CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
? ? --stage sft \
? ? --model_name_or_path path_to_llama_model \
? ? --do_eval \
? ? --dataset alpaca_gpt4_zh \
? ? --template default \
? ? --finetuning_type lora \
? ? --checkpoint_dir path_to_checkpoint \
? ? --output_dir path_to_eval_result \
? ? --per_device_eval_batch_size 8 \
? ? --max_samples 100 \
? ? --predict_with_generate
我們建議在量化模型的評估中使用 --per_device_eval_batch_size=1 和 --max_target_length 128。

模型預(yù)測 模型預(yù)測
CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
? ? --stage sft \
? ? --model_name_or_path path_to_llama_model \
? ? --do_predict \
? ? --dataset alpaca_gpt4_zh \
? ? --template default \
? ? --finetuning_type lora \
? ? --checkpoint_dir path_to_checkpoint \
? ? --output_dir path_to_predict_result \
? ? --per_device_eval_batch_size 8 \
? ? --max_samples 100 \
? ? --predict_with_generate

7、導(dǎo)出微調(diào)模型

導(dǎo)出微調(diào)模型

導(dǎo)出微調(diào)后的模型
python src/export_model.py \
? ? --model_name_or_path path_to_llama_model \
? ? --template default \
? ? --finetuning_type lora \
? ? --checkpoint_dir path_to_checkpoint \
? ? --output_dir path_to_export
?

LLaMA Efficient Tuning的使用方法

更新中……文章來源地址http://www.zghlxwxcb.cn/news/detail-696788.html

到了這里,關(guān)于LLMs:LLaMA Efficient Tuning(一款可高效微調(diào)【全參數(shù)/LoRA/QLoRA】主流大模型【ChatGLM2/LLaMA2/Baichuan等】的高效工具【預(yù)訓(xùn)練+指令監(jiān)督微調(diào)+的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包