前言#
この記事では、私がローカルで MiniGPT-4 を構築するプロセスと、関連するモデルパラメータのダウンロードと変換、最後にいくつかのテストを行ったことを簡単に記録します。
正文#
一、MiniGPT-4 とは#
MiniGPT-4 は、画像とテキストを組み合わせた先進的な大規模言語モデルであり、自然言語での画像内容の説明を生成することができます。このモデルのトレーニングプロセスは 2 つの段階に分かれており、第一段階では大量の画像 - テキストペアを使用して従来の事前トレーニングを行い、第二段階ではモデル自身が作成した高品質の画像 - テキストペアを使用してファインチューニングを行い、生成の信頼性と全体的な実用性を大幅に向上させました。MiniGPT-4 は BLIP-2 モデルアーキテクチャを採用し、画像と言語モデルを整合させるために Vicuna 言語モデルを使用しています。
二、ローカル環境の設定#
1、Conda のインストール#
MiniGPT-4 は Python 環境で動作し、Windows、Linux、MacOS で使用可能です。Python 環境は Conda で設定します。まず Conda 環境を設定し、異なるプラットフォームのインストール手順をそれぞれ紹介します:
-
以下は Windows で Conda をインストールする手順です:
-
こちらをクリックしてお使いのオペレーティングシステムに適した Anaconda をダウンロードするか、こちらをクリックしてMiniconda インストーラーをダウンロードします。
-
ダウンロードしたインストーラーをダブルクリックし、指示に従ってインストールします。インストール中に、Anaconda または Miniconda をシステム PATH に追加するオプションを選択できます。これにより、コマンドプロンプトで Conda コマンドを便利に使用できるようになります。
-
インストールが完了したら、Anaconda Prompt または Windows PowerShell を開き、「conda」と入力してインストールが成功したか確認します。成功した場合、Conda の基本的な使用方法が表示されます。
-
Conda 環境を作成および管理する必要がある場合は、「conda create」コマンドを使用して新しい環境を作成し、「conda activate」コマンドで環境をアクティブにします。詳細な環境管理方法は Conda の公式ドキュメントを参照してください。
-
-
Linux、MacOS、または他のサポートされているオペレーティングシステムの場合、上記の方法でプログラムをダウンロードしてインストールできますが、ターミナルでのインストールをお勧めします:
- お使いの Linux バージョンとアーキテクチャに適した Anaconda または Miniconda インストーラーをダウンロードします。
curl コマンドを使用してダウンロード:
curl -O https://repo.anaconda.com/archive/Anaconda-latest-Linux-x86_64.sh
wget コマンドを使用してダウンロード:
wget https://repo.anaconda.com/archive/Anaconda-latest-Linux-x86_64.sh
- ダウンロードが完了したら、以下のコマンドを実行して Anaconda をインストールできます:
bash Anaconda-latest-Linux-x86_64.sh
インストーラーの指示に従って操作すれば、インストールが完了します。
2、ミラーソースの設定(中国本土ではオプション)#
conda で国内のミラーソースを変更するには、以下の手順に従って操作します:
1. ターミナルまたはコマンドラインウィンドウを開き、以下のコマンドを入力して conda の設定ファイルの channels を清華ミラーソースに設定します:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
注意:他のミラーソースを使用したい場合は、上記のコマンドの URL を選択したミラーソースの URL に置き換えてください。
2. 以下のコマンドを入力して conda を更新します:
conda update conda
3. 以下のコマンドを入力して設定が成功したか確認します:
conda info
以下の情報が表示されれば、ミラーソースが正常に変更されたことを示します:
channels:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
これで、conda コマンドを使用してソフトウェアパッケージをインストールできるようになり、選択した国内ミラーソースからパッケージがダウンロードされます。
3、MiniGPT-4 のインストール#
Conda がインストールされたら、MiniGPT-4 をインストールできます:
git clone https://github.com/Vision-CAIR/MiniGPT-4.git
cd MiniGPT-4
conda env create -f environment.yml
conda activate minigpt4
中国本土のユーザーにとって、ここで注意が必要なのは、environment.yml ファイルには conda 環境を作成するだけでなく、環境内の pip 依存関係も一緒にインストールされることです。しかし、環境内の pip はまだミラーソースが設定されていないため、基本的に依存ライブラリをインストールできません。
この問題を解決するために、environment.yml ファイル内の pip 依存関係をコメントアウトし、それを新しいファイル requirements.txt にコピーして、以下のコマンドでインストールします:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
三、モデルパラメータのダウンロードと変換#
MiniGPT-4 は Vicuna-13B と Vicuna-7B のV0 バージョンを基にトレーニングされているため、モデルパラメータは 2 つの部分に分かれています:Vicuna Weights と pretrained minigpt4 weights をそれぞれダウンロードして使用する必要があります。
1、Vicuna weights#
Vicuna は LLAMA に基づくオープンソースの LLM であり、その性能は ChatGPT に近いです。MiniGPT-4 は v0 バージョンの Vicuna-13B を使用しており、最近 2 日間で Vicuna-7B に基づくモデルも完成しました。これは小さなメモリの GPU ユーザーに適しています。
注意:すべての LLaMA に基づくモデルは、デルタウェイトのみを提供します(ダウンロードリンク)。その後、FastChatを使用してこのデルタウェイトを元の LLaMA ウェイトに加え、最終的なリリースモデルのウェイトを得る必要があります。この変換プロセスには少なくとも 60G のメモリが必要なため、ここでは関連する手順を紹介しません。変換プロセスに興味がある方は、この記事(記事)とこの記事(記事)を参照してください。
ここでは、すでに変換された Vicuna-13B モデルのダウンロードリンクと Vicuna-7B モデルのダウンロードリンクを直接提供します。完全なモデルをダウンロードした後、ディレクトリminigpt4/configs/models
内のファイルminigpt4.yaml#L16
のモデルロードアドレスを変更すれば、直接使用できます。
2、pretrained minigpt4 weights#
これはファインチューニングされた minigpt4 のウェイトで、直接ダウンロードできます:
ダウンロード後、ディレクトリeval_configs
内のファイルminigpt4_eval.yaml#L10
をダウンロードしたパラメータファイルのアドレスに変更すればよいです。
3、ローカルでの実行#
ディレクトリ MiniGPT-4 内で以下を実行します:
python demo.py --cfg-path eval_configs/minigpt4_eval.yaml --gpu-id 0
Vicuna-13B の 16bit ウェイトには 23G 以上のメモリが必要で、Vicuna-7B には 12G 以上のメモリが必要です。ディレクトリeval_configs
内のファイルminigpt4_eval.yaml
のlow_resource
を True に設定すると、8bit ウェイトを使用でき、メモリ使用量をさらに削減できます。実際の GPU の状況に応じて変更してください。
四、実際のテスト#
Vicuna-13B の 16bit テスト結果は以下の通りです:
これは 2023 年 4 月 20 日のテスト結果であり、MiniGPT-4 のプロジェクトはまだ継続的に更新されているため、効果はますます良くなるでしょう。
総括#
MiniGPT-4 は GPT-4 に比べて、モデルの規模が小さく、計算リソースの要求が低いため、リソースが制限されたシーンに適しています。また、MiniGPT-4 は視覚言語理解タスクで非常に良い性能を示しており、特に生成タスクにおいて優れています。しかし、MiniGPT-4 は GPT-4 に比べていくつかの制限があり、生成された結果は GPT-4 のように自然で流暢ではない可能性があり、MiniGPT-4 は GPT-4 のすべての機能をカバーしていません。しかし、全体として MiniGPT-4 は有望なモデルであり、大きな発展の可能性を秘めています。また、これは LLM が小型化に向かう一歩であり、まだ始まったばかりで、インターネットが始まった頃と同じように、未来が楽しみです。
最後に#
参考記事#
小羊驼モデル (FastChat-vicuna) の実行での問題記録
声明#
この記事は個人の学習記録としてのみ使用されます。
この記事はHBlogと同期しています。