成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

LLaMA-Factory 微調(diào)與部署詳細(xì)流程:從入門到實(shí)踐

發(fā)布于 2025-1-8 13:31
瀏覽
0收藏

介紹

時(shí)隔已久的 llama-factory 系列教程更新了。本篇文章是第七篇,之前的六篇,大家酌情選看即可。因?yàn)閘lama-factory進(jìn)行了更新,我前面幾篇文章的實(shí)現(xiàn)部分,都不能直接用了。

我將為大家介紹如何使用 llama-factory Lora 微調(diào)模型、部署模型、使用python調(diào)用API。

llama-factory 安裝

首先建議大家閱讀一遍兩份不錯(cuò)的文章:

  • 官方readme: https://github.com/hiyouga/LLaMA-Factory/blob/v0.9.1/README_zh.md
  • 官方推薦的知乎教程:https://zhuanlan.zhihu.com/p/695287607
  • 官方文檔: https://llamafactory.readthedocs.io/zh-cn/latest/

我這篇博客的與他們的不同在于,我按照我做實(shí)驗(yàn)的流程,給大家演示一遍。方便大家一看就懂,心里對(duì)大致的流程有個(gè)大概。

安裝包

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

LLaMA-Factory 默認(rèn)是從Huggingface 下載模型,建議大家改為從國內(nèi)下載模型。

如果您在 Hugging Face 模型和數(shù)據(jù)集的下載中遇到了問題,可以通過下述方法使用魔搭社區(qū)。

export USE_MODELSCOPE_HUB=1Windows 使用set USE_MODELSCOPE_HUB=1將 model_name_or_path 設(shè)置為模型 ID 來加載對(duì)應(yīng)的模型。在魔搭社區(qū)查看所有可用的模型,例如 LLM-Research/Meta-Llama-3-8B-Instruct。

您也可以通過下述方法,使用魔樂社區(qū)下載數(shù)據(jù)集和模型。

export USE_OPENMIND_HUB=1Windows 使用set USE_OPENMIND_HUB=1將 model_name_or_path 設(shè)置為模型 ID 來加載對(duì)應(yīng)的模型。在魔樂社區(qū)查看所有可用的模型,例如 TeleAI/TeleChat-7B-pt。

下載模型

我喜歡使用可視化的網(wǎng)站頁面下載模型權(quán)重。

llamafactory-cli webui

LLaMA-Factory 微調(diào)與部署詳細(xì)流程:從入門到實(shí)踐-AI.x社區(qū)

啟動(dòng)服務(wù)之后,進(jìn)入主機(jī)對(duì)應(yīng)的 ip 和端口就可以看到網(wǎng)頁。

LLaMA-Factory 微調(diào)與部署詳細(xì)流程:從入門到實(shí)踐-AI.x社區(qū)

在 Model name 下拉框中挑選模型,選中之后,再點(diǎn)擊下述的加載模型。如果模型權(quán)重沒有下載,則會(huì)進(jìn)行下載,然后加載進(jìn)顯存中。在下方就會(huì)出現(xiàn)對(duì)話框就可以與模型進(jìn)行對(duì)話了。

LLaMA-Factory 微調(diào)與部署詳細(xì)流程:從入門到實(shí)踐-AI.x社區(qū)

微調(diào)模型

數(shù)據(jù)集

點(diǎn)擊 Train 后, 就可以看到當(dāng)前可用的很多數(shù)據(jù)集。

LLaMA-Factory 微調(diào)與部署詳細(xì)流程:從入門到實(shí)踐-AI.x社區(qū)

在選中數(shù)據(jù)集后,點(diǎn)擊預(yù)覽數(shù)據(jù)集,即可看到數(shù)據(jù)集的樣例。如果我們想微調(diào)模型,也需要把數(shù)據(jù)集的樣式給整理成上述格式。

LLaMA-Factory 微調(diào)與部署詳細(xì)流程:從入門到實(shí)踐-AI.x社區(qū)

點(diǎn)擊查看關(guān)于數(shù)據(jù)集的說明:https://github.com/hiyouga/LLaMA-Factory/tree/v0.9.1/data

大家仿照alpaca_zh_demo.json的樣式準(zhǔn)備好數(shù)據(jù)集,然后在dataset_info.json完成數(shù)據(jù)集的注冊(cè)。

注冊(cè)數(shù)據(jù)集, 下圖是我在dataset_info.json注冊(cè)的guihua_ner數(shù)據(jù)集,然后就可以找到該數(shù)據(jù)集,并訓(xùn)練模型:

LLaMA-Factory 微調(diào)與部署詳細(xì)流程:從入門到實(shí)踐-AI.x社區(qū)

訓(xùn)練模型

可以直接點(diǎn)擊可視化界面的 Start 按鈕訓(xùn)練模型。也可點(diǎn)擊預(yù)覽命令查看在終端運(yùn)行的命令。

我一般不使用可視化窗口訓(xùn)練模型。我喜歡直接運(yùn)行訓(xùn)練模型的命令

LLaMA-Factory 微調(diào)與部署詳細(xì)流程:從入門到實(shí)踐-AI.x社區(qū)

llamafactory-cli train \
    --stage sft \
    --do_train True \
    --model_name_or_path qwen/Qwen2.5-7B-Instruct \
    --preprocessing_num_workers 16 \
    --finetuning_type lora \
    --template qwen \
    --flash_attn auto \
    --dataset_dir data \
    --dataset alpaca_zh_demo \
    --cutoff_len 2048 \
    --learning_rate 5e-05 \
    --num_train_epochs 3.0 \
    --max_samples 100000 \
    --per_device_train_batch_size 2 \
    --gradient_accumulation_steps 8 \
    --lr_scheduler_type cosine \
    --max_grad_norm 1.0 \
    --logging_steps 5 \
    --save_steps 100 \
    --warmup_steps 0 \
    --packing False \
    --report_to none \
    --output_dir saves/Qwen2.5-7B-Instruct/lora/train_2024-11-25-09-56-29 \
    --bf16 True \
    --plot_loss True \
    --ddp_timeout 180000000 \
    --optim adamw_torch \
    --lora_rank 8 \
    --lora_alpha 16 \
    --lora_dropout 0 \
    --lora_target all

除了使用上述的命令行方式訓(xùn)練模型外,llama-factory還提供了使用 yaml 文件訓(xùn)練模型的方式。在example文件夾下可看到很多訓(xùn)練和推理的 yaml 文件,針對(duì)其中的參數(shù)就行修改,即可使用。

LLaMA-Factory 微調(diào)與部署詳細(xì)流程:從入門到實(shí)踐-AI.x社區(qū)

我以微調(diào)qwen/Qwen2.5-7B-Instruct為例:

qwen2.5-7B-ner.yaml文件內(nèi)容:

### model
model_name_or_path: qwen/Qwen2.5-7B-Instruct

### method
stage: sft
do_train: true
finetuning_type: lora
lora_target: all

### dataset
dataset: guihua_ner
template: qwen
cutoff_len: 2048
max_samples: 1000
overwrite_cache: true
preprocessing_num_workers: 16

### output
output_dir: saves/qwen2.5-7B/ner_epoch5
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true

### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 5.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000

### eval
val_size: 0.1
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500

在 llamafactory-cli train 后,填入 yaml 文件的路徑:

llamafactory-cli train config/qwen2.5-7B-ner.yaml

然后就會(huì)開始訓(xùn)練模型,最終訓(xùn)練完成的模型保存在output_dir: saves/qwen2.5-7B/ner_epoch5。

在輸出文件夾路徑中,可以找到訓(xùn)練過程的損失值變化圖片。

微調(diào)后的模型推理

在完成模型的微調(diào)后,測(cè)試一下模型的微調(diào)效果。對(duì)于微調(diào)模型推理,除原始模型和模板外,還需要指定適配器路徑 adapter_name_or_path 和微調(diào)類型 finetuning_type。

lora_vllm.yaml的文件內(nèi)容如下:

model_name_or_path: qwen/Qwen2.5-7B-Instruct
adapter_name_or_path: ../saves/qwen2.5-7B/ner_epoch5
template: qwen
finetuning_type: lora
infer_backend: vllm
vllm_enforce_eager: true

運(yùn)行下述命令,就可以看到下圖的對(duì)話窗口:

llamafactory-cli webchat lora_vllm.yaml

LLaMA-Factory 微調(diào)與部署詳細(xì)流程:從入門到實(shí)踐-AI.x社區(qū)

根據(jù)上圖命名實(shí)體識(shí)別的輸出,可以發(fā)現(xiàn)微調(diào)模型確實(shí)有效果。

除了網(wǎng)頁聊天的部署之外,還可通過下述多種方式進(jìn)行部署:

# llamafactory-cli chat xxx.yaml
# llamafactory-cli webchat xxx.yaml
# API_PORT=8000 llamafactory-cli api xxx.yaml

本文轉(zhuǎn)載自 ??AI悠閑區(qū)??,作者: jieshenai

已于2025-1-8 13:47:02修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
主站蜘蛛池模板: 国产视频第一页 | 天天天天操| 国产一区二区在线播放 | 真人毛片 | 色成人免费网站 | 国产激情视频网站 | 欧美精三区欧美精三区 | 伊人久久精品一区二区三区 | 欧美精品在线一区 | 91久久综合亚洲鲁鲁五月天 | 国产欧美精品一区二区色综合朱莉 | 黄色片网站在线观看 | 国产精品免费播放 | 亚洲人久久 | 国产激情 | 久久久妇女国产精品影视 | 亚洲综合色视频在线观看 | 久久久久久国产精品免费免费男同 | 亚洲免费视频播放 | 精品一二三 | 亚洲精品国产一区 | 日韩精品免费在线 | 久久青视频 | 国产资源视频 | 美日韩精品 | 久久免费精品视频 | 国产精品二区三区 | 欧美一级片在线看 | 久久国产香蕉 | 欧美猛交| 色狠狠一区 | 天堂一区在线 | 久久这里有精品 | 日韩精品一区在线 | 国产日韩欧美中文字幕 | 久久亚洲精品视频 | 综合久久av | 欧美一级在线观看 | 精品久久久久一区 | 国产精品免费一区二区三区四区 | 国产成人一区二区 |