MiniGPT4 シリーズ 1 の導入: RTX-3090 での導入手順の詳細な説明 Ubuntu Server_seaside2003 のブログ - CSDN ブログ
MiniGPT4 シリーズ 2 推論の章 コマンド ライン モード: RTX-3090 の詳細な推論 Ubuntu Server_seaside2003 のブログ - CSDN ブログ
MiniGPT4 シリーズ 3 モデル推論 (Web UI): RTX-3090 での推論 Ubuntu Server_seaside2003 のブログ-CSDN ブログ
主に Zhihu の投稿を参照します。
RTX 3090 の MiniGPT-4 ローカル展開 - Zhihu
MiniGPT-4 のデプロイメントは面倒です。まず、LLaMA 重みを取得し、Vicuna のビットごとの XOR インクリメンタル ファイルと結合して、Vicuna モデルの重み生成を完了する必要があります。最後に、モデルのデプロイメント用に事前トレーニングされた MiniGPT-4 を準備します。理解を容易にするために、フローチャートを描きました。
システムバージョン: Ubuntu 20.04
私のハードウェア デバイス: Nvidia GeForce RTX-3090、24G ビデオ メモリ
1.環境を準備する
MiniGPT-4ライブラリをクローンし、 environment.ymlで必要な環境を準備します。
git clone https://github.com/Vision-CAIR/MiniGPT-4.git
cd MiniGPT-4
conda env create -f environment.yml
conda activate minigpt4
……
2.LLaMA重量取得_
まず、 huggingfaceからモデルの重みをダウンロードし、 pip install Huggingface_hubを実行する必要があります。
pip install huggingface_hub
グラフィックス カードの制限により、パラメータの数が最も少ないモデル llama-7b-hfを選択しました。ハグフェイスのダウンロード リンクは次のとおりです。
ラマ:
この記事に選択: decapoda-research/llama-7b-hf
decapoda-research/llama-7b-hf (メイン)
注: すべてのファイルをダウンロードする必要があります。原文では、snapshot_downloadを使用してダウンロードしています。私は Web 版から直接ダウンロードしました。gitは壊れやすく、チェックアウトに失敗する可能性があるため、手動でダウンロードできます。
3. Vicuna増分ファイル
モデルvicuna-7b-delta-v1.1を選択すると、ハグフェイスのダウンロード リンクは次のとおりです。
メインの lmsys/vicuna-7b-delta-v1.1
注:ビキューナウェイトは2 つのバージョンに分かれています: v0とv1.1 . MiniGPT-4の作者はv0を使用しています. v0バージョンを使用すると、ビキューナウェイトの生成でエラーが発生します(バグ:テンソルスケールが矛盾しています)。v1.1バージョンを使用していますが、解決できます。以前にv0バージョンを試しましたが失敗しました。上記の理由ではなく、調査が必要なため、v1.1バージョンを使用することをお勧めします。
4.ビクーニャ重みの生成
FastChatライブラリのクローンを作成します。
git clone https://github.com/lm-sys/FastChat.git
ターミナルに次のコマンドを入力します。
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はラマの元のモデルの重み、7b パラメーター、target-model-pathは生成されるビキューナの重み、delta はビキューナ デルタの重み、CPU メモリが少ない場合は --low-cpu-mem を追加する必要があります。重みファイルは複数の小さな部分に分割され、一時ストレージとしてディスクを使用します。ピーク時のメモリを 16GB 未満に抑えることができます。そうしないと、vicuna デルタ ファイルをロードできず、CPU メモリがいっぱいになり、プログラムが直接強制終了されます。緑色は、既存の vicuna-7b-delta の重みを示します。
このコマンド行は初心者にとって少しわかりにくいです: 簡単に言うと、ラマの重量を使用し、それをビキューナのデルタ重量と組み合わせて、ビキューナの重量を生成します。根本的な原因は、メタによって解放されたラマの重量がそうでないことです。公式に公開されており、ダウンロードは単なるネットワーク動作です。
実行結果は次のとおりです。
新しく生成されたビキューナの重量は、設定されたディレクトリにあります。
5. MiniGPT- 4が起動します
この記事で使用されている重みは、元の作成者のチェックポイントである prerained_minigpt4_7b.pth であり、生成された vicuna 重みパスの下に配置されています。ディレクトリは正しく配置されている必要があります。
ダウンロードリンク:
ここでは Google を使用する必要があり、他のバージョンをダウンロードできるはずですが、私は試していません。
ダウンロードが完了したら、上で生成したばかりの vicuna ディレクトリに配置します。
構成ファイルのモデルの重みが保存されているディレクトリを変更します。
次の 2 つの手順が重要です。重みファイルのディレクトリを変更するには、実際の状況に応じて変更する必要があります。
1). MiniGPT-4/minigpt4/configs/models/minigpt4.yaml ファイルの llama_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デモを開始します
MiniGPT-4 ディレクトリに移動します。
python demo.py --cfg-path eval_configs/minigpt4_eval.yaml --gpu-id 0
実行は成功します。
7. その他の注意事項
警告文があります。pytorch (2.0.1) とtorchvision (0.13.1)のバージョンが一致していない疑いがあります。機能には影響しません。次の投稿を参照してください。
画像のロードに失敗しました Python 拡張機能: libtorch_cuda_cu.so_ Shepherdess のブログ-CSDN ブログ
バージョンの比較関係を参照すると、torch 2.0 に対応する torchvision のバージョンは 0.15 である必要があり、私のバージョンは 0.13 であることがわかります。
GitHub - pytorch/vision: コンピューター ビジョンに固有のデータセット、変換、モデル
以下は元の著者のランニングチャートですが、同様の問題があるようです。
次のインストール コマンドを実行します (最初に古いバージョンをアンインストールします)。
次の Web サイトで構成を選択した後、インストール コマンドを生成します。
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
再インストールして再度実行すると警告が消えて成功します。
それに対応するバージョンを表示します。
Conda のバージョンが低すぎます:
ここで小さな問題があります。conda のバージョンが低すぎて上記のコマンドを実行できない場合は、先に conda をアップグレードしてください。ただし、conda update conda を実行しても conda のバージョンが変わらない場合があります。アップグレードするには次のコマンドを実行する必要があります。コンダ:
conda update -n base -c defaults conda --repodata-fn=repodata.json
更新警告メッセージが表示されましたが、更新できません · 問題 #12519 · conda/conda · GitHub