Skip to main content

BLIP and BLIP-2

BLIP と BLIP-2 は、image captioning、VQA、image-text retrieval に強い vision-language model です。Salesforce Research が提案し、後続の LLM-based VLM の基盤になっています。

BLIP の核心

BLIP は、

  • Image-text contrastive (ITC)
  • Image-text matching (ITM)
  • Image-conditioned text generation (LM)

の 3 つの objective を一つの multi-task framework で同時に学習します。これによって、retrieval にも captioning にも強い model が得られます。

加えて、CapFilt という data engine で、

  1. Noisy web caption を Captioner で書き直す
  2. Filter で低品質 caption を除く

ことで、training data の質を上げます。

BLIP-2

BLIP-2 は、frozen image encoder と frozen LLM を組み合わせ、その間を Q-Former (Querying Transformer) で橋渡しする設計です。

  • Frozen image encoder (例: EVA-CLIP) と frozen LLM (例: OPT、FlanT5) を再学習しない
  • Q-Former だけを学習することで、少ないパラメータで強力な vision-language alignment を実現

これにより、

  • 既存の強力な VLM / LLM をそのまま活用
  • 学習コストが小さい
  • 多くの benchmark で SoTA
  • 後続の LLaVA、MiniGPT-4 などの先駆けとなった

という impact がありました。

用途

  • Image captioning
  • VQA
  • Image-text retrieval
  • LLM ベース vision chat (BLIP-2 + LLM)
  • 視覚機能を持つ agent / robot の認識モジュール

数式で見る BLIP の multi-task objective

BLIP は、一つの multi-task framework で三つの loss を組み合わせます。Image-text contrastive、image-text matching、language modeling の三つです。Image embedding を v\mathbf{v}、text embedding を t\mathbf{t}、ITM head を hitmh_{\mathrm{itm}}、生成器を pθp_\theta とすると、概念的には次のように書けます。

L=λITCLITC(v,t)+λITMLITM(hitm(x,y))+λLMLLM(pθ(yx))\mathcal{L}= \lambda_{ITC}\mathcal{L}_{ITC}(\mathbf{v},\mathbf{t}) +\lambda_{ITM}\mathcal{L}_{ITM}(h_{\mathrm{itm}}(x,y)) +\lambda_{LM}\mathcal{L}_{LM}(p_\theta(y\mid x))

各項の意味は次の通りです。

  • LITC\mathcal{L}_{ITC} は CLIP 型の contrastive で、retrieval 能力を支えます。
  • LITM\mathcal{L}_{ITM} は二値分類で、対応するか否かを細かく判定します。Hard negative mining と組み合わせることで、近接した text の区別を学べます。
  • LLM\mathcal{L}_{LM} は image-conditioned next-token loss で、captioning や VQA に必要な生成能力を与えます。

この式の気持ちは、「検索能力と生成能力を別々の model で持つのではなく、共通の visual representation の上で両方を同時に学ぶ」というものです。

数式で見る Q-Former の役割

BLIP-2 では、frozen image encoder と frozen LLM を繋ぐ Q-Former が、少数の learnable query を介して image feature を圧縮します。Image feature を FRN×d\mathbf{F}\in\mathbb{R}^{N\times d}、learnable queries を QRM×d\mathbf{Q}\in\mathbb{R}^{M\times d} とすると、概念的には次のような cross-attention になります。

H=Attn(Q,F,F)=softmax(QFd)F\mathbf{H}=\mathrm{Attn}(\mathbf{Q},\mathbf{F},\mathbf{F}) =\mathrm{softmax}\left(\frac{\mathbf{Q}\mathbf{F}^\top}{\sqrt{d}}\right)\mathbf{F}

その後、H\mathbf{H} は projection proj()\mathrm{proj}(\cdot) を通って LLM 側の token 空間に入ります。

pθ(yty<t,proj(H))p_\theta(y_t\mid y_{<t},\mathrm{proj}(\mathbf{H}))

この式の気持ちは、「数千個の image patch token をそのまま LLM に渡すのではなく、MM 個の少数 query が要点を抽出して LLM に渡す」というものです。LLM と image encoder を freeze したまま少数の中間 module だけを学習できるため、計算コストを抑えながら強い alignment を得られます。

関連ページ

主なソース