たった数個のお手本を見せるだけで、画像への質問応答もキャプション生成もこなしてしまう——それがDeepMindの視覚言語モデルFlamingoです。G検定では「few-shot learningに特化した視覚言語モデル」という一言の定義と、CLIPなど他のマルチモーダルモデルとの違いが問われます。
📖 ひと言でいうと
Flamingoとは、DeepMindが開発した、少数の例示による学習(few-shot learning)に特化した視覚言語モデルです。事前学習済みの視覚モデルと言語モデルを組み合わせ、画像・動画とテキストが交互に並んだ入力から適切なテキストを生成します。
例えるなら、優秀な新入社員に「こういう画像にはこう答える」という例を2〜3個見せただけで、あとは同じ調子で仕事をこなしてもらえるようなものです。厳密には、モデルのパラメータを更新する再訓練(ファインチューニング)をせず、例示を入力に含めるだけでタスクに適応します。
🖼 1枚でわかるFlamingo
📘 公式テキストの説明
DeepMindが開発した「Flamingo」は、少数の例示による学習(few-shot learning)に特化した視覚言語モデルとして知られている。Flamingoは、事前に学習された視覚モデルと言語モデルを組み合わせ、画像や動画とテキストが交互に配置されたシーケンスを入力として受け取り、適切なテキストを生成する能力を持つ。この設計により、視覚的な質問応答や画像のキャプション生成など、多様なタスクに迅速に適応できる。特に、タスク固有の大量のデータを用いた微調整を行わずに、高い性能を示す点が特徴である。Flamingoのアーキテクチャは、視覚情報を固定長のトークンに変換する「Perceiver Resampler」と、これらのトークンを言語モデルに統合する「Gated Cross Attention Layer」で構成されている。これにより、視覚情報とテキスト情報の効果的な融合が可能となっている。また、Flamingoは大規模なマルチモーダルWebコーパスで学習されており、任意に交互配置されたテキストと画像を含むデータを活用している。さらに、Flamingoのオープンソース版である「OpenFlamingo」も公開されており、研究者や開発者が自由に利用できる環境が整備されている。OpenFlamingoは、Flamingoのアーキテクチャを再現し、オープンソースのデータセットを用いて学習されている。これにより、視覚と言語の統合モデルの研究がさらに進展することが期待されている。
かみ砕くと、Flamingoの独自性は「作り方」と「使い方」の2点にあります。作り方は、ゼロから学習するのではなく既存の視覚モデルと言語モデルを専用の接続部品でつなぐこと。使い方は、タスクごとの再訓練(微調整)をせず、少数の例示を入力に混ぜるだけで質問応答からキャプション生成まで対応できることです。
🔍 しっかり理解する
few-shot learning──「再訓練」ではなく「例示」で適応する
従来のモデルは、新しいタスク(たとえば医療画像のキャプション生成)に使うとき、そのタスク用の大量データでファインチューニングするのが普通でした。Flamingoは、プロンプトの中に「画像→説明文」のペアを数個並べて見せるだけで、続く新しい画像に同じ形式で答えます。タスク固有の大量データによる微調整を行わずに高い性能を示す——これがfew-shot learningに特化しているという意味です。
アーキテクチャ──2つの接続部品が視覚と言語をつなぐ
Flamingoは、事前学習済みの視覚モデルと言語モデルという「完成品」同士を、次の2つの部品で接続しています。
Perceiver Resamplerは、枚数や解像度が異なる画像・動画の情報を「固定長のトークン列」に整えます。Gated Cross Attention Layerは、そのトークンを言語モデルの処理の流れに少しずつ注入する門(ゲート)の役割を果たします。この設計のおかげで、既存の強力な言語モデルの能力を壊さずに視覚情報を融合できるのです。
学習データ──「交互に並んだ」Webコーパス
Flamingoの学習には、テキストと画像が任意に交互配置された大規模なマルチモーダルWebコーパスが使われています。Webページでは文章の途中に画像が挟まるのが自然な形であり、この「交互配置」をそのまま学習することで、入力の途中に何枚も画像が現れる会話的なやりとりに対応できるようになりました。CLIPの学習データが「画像と説明文の1対1ペア」なのに対し、Flamingoは「画像とテキストが混ざった文書の流れ」を学ぶ点が対照的です。
OpenFlamingo──研究を広げるオープンソース版
Flamingo本体に加えて、そのアーキテクチャを再現しオープンソースのデータセットで学習したOpenFlamingoが公開されています。研究者や開発者が自由に利用できるため、視覚と言語の統合モデル研究の進展が期待されています。
💡 具体例で考える
Flamingoらしい使い方が少数例示での視覚的質問応答(VQA)です。たとえば「画像A→『りんごが3個あります』、画像B→『バナナが2本あります』」という例示を2つ入力に並べたあと、新しい果物の画像を見せると、Flamingoは再訓練なしで「〇〇が△個あります」という同じ形式の答えを生成します。出力のスタイルや粒度まで例示から汲み取れるのが、few-shot適応の強みです。
もうひとつの例が動画への対応です。Flamingoは静止画だけでなく動画とテキストの交互シーケンスも入力にできるため、料理動画の一場面を見せて「今どの工程ですか」と尋ねるような、時間的な文脈を含む質問応答にも応用が考えられます。視覚情報を固定長トークンへ変換するPerceiver Resamplerが、フレーム数の多い動画情報を扱いやすい形に圧縮してくれるためです。
⚠️ よくある誤解・紛らわしい用語
- CLIPとの混同: CLIPは対照学習で画像とテキストを共通空間に対応付ける「関連付けモデル」、Flamingoは画像を含む入力からテキストを「生成するモデル」です。開発元もOpenAI(CLIP)とDeepMind(Flamingo)で異なります。
- few-shotとファインチューニングの混同: Flamingoのfew-shot適応は、パラメータを更新する再訓練ではなく、例示を入力に含めるだけです。「タスク固有の大量データによる微調整を行わない」点が特徴だと覚えましょう。
- few-shotとzero-shotの違い: zero-shotは例示ゼロで新タスクを解くこと(CLIPの文脈で頻出)。Flamingoの看板は「少数の例示」を使うfew-shotです。
- 「ゼロから学習したモデル」ではない: Flamingoは事前学習済みの視覚モデルと言語モデルを組み合わせる設計です。既存モデルの再利用が効率の源泉です。
📝 試験でのポイント
- 「DeepMindが開発した、few-shot learningに特化した視覚言語モデルはどれか」という定義問題が基本形。CLIP・DALL-E・Unified-IOとの4択が想定されます。
- 「画像や動画とテキストが交互に配置されたシーケンスを入力とし、テキストを生成する」という入出力の記述は正誤判定の頻出候補です。
- Perceiver Resampler(視覚情報→固定長トークン)とGated Cross Attention Layer(言語モデルへ統合)の役割を入れ替えた選択肢に注意。
- 開発元の対応付け(CLIP・DALL-E=OpenAI/Flamingo=DeepMind)は単独でも問われ得ます。
📚 まとめ
Flamingoは、DeepMindが開発したfew-shot learning特化の視覚言語モデルです。事前学習済みの視覚モデルと言語モデルをPerceiver ResamplerとGated Cross Attention Layerでつなぎ、画像・動画とテキストの交互シーケンスから適切なテキストを生成します。タスク固有の微調整なしに、少数の例示だけで質問応答やキャプション生成に適応できる点が最大の特徴。オープンソース版OpenFlamingoの存在も含めて押さえておきましょう。
