Tackling multiple tasks with a single visual language modelを読んだメモ

 画像と言語を一つのモデルで扱うマルチモーダルモデルについての研究。

 特に、追加の学習をせずにFew-shotの例示で新規問題へ適応することを重視しているらしい。

記事

 最近ありがちな、実利用時に数個のプロンプト的な例示を行うとそういうタスクが解ける的なものなんだけど、実際これがどの程度いろいろなことができるのかよくわからない。正直プロンプトでのモデルの利用時制御というのがちゃんとはわかっていないのでそこを読み取りたい。

 基本的には「画像とそれに対する応答文」というペアを入力としていくつか与えて、最後に画像一つだけを与えると、それまでの対応に近い感じでの応答文を返す?(記事内のFigure 1)

 しかしFigure 3だと画像と文の対応付けがシステム内部でどう処理されているのかがわからない。左の方は、画像についての対話がある程度成立しているような、別になんかそういう理解はしていなくてもこういう応答はできなさそうな感じだけど、右の方はStroop testという名前が出てくるのすごそうな気がする。

 ちゃんと論文の方読まなきゃなにやっているのかさっぱりだな。

論文

https://storage.googleapis.com/deepmind-media/DeepMind.com/Blog/tackling-multiple-tasks-with-a-single-visual-language-model/flamingo.pdf

 Figure 1は相変わらずすごそうな結果が並べられている。個人的には特に

の結果が気になるかなと思った。他にもOCR的なことをしている例もあったし、こういう画像からの数式計算が一つ重要になるんじゃないかと思う。

 interleaveという語が何回も出てくる。「間に挟む」という感じの意味か? テキストと画像が交互にやってくるとかそういうことを指しているのだと思う。

 教師なしのWebテキストデータでとにかく学習させまくって、利用時にはプロンプトで条件づけする。

 言語モデル部分は学習済みのものをそのまま使いたいので、画像と連結させるところだけに新規ネットワークをちょっと追加する。画像側のネットワークは高速化のためにPerceiver的な感じ。もとの言語モデルChinchillaがパラメータ数70Bのモデルで、そこに10Bを追加して合計80Bのネットワークにする。

 データはWebページのスクレイピングデータ(量は多いが低品質) + 画像とテキストのペアがある既存のデータ(量は少ないが高品質)の組み合わせ。

 モデルの概要はFigure 3

 なるほど、このようにしてプロンプトを含む入力に繋がるのか。学習するべきパーツも薄紫色になっているところだけなので、そこまで大きくなさそう。

 Perceiver Resamplerの概要はFigure 4

 Perceiverの構成を活かしていそうな感じになっている。

 Gated XAtten-DenseのモジュールはFigure 5で示されている。

 まぁだいたい概要はわかったかなぁという感じだけど、やっぱりモデルもデータ量も大きくて到底真似できる気はしない。あとやっぱり言語と画像を別処理しているのは結局どうなんっていう気もする。いずれこれ統合されないものか。