BLIP-2: ゼロショット画像からテキストへの生成
BLIP-2 は、Salesforce Research のゼロショット視覚言語モデルで、凍結された事前学習済みビジョンエンコーダと凍結された大規模言語モデル(LLM)を橋渡しすることで、最先端の画像からテキストへの生成を可能にします。このアプローチは、エンドツーエンドのマルチモーダル事前学習に比べて、事前学習コストと学習可能パラメータを大幅に削減します。
Q-Former アーキテクチャ
BLIP-2 は、軽量な Querying Transformer(Q-Former)を利用して、ビジョンと言語間のモダリティギャップを埋めます。Q-Former はアーキテクチャの唯一の学習可能コンポーネントであり、画像エンコーダと LLM はトレーニング中に凍結されたままです。
Q-Former サブモジュール
Q-Former は、同じ自己注意層を共有する 2 つのサブモジュールで構成されています。
- Image Transformer: 凍結された画像エンコーダと相互作用して視覚特徴を抽出します。学習可能なクエリ埋め込みを入力として受け取り、入力画像の解像度に関係なく固定数の出力特徴を抽出します。
- Text Transformer: テキストエンコーダ兼テキストデコーダとして機能します。
2 段階の事前学習
Q-Former は、2 つの異なる段階で訓練されます。
- First Stage: 画像エンコーダは凍結され、Q-Former は 3 つの特定の損失を用いて訓練されます:
- Image-text contrastive loss: クエリ出力とテキスト出力の CLS トークン間のペアワイズ類似度を計算します。
- Image-grounded text generation: テキストトランスフォーマーは因果マスクを使用し、クエリに注意を向けます。一方、クエリは互いに注意を向けますがテキストトークンには注意を向けません。
- Image-text matching loss: クエリとテキストが相互作用し、テキストが画像にマッチするかを示すロジットを生成します。負例にはハードネガティブマイニングを利用します。
- Second Stage: 現在、情報ボトルネックを通してフィルタリングされた関連視覚情報を含むクエリ埋め込みは、LLM への入力の視覚プレフィックスとして使用されます。このフェーズでは、画像に基づくテキスト生成のために因果 LM 損失が使用されます。
モデルの能力と実装
BLIP-2 は柔軟性を持たせるよう設計されており、視覚バックボーン(例: ViT)と LLM(例: OPT や Flan T5)の任意の組み合わせを可能にします。
サポートされるタスク
BLIP-2 は、ゼロショットでいくつかの画像からテキストへのタスクを実行できます。
- Image Captioning: テキストプロンプトなしで、BOS(シーケンス開始)トークンから開始して画像の説明を生成します。
- Prompted Image Captioning: 画像の視覚内容に基づいて、提供されたテキストプロンプトを続けます。
- Visual Question Answering (VQA):
Question: {} Answer:のプロンプト形式を使用して、画像に関する特定の質問に答えます。 - Chat-based Prompting: 以前の質問‑回答ペアを連結してコンテキストを構築し、対話型インターフェースを作成します。コンテキストは 512 トークンに制限され、基盤となる LLM(OPT と T5)のコンテキスト長と一致します。
Hugging Face Transformers との統合
BLIP-2 は、Hugging Face Transformers ライブラリの Blip2ForConditionalGeneration クラスを通じて利用可能です。これは特殊なアーキテクチャであるため、標準の AutoModel API ではロードできず、Blip2ForConditionalGeneration クラスを明示的に使用する必要があります。ただし、AutoProcessor を使用して Blip2Processor を取得することは可能です。