MiniGPT4系列之一部署篇:在RTX-3090 Ubuntu服務(wù)器部署步驟詳解_seaside2003的博客-CSDN博客
MiniGPT4系列之二推理篇命令行方式:在RTX-3090 Ubuntu服務(wù)器推理詳解_seaside2003的博客-CSDN博客
MiniGPT4系列之三模型推理 (Web UI):在RTX-3090 Ubuntu服務(wù)器推理_seaside2003的博客-CSDN博客
主要參考知乎帖子:
MiniGPT-4 本地部署 RTX 3090 - 知乎
MiniGPT-4部署比麻煩,首先需要獲取LLaMA權(quán)重,并結(jié)合Vicuna的bitwise XOR增量文件完成Vicuna模型權(quán)重生成,最后準(zhǔn)備好預(yù)訓(xùn)練的MiniGPT-4進行模型部署。為了便于理解,我畫了個流程框圖:
系統(tǒng)版本:Ubuntu 20.04
我的硬件設(shè)備:Nvidia GeForce RTX-3090,顯存24G
1、準(zhǔn)備環(huán)境
克隆MiniGPT-4庫,準(zhǔn)備environment.yml中所需的環(huán)境。
git clone https://github.com/Vision-CAIR/MiniGPT-4.git
cd MiniGPT-4
conda env create -f environment.yml
conda activate minigpt4
……
2、LLaMA權(quán)重獲取
首先我們需要從huggingface下載模型權(quán)重,pip安裝huggingface_hub。
pip install huggingface_hub
由于顯卡限制,我選用了參數(shù)量最小的模型?llama-7b-hf,huggingface下載鏈接如下:
LLaMA:
decapoda-research (Decapoda Research)
本文選擇:decapoda-research/llama-7b-hf
decapoda-research/llama-7b-hf at main
注意:文件需要全部下載,原文中是用snapshot_download下載的,我直接網(wǎng)頁版下載,因為git容易斷,還可能出現(xiàn)checkout失敗,可以手動下載。
3、Vicuna增量文件
選用模型vicuna-7b-delta-v1.1,huggingface下載鏈接如下:
lmsys (Large Model Systems Organization)
lmsys/vicuna-7b-delta-v1.1 at main
注:vicuna權(quán)重分為v0和v1.1兩個版本,MiniGPT-4作者采用的是v0,當(dāng)使用v0版本時,生成vicuna權(quán)重出錯(bug:tensor尺度不一致),而換為v1.1版本即可解決。我之前試用過v0這個版本,沒有搞成功,不是上述原因,待查,所以建議選用v1.1版本。
4、Vicuna權(quán)重生成
克隆FastChat庫:
git clone https://github.com/lm-sys/FastChat.git
GitHub - lm-sys/FastChat: An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and FastChat-T5.
在終端輸入以下命令:
python3 -m fastchat.model.apply_delta --base-model-path /home/train/mycharm/MiniGPT-4/model/llama-7b-hf/ --target-model-path /home/train/mycharm/new/vicuna --delta /home/train/mycharm/new/lmsys/lmsysvicuna-7b-delta-v1.1 --low-cpu-mem
說明:
base-model-path是llama原始模型權(quán)重,7b參數(shù)的,target-model-path 是要生成的vicuna權(quán)重,delta是vicuna delta權(quán)重,低CPU內(nèi)存需加入--low-cpu-mem,可以把大的權(quán)重文件分割成多個小份,并使用磁盤作為臨時存儲??梢允狗逯祪?nèi)存保持在16GB以下。不然無法載入vicuna增量文件,CPU內(nèi)存占滿,程序直接被kill,綠色表示已有的vicuna-7b-delta權(quán)重。
這行命令對初學(xué)者有些迷惑:簡單說就是利用llama的權(quán)重,結(jié)合vicuna的delta權(quán)重,然后生成vicuna權(quán)重,根源在于meta發(fā)布的llama權(quán)重沒有正式公開導(dǎo)致,能下載只是網(wǎng)絡(luò)行為。
運行結(jié)果如下:
新生成的vicuna的權(quán)重在設(shè)定的目錄中:
5、MiniGPT-4啟動
本文采用的權(quán)重為原作者的checkpoints,prerained_minigpt4_7b.pth,并放在生成的vicuna權(quán)重路徑下,目錄一定要放對。
下載鏈接:
https://link.zhihu.com/?target=https%3A//drive.google.com/file/d/1RY9jV0dyqLX-o38LrumkKRh6Jtaop58R/view
此處要用谷歌,下載其他版本應(yīng)該也可以,我沒試。
下載完成后放到上述剛生成的vicuna目錄下:
修改配置文件模型權(quán)重存放的目錄:
下面這兩步很關(guān)鍵,要修改權(quán)重文件的目錄,要根據(jù)自己實際情況修改:
1)、修改MiniGPT-4/minigpt4/configs/models/minigpt4.yaml 文件中l(wèi)lama_model的值為vicuna-7b的路徑:比如,我的在/home/train/mycharm/new/vicuna/在這個目錄下,原文件在16行。
2)、修改MiniGPT-4/eval_configs/minigpt4_eval.yaml,將ckpt的值改成prerained_minigpt4_7b.pth的路徑,原文件在11行。
比如我的在這個目錄:/home/train/mycharm/new/vicuna/prerained_minigpt4_7b.pth
6、啟動MiniGPT-4 demo
進入到MiniGPT-4目錄:
python demo.py --cfg-path eval_configs/minigpt4_eval.yaml --gpu-id 0
執(zhí)行成功。
7、其他說明
里面有個警告,疑似pytorch(2.0.1)和torchvision(0.13.1)版本不一致導(dǎo)致,不影響此處功能,參照以下帖子:
Failed to load image Python extension: libtorch_cuda_cu.so_牧羊女說的博客-CSDN博客
版本對照關(guān)系參照,可以看出torch 2.0對應(yīng)torchvision版本應(yīng)為:0.15而我的版本是0.13
GitHub - pytorch/vision: Datasets, Transforms and Models specific to Computer Vision
下面是原作者的運行圖,好像也有類似問題:
執(zhí)行以下安裝命令(先卸載老的版本):
在下述網(wǎng)站選擇好配置后生成安裝命令:
Start Locally | PyTorch
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
重新安裝再次執(zhí)行,警告消失,成功。
查看版本與之對應(yīng):
Conda版本過低問題:
此處有個小問題,如果conda 版本太低不能執(zhí)行以上命令,先升級conda,但可能存在執(zhí)行conda update conda后,conda 版本沒有變化,需要執(zhí)行以下命令升級conda:文章來源:http://www.zghlxwxcb.cn/news/detail-554291.html
conda update -n base -c defaults conda --repodata-fn=repodata.json
I got update warning message but unable to update · Issue #12519 · conda/conda · GitHub文章來源地址http://www.zghlxwxcb.cn/news/detail-554291.html
到了這里,關(guān)于MiniGPT4 在RTX-3090 Ubuntu服務(wù)器部署步驟詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!