MiniGPT-4展開実戦

まとめ

chatgpt の機能の 90% に到達できると主張する Minigpt4 はオープンソースです。この記事では、例として 13B を使用して、minigpt4 をデプロイする方法を説明します。

ダウンロードコード

GitHub リンク:

https://github.com/Vision-CAIR/MiniGPT-4

ダウンロードして解凍してください。次に環境を構築します

設置環境

直接実行してenvironment.yml仮想環境を作成できます。注文の実行:

conda env create  name environment_name -f environment.yml

environment_name は仮想環境の名前を指します。
ここに画像の説明を挿入
pytorch バージョンがローカル cuda バージョンと互換性がないことが心配な場合は、手動で自分で作成できます。これは私が使用する方法です。

conda create --name gpt python=3.9

次に、適切な pytorch バージョンを見つけて、上で作成した仮想環境にインストールし、次のコマンドを実行します。

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia

次に、environment.yml の pip 部分を取り出し、新しいrequirements.txtを作成してそれを入れます。完全な内容は次のとおりです。

accelerate==0.16.0
aiohttp==3.8.4
aiosignal==1.3.1
async-timeout==4.0.2
attrs==22.2.0
bitsandbytes==0.37.0
cchardet==2.1.7
chardet==5.1.0
contourpy==1.0.7
cycler==0.11.0
filelock==3.9.0
fonttools==4.38.0
frozenlist==1.3.3
huggingface-hub==0.13.4
importlib-resources==5.12.0
kiwisolver==1.4.4
matplotlib==3.7.0
multidict==6.0.4
openai==0.27.0
packaging==23.0
psutil==5.9.4
pycocotools==2.0.6
pyparsing==3.0.9
python-dateutil==2.8.2
pyyaml==6.0
regex==2022.10.31
tokenizers==0.13.2
tqdm==4.64.1
transformers==4.28.0
timm==0.6.13
spacy==3.5.1
webdataset==0.2.48
scikit-learn==1.2.2
scipy==1.10.1
yarl==1.8.2
zipp==3.14.0
omegaconf==2.3.0
opencv-python==4.7.0.72
iopath==0.1.10
decord==0.6.0
tenacity==8.2.2
peft
pycocoevalcap
sentence-transformers
umap-learn
notebook
gradio==3.24.1
gradio-client==0.0.8
wandb

上記のバージョンに合わせて環境を構築してください。そうしないと、さまざまな奇妙な問題が発生する可能性があります。

ダウンロードモデル

vicuna モデル https://huggingface.co/lmsys
ここに画像の説明を挿入
vicuna モデルでは、v1.1 バージョンをダウンロードすることをお勧めします。新旧バージョンの寸法が一致していません。

LLaMA:https://huggingface.co/decapoda-research
ここに画像の説明を挿入

LLaMA と vicuna のモデルは同じで、13B を選択した場合は両方のモデルで 13B が使用されます。

モデル変換

モデル変換に必要なライブラリ FastChat、github リンク: https://github.com/lm-sys/FastChat
インストール方法:

git clone https://github.com/lm-sys/FastChat.git
cd FastChat
pip install --upgrade pip  # enable PEP 660 support
pip install -e .

FastChat のルートディレクトリに新しい LLAMA フォルダーを作成し、ダウンロードした llama モデルと icunb モデルを LLAMA フォルダーの下に置きます。
インストールが完了したら、次のコマンドを実行します。

python -m fastchat.model.apply_delta --base LLAMA/llama-13b-hf --target LLAMA/vicuna-13b --delta LLAMA/vicuna-13b-delta-v1.1

変換が完了しました。注: 変換は大量のメモリを消費し、マシンの構成要件は比較的高くなります。

変換が完了したら、MiniGPT4のルートディレクトリに新しいweightsフォルダを作成し、その中に変換後のモデルフォルダを置きます。

minigpt4 重み付けファイルをダウンロードする

13Bと7Bの2つがあります。

ビクーニャ 13B と一致するチェックポイント ビクーニャ 7B と一致するチェックポイント
ダウンロード ダウンロード
それらはすべて Gongle ネットワーク ディスク上にあり、無力感があり、誰かが体重ファイル (リンク: https://huggingface.co/wangrongsheng) を共有しています。

ここに画像の説明を挿入
特定のリンク:

# 13B
https://huggingface.co/wangrongsheng/MiniGPT4/tree/main
# 7B
https://huggingface.co/wangrongsheng/MiniGPT4-7B/tree/main

もちろん、変換されたモデルもあります。リンク:

# 13B
https://huggingface.co/wangrongsheng/MiniGPT-4-LLaMA/tree/main
#7B
https://huggingface.co/wangrongsheng/MiniGPT-4-LLaMA-7B/tree/main

ロンシェン社長はとても思いやりがあります!

構成

変更されたeval_configs/minigpt4_eval.yamlminigpt4 へのパス。

 ckpt: './weights/pretrained_minigpt4.pth'

ここに画像の説明を挿入
minigpt4/configs/models/minigpt4.yamlファイルを変更し、llama_model を変換されたモデル ディレクトリに変更します。

ここに画像の説明を挿入

走る

python demo.py --cfg-path eval_configs/minigpt4_eval.yaml  --gpu-id 0

ここに画像の説明を挿入

質問


RuntimeError: テンソル a (32000) のサイズは、非シングルトン次元 0 でのテンソル b (32001) のサイズと一致する必要があります。

原因:
fastchat のバージョンはモデルのバージョンと互換性がありません

解決策:
vicuna-7b-delta-v0 を vicuna-7b-delta-v1.1 バージョンに置き換えます。

バージョン1.1に変更すると変換可能になります。
注文の実行:

python -m fastchat.model.apply_delta --base LLAMA/llama-13b-hf --target LLAMA/vicuna-13b --delta LLAMA/vicuna-13b-delta-v1.1

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/m0_47867638/article/details/131196532