iwiwi 備忘録

学んだことを殴り書きます。自分向けのメモです。

Flamingo: a Visual Language Model for Few-Shot Learning

arxiv.org

DeepMindの、VLM(Visual Language Model) / LMM(Large Multimodal Model)の論文。文中に画像が現れてるようなものを読んで、画像と文章の両方を加味した文章生成ができる。例えばin-context learningを通じてVisual QAなどができる。

アプローチ

  • e2eではない。Vision Encoder (VE)とLanguage Model(LM)を持ってきて、それらの重みはfreezeする。
  • VEの出力(W'×H'×C)を、Perceiver Resamplerというモジュールに通し定数長にする。そして、LMの各ブロックの間に、その定数長のベクトルへのcross-attentionを混ぜ込むレイヤーを追加する。
  • Perceiver Resamplerは、それはそれでなんというか普通にattentionするだけ。K, Vが各パッチのベクトル(長さC)で、Qはtrainableな固定ベクトルだと理解した。(なおK, VにQをconcatenateする謎テクにより性能が少し上がるらしい)
  • 混ぜ込むレイヤーの出力にはgate機能をつけ、これが最初ゼロになっとくことにより最初は元のLMと同じ出力をするのでやさしく学習できる。ControlNetとかに似とるね。

その他

  • Perceiver Resamplerの機構はVision側が動画でも適用可能。計算量はやばそう。

OSS実装

github.com