【BLIP-2】画像キャプション自動生成GUIツールのインストール

ツール

「BLIP-2のGUIツールが欲しい」
「BLIP-2をブラウザから気軽に利用したい」

このような場合には、この記事の内容が参考になります。
この記事では、BLIP-2のGUIツールについて解説しています。

本記事の内容

  • BLIP-2のGUIツール
  • BLIP-2のGUIツールのシステム要件
  • BLIP-2のGUIツールのインストール
  • BLIP-2のGUIツールの動作確認

それでは、上記に沿って解説していきます。

BLIP-2のGUIツール

現状、BLIP-2のGUIツールと言えば以下が存在しています。

  • Salesforce/BLIP2(https://huggingface.co/spaces/taesiri/BLIP-2
  • taesiri/BLIP-2(https://huggingface.co/spaces/taesiri/BLIP-2

両方とも、Hugging Face上で公開されています。
BLIP-2は、Salesforce社が開発したモノです。

よって、Salesforce/BLIP2の方が公式となります。
ただ、公式の方はシステムとしてダウンロードできません。

通常であれば、ファイル一式をコピーすれば動きます。

これをローカル環境で動かそうとすると、エラーが出まくります。
どうやら、Salesforce/BLIP2ではBLIP-2の処理をAPI経由で実行しているようです。

つまり、コアな処理はAPIで処理していると言えます。
そして、このAPIはGCPで動いているのです。

だからこそ、次のようなLLMを利用できるのですね。

Flan-T5 XXLなんて、42GBのサイズになります。
まともに動かすには、かなりのマシンスペックを必要とするはずです。
Flan-T5 XXLがどれだけ重いのかは、次の記事で説明しています。

このような事情から、Salesforce/BLIP2はローカル環境にインストールできません。
それに対して、taesiri/BLIP-2はローカル環境にインストール可能です。

そうかと言って、機能的にSalesforce/BLIP2に劣るという訳でもありません。
デフォルトでは、taesiri/BLIP-2は以下のLLMを利用しています。

これを変更すれば、Salesforce/BLIP2に近づけることは可能でしょう。
ただし、マシンスペックはかなり求められることになります。

まとめると、taesiri/BLIP-2であればローカルマシンにインストール可能ということです。
よって、これ以降ではtaesiri/BLIP-2に関して説明していきます。

以上、BLIP-2のGUIツールのついて説明しました。
次は、BLIP-2のGUIツールのシステム要件を説明します。

BLIP-2のGUIツールのシステム要件

BLIP-2のGUIツールのシステム要件を説明します。
システム要件は、以下の2点です。

  • BLIP-2
  • Gradio

まずは、BLIP-2がGUI関係なく動く環境が必要になります。
そのための方法は、次の記事で解説しています。

そして、GUIツールとして機能するためにGradioが必要です。
Gradioについては、次の記事で説明しています。

まとめると、BLIP-2が動くようにします。
そして、Gradioをインストールしておきます。

以上、BLIP-2のGUIツールのシステム要件を説明しました。
次は、BLIP-2のGUIツールのインストールを説明します。

BLIP-2のGUIツールのインストール

taesiri/BLIP-2 at main
https://huggingface.co/spaces/taesiri/BLIP-2/tree/main

上記ページから、必要なファイルをダウンロードします。

まとめてダウンロードするには、次のツールを利用します。

huggingface_hubを利用すると、自動的にファイルをダウンロードしてくれます。
huggingface_hubをインストールできたら、次のコードを実行します。

from huggingface_hub import snapshot_download

snapshot_download(
    repo_id="taesiri/BLIP-2",
    repo_type="space",
    revision="main",
    cache_dir="./")

上記コードを実行すると、ダウンロード処理が開始されます。
ダウンロードは、すぐに終わります。

処理が完了すると、ディレクトリ上に「spaces–taesiri–BLIP-2」を確認できます。

そして、「snapshots」以下にあるファイル・ディレクトリをコピーします。

「984b4fb79ef88f40d75f51c7ba20bfd219e9c362」は、リポジトリのバージョンです。
バージョンが更新されれば、この値も変わってきます。

この長たらしいディレクトリより下のモノをコピーしましょう。
コピーしたファイルは、BLIP-2がインストール済みのコンテンツルートに保存します。

以上、BLIP-2のGUIツールのインストールを説明しました。
次は、BLIP-2のGUIツールの動作確認を説明します。

BLIP-2のGUIツールの動作確認

BLIP-2のGUIツールを起動するには、app.pyを実行します。
「pretrain_opt2.7b」が存在しないなら、モデルのダウンロードから実施されます。

モデルの有無に関わらず、起動時は待つことになります。
おそらく、LLMのロードに時間がかかるのでしょうね。

起動できたら、コンソールには次のように表示されます。

Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.

そうしたら、ブラウザで「http://127.0.0.1:7860」にアクセスします。

機能としては以下の二つがあります。

  • 画像キャプション生成
  • Chatbot(画像についての応答が可能)

ここでは、画像キャプション生成を確認します。
まずは、画像をアップロードしましょう。

そして、「Generate Caption」ボタンをクリック。
そうすると、1秒程度(環境によっては数秒)で結果が表示されます。

以上、BLIP-2のGUIツールの動作確認を説明しました。

タイトルとURLをコピーしました