banner
hughie

hughie

热爱技术的小菜鸟, 记录一下所学所感

MiniGPT-4のローカル構築プロセスと実測

前言#

​ この記事では、私がローカルで 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 をインストールする手順です

    1. こちらをクリックしてお使いのオペレーティングシステムに適した Anaconda をダウンロードするか、こちらをクリックしてMiniconda インストーラーをダウンロードします。

    2. ダウンロードしたインストーラーをダブルクリックし、指示に従ってインストールします。インストール中に、Anaconda または Miniconda をシステム PATH に追加するオプションを選択できます。これにより、コマンドプロンプトで Conda コマンドを便利に使用できるようになります。

    3. インストールが完了したら、Anaconda Prompt または Windows PowerShell を開き、「conda」と入力してインストールが成功したか確認します。成功した場合、Conda の基本的な使用方法が表示されます。

    4. Conda 環境を作成および管理する必要がある場合は、「conda create」コマンドを使用して新しい環境を作成し、「conda activate」コマンドで環境をアクティブにします。詳細な環境管理方法は Conda の公式ドキュメントを参照してください。

  • Linux、MacOS、または他のサポートされているオペレーティングシステムの場合、上記の方法でプログラムをダウンロードしてインストールできますが、ターミナルでのインストールをお勧めします

    1. お使いの 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
    
    1. ダウンロードが完了したら、以下のコマンドを実行して 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 のウェイトで、直接ダウンロードできます:

Vicuna 13B に整合したチェックポイントVicuna 7B に整合したチェックポイント
ダウンロードダウンロード

ダウンロード後、ディレクトリ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.yamllow_resourceを True に設定すると、8bit ウェイトを使用でき、メモリ使用量をさらに削減できます。実際の GPU の状況に応じて変更してください。

四、実際のテスト#

​Vicuna-13B の 16bit テスト結果は以下の通りです:
minigpt4-testline.png
これは 2023 年 4 月 20 日のテスト結果であり、MiniGPT-4 のプロジェクトはまだ継続的に更新されているため、効果はますます良くなるでしょう。

総括#

​ MiniGPT-4 は GPT-4 に比べて、モデルの規模が小さく、計算リソースの要求が低いため、リソースが制限されたシーンに適しています。また、MiniGPT-4 は視覚言語理解タスクで非常に良い性能を示しており、特に生成タスクにおいて優れています。しかし、MiniGPT-4 は GPT-4 に比べていくつかの制限があり、生成された結果は GPT-4 のように自然で流暢ではない可能性があり、MiniGPT-4 は GPT-4 のすべての機能をカバーしていません。しかし、全体として MiniGPT-4 は有望なモデルであり、大きな発展の可能性を秘めています。また、これは LLM が小型化に向かう一歩であり、まだ始まったばかりで、インターネットが始まった頃と同じように、未来が楽しみです。

最後に#

参考記事#

vicuna-13B のモデルウェイトを取得する方法

小羊驼モデル (FastChat-vicuna) の実行での問題記録

MiniGPT-4 公式ドキュメント


声明#

この記事は個人の学習記録としてのみ使用されます。

この記事はHBlogと同期しています。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。