まとめ
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.yaml
minigpt4 へのパス。
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