G検定(ジェネラリスト検定)
ふらみんご
Flamingo
Flamingo
Flamingo(フラミンゴ)は、DeepMindが2022年に発表した視覚言語モデル(VLM)です。事前学習済みでパラメータを固定した画像向けのモデルと言語モデルを、新しく加えた層でつないでいます。画像や動画と文章が混ざった入力を受け取り、キャプション生成や視覚質問応答などのタスクを、少数の例をプロンプトに入れるだけでこなします。この能力をフューショット学習と呼びます。マルチモーダルと基盤モデルの分野で取り上げられる代表的なモデルの1つです。
詳しい説明
Flamingoとは
Flamingoは、DeepMindのアレイラック(Alayrac)らが2022年に発表したモデルです(NeurIPS 2022)。1つのモデルではなく、同じ考え方で作られた複数のモデルの総称です。
種類としては視覚言語モデル(Visual Language Model、略してVLM)にあたります。視覚言語モデルは、画像や動画という視覚の情報と文章という言語の情報を一緒に扱い、それをもとに文章を出力するモデルです。
論文が掲げた課題は、注釈の付いた例がほんの数個しかなくても、新しいタスクへすぐに対応できるマルチモーダルなモデルを作ることでした。マルチモーダルとは、画像と文章のように種類の異なるデータを組み合わせて扱うことを指します。論文はこの課題を、マルチモーダル機械学習の研究で未解決の問題と位置づけています。Flamingoはこの能力を持つモデルとして提案されました。
少数の例だけでタスクをこなすフューショット学習
Flamingoの特徴は、タスクごとの例を少しプロンプトに入れるだけで、そのタスクをこなせることです。たとえば画像と説明文の組を数個見せたあとに新しい画像を渡せば、その画像の説明文を出力できます。このように少ない例から新しいタスクに対応することをフューショット学習(few-shot learning)と呼びます。
論文では、例をモデルへの入力(プロンプト)の中に並べて与える形を、文脈内(in-context)のフューショット学習と呼んでいます。タスクに合わせてモデルを追加で学習し直す(ファインチューニングする)のではなく、入力の与え方でタスクを指定する点が特徴です。
論文によると、この能力を身につけるうえで重要だったのは、文章と画像が自由な順番で混ざったWeb上の大規模なデータで学習できたことです。これを可能にしたのは、次に説明する柔軟な構造です。
設計の基本方針 凍結した2つのモデルを橋渡しする
Flamingoは、あらかじめ学習を済ませた性質の違う2つのモデルを土台にしています。
- 視覚だけを扱うモデル。論文はその役割を、視覚的な場面を知覚することと表現しています
- 言語だけを扱う大規模言語モデル(LM)。論文はその役割を、基本的な推論を行うことと表現しています
どちらのモデルも凍結(frozen)された状態で使います。凍結とは、学習のあいだそのモデルのパラメータを変えずに固定しておくことです。この2つのモデルのあいだに新しい部品を加えてつなぎます。こうすることで、計算量の大きな事前学習で身につけた知識を保ったまま、2つを組み合わせられます。
具体的な仕組み
Perceiver Resampler 視覚特徴を決まった数のトークンにまとめる
画像や動画は、まず視覚エンコーダ(Vision Encoder)に通され、空間方向と時間方向の特徴量に変換されます。特徴量の数は、入力が高解像度の画像か、長い動画かなどによって大きく変わります。
Perceiver Resampler(パーシーバー・リサンプラー)は、Perceiverというモデルを下敷きにした部品です。数が多くて一定しない視覚特徴を受け取り、決まった少ない数の視覚トークンに変換して出力します。トークンとは、モデルが処理する情報の単位です。出力の数が決まっているので、画像1枚でも動画でも同じ形で後ろの言語モデルへ渡せます。Flamingoが高解像度の画像や動画をそのまま入力にできるのは、この部品のおかげです。
GATED XATTN-DENSE層 言語モデルに視覚情報を取り込ませる
Perceiver Resamplerが出した視覚トークンは、言語モデルの出力を条件づけるために使われます。そのために、凍結した言語モデルの既存の層のあいだに、新しく初期化したクロスアテンション層を挟み込みます。論文ではこの層をGATED XATTN-DENSE層と呼んでいます。
クロスアテンションは、ある系列を処理するときに、別の系列の情報を参照して取り込む仕組みです。Flamingoでは、この層で使うキー(key)とバリュー(value)を視覚特徴から作ります。これにより、言語モデルは文章を処理しながら視覚の情報を参照できます。
言語モデルがもともと担っている仕事は、次に来るトークンを予測することです。新しく加えた層は、この予測に視覚の情報を反映させる表現力の高い方法だと、論文は説明しています。学習で新しく作られるのはこれらの追加部品で、元の言語モデルの層は凍結されたままです。
何ができるようになったか
Flamingoは、画像や動画と文章が自由な順番で混ざった入力を受け取り、決まった形式に縛られない文章を生成できます。これにより、次のようなさまざまなマルチモーダルタスクを、少数の入出力例だけでこなせます。
- キャプション生成 画像の内容を説明する文章を作る
- 視覚対話 画像について対話する
- 視覚質問応答 画像についての質問に答える
論文は、画像や動画の理解に関わる16のタスクで評価しました。どのタスクでも、フューショット学習として当時の最高水準を更新しています。さらにそのうち6つのタスクでは、タスクごとの例を32個しか使っていないのに、ファインチューニングで作られた当時の最高水準のモデルも上回りました。32個という量は、その最高水準のモデルが使ったタスク固有の学習データのおよそ1000分の1です。
まとめ
Flamingoのポイントは3つです。1つ目は、凍結した視覚モデルと言語モデルを新しい部品でつなぐ設計です。2つ目は、Perceiver ResamplerとGATED XATTN-DENSE層という2つの部品です。3つ目は、例をプロンプトに入れるだけのフューショット学習で多様なタスクをこなせることです。大規模に事前学習したモデルを組み合わせて、多くのタスクに使えるマルチモーダルなモデルを作った例として押さえておきましょう。
試験で問われること
G検定
- Flamingoが視覚言語モデル(VLM)であり、少数の例をプロンプトに入れるだけで新しいタスクに対応できる(フューショット学習)ことを説明できますか。
- 事前学習済みの視覚モデルと言語モデルを凍結(パラメータを固定)したまま、新しく加えた部品でつなぐという設計方針と、その狙い(事前学習で得た知識を保つこと)を確認しておきましょう。
- Perceiver Resamplerが数の一定しない視覚特徴を決まった数の視覚トークンに変換すること、GATED XATTN-DENSE層が凍結した言語モデルの層のあいだに挟み込まれ、視覚情報を取り込むクロスアテンション層であることを区別して説明できますか。
- キャプション生成・視覚対話・視覚質問応答などを少数の入出力例でこなせることと、16タスク中6タスクで、約1000分の1のタスク固有データ(32例)しか使わずにファインチューニングによる当時の最高水準を上回ったという結果を確認しておきましょう。
最終更新日: 2026/09/23