AI・データ●●●○○

マルチモーダル

Multimodal AI ・ まるちもーだる

テキスト・画像・音声など複数の様式を1つのモデルで理解・生成するAI。

✦ 30秒で試す — 航海AIは写真を、文章と同じ「単語の列」として読んでいるこの写真1枚は、言語モデルにとって何語ぶん?予想してみる

概要

マルチモーダル AI とは、テキスト・画像・音声・動画といった複数の「モダリティ(情報の様式)」をまたいで理解・生成できる AI のことです。スクリーンショットを貼り付けて「このエラーの原因は?」と聞く、写真から料理のレシピを推定させる、音声で話しかけて音声で返事をもらう — こうした体験はすべて、モデルが複数のモダリティを1つの頭の中で扱えるようになったことで実現しています。

かつての AI は「画像認識モデル」「音声認識モデル」「言語モデル」のように、モダリティごとにまったく別のモデルとして作られていました。マルチモーダル AI の要点は、それらを単に数珠つなぎにすることではなく、異なるモダリティの情報を共通の表現に写し、「猫の写真」と「猫という単語」を同じ意味として扱えるようにした点にあります。2023年の GPT-4V・Gemini 以降、主要な LLM は画像の入力を標準で受け付けるようになり、音声で直接やり取りできるモデルも広がりました。「テキスト専用の言語モデル」は、むしろ過去の形態になりつつあります。

なぜ生まれたか

モダリティごとに分業していた時代の最大の問題は、モダリティの境界で意味が失われることでした。画像認識モデルは「犬、95%」というラベルは出せても、「雪の中で子どもと遊ぶ柴犬」という文脈は語れません。しかも分類できるのは、学習時に決めた千個ほどのラベルだけです。音声をテキストに変換してから言語モデルに渡す方式では、声色や抑揚、笑い声や間といった情報が変換の時点で捨てられます。人間は目で見たものと言葉を自然に結び付けて考えているのに、AI はモダリティの壁を越えるたびに情報を落としていたのです。

転機の1つ目は、2020年の Vision Transformer(ViT)です。画像を 16×16 画素ほどの小さなタイル(パッチ)に切り、それぞれを単語のように並べて Transformer に読ませたところ、画像認識でも畳み込みネットワークに並ぶ性能が出ました。画像も「トークンの列」として扱える、と分かったのです。2つ目が2021年の CLIP(OpenAI)です。ウェブから集めた「画像とその説明文」4億組を使い、画像の埋め込みとテキストの埋め込みが同じベクトル空間で近くなるように学習して、「画像と言葉の意味を同じ物差しで測る」ことを可能にしました。どんな系列でも同じ仕組みで処理できる Transformer と、モダリティをまたぐ共通の空間 — この2つがそろって、画像もテキストも音声も同じトークン列として1つの LLM に流し込む、統合的なマルチモーダルモデルへの道が開けました。

詳細

共有埋め込み空間という考え方

マルチモーダルの土台にあるのは「共有埋め込み空間」という発想です。モダリティごとに専用のエンコーダ(画像なら ViT など、音声なら音声エンコーダ)を用意し、その出力がモダリティを問わず同じベクトル空間に並ぶように学習します。空間の中では「犬の写真」と「dog という単語」と「犬の鳴き声」が互いに近い位置に置かれ、以降の処理はモダリティを意識せずに進められます。意味空間そのものの性質(近いものが近くに並ぶ、方向に意味が宿る)は埋め込みの記事で触って確かめられます。

テキスト「雪の中の柴犬」画像柴犬の写真音声犬の鳴き声テキストエンコーダ画像エンコーダ音声エンコーダ共有埋め込み空間「柴犬」の意味が近くに集まるモダリティの区別なく計算できる
共有埋め込み空間 — 異なるモダリティを専用エンコーダで同じ意味空間に写像する

CLIP はこの空間を「対照学習(contrastive learning)」で作りました。N 組の画像と説明文をひとまとめ(バッチ)にして、すべての画像とすべての説明文の組み合わせ N×N 通りの類似度を一度に計算します。正しい組(表の対角線)の類似度は高く、それ以外の組は低くなるように、両方のエンコーダを同時に訓練するのです。正解ラベルを人が付ける必要はなく、ウェブに元からある「画像と、その横に書かれた文」の対応だけが教師になります。

説明文のエンコーダの出力「柴犬」「夕日」「猫」「自転車」画像のエンコーダの出力柴犬の写真海の夕日猫の写真自転車近づける近づける近づける近づけるマスの値は2つの埋め込みの類似度ほかの12マスはすべて遠ざける教師は「元から並んでいた」という対応だけ
対照学習。バッチ内の N×N の組み合わせのうち、正しい組(対角線)を近づけ、それ以外を遠ざける

学習が終わると、任意のテキストと任意の画像の意味の近さを計算できるようになります。「〜の写真」という文をカテゴリの数だけ用意して、画像にいちばん近い文を選べば、追加学習なしで未知のカテゴリを分類できます(ゼロショット分類)。テキストで画像を探す検索や、ベクトルデータベースを使ったクロスモーダル検索も、この共有空間の上に成り立っています。画像生成の側でも、CLIP 系のテキストエンコーダが拡散モデルの条件付けに使われてきました。

入力の統合 — Vision-Language モデル

「画像を理解して言葉で答える」いまの主流の構成は、画像エンコーダと LLM の接合です。画像をパッチに切って Transformer(ViT)でベクトル列に変え、小さな射影層で LLM の埋め込みと同じ形にそろえてから、テキストのトークンの列と並べて LLM に流し込みます。LLM から見れば、画像は「読めるようになった外国語の単語列」のようなもので、コンテキストウィンドウの一部を画像由来のトークンが占めます。たとえば 336×336 画素の画像を 14 画素角のパッチに切ると 24×24=576 個のトークンになり、高解像度の画像を細かく読ませるほどトークン数(と料金・待ち時間)が増えます。

画像グラフの写真パッチに切る画像エンコーダViT など射影層LLM の埋め込みの形へ…このグラフの傾向は?画像由来のトークン(例: 576個)質問文のトークンLLM画像のトークンも文字と同じ列として読む回答「右肩上がりです」
Vision-Language モデルの構成。画像はパッチ → エンコーダ → 射影を経てトークンになり、質問文のトークンと1本の列に並んで LLM に入る

この系譜の代表が、2022年の Flamingo、2023年の LLaVA や GPT-4V です。LLaVA は、学習済みの CLIP の画像エンコーダと学習済みの LLM を小さな射影層でつなぎ、まず射影層だけを学習させ、次に画像つきの指示応答データで全体を調整するという、比較的安い手順で「画像について会話できる」モデルを作れることを示しました。こうしたモデルは「画像の中の文字を読む」「グラフを解釈する」「UI のスクリーンショットを理解する」といった能力を獲得しており、画面を見て操作する AIエージェントは、この視覚理解の直接の応用です。

音声の扱い

音声も同じ考え方で入力側に取り込めます。音声の波形を、短い時間ごとの周波数の強さを並べたスペクトログラム(音の「画像」のようなもの)に変え、音声エンコーダでベクトル列にします。代表的な音声エンコーダが、2022年に OpenAI が公開した音声認識モデル Whisper のエンコーダで、68万時間の多言語音声で学習されています。音声を扱う LLM の多くは、こうした音声エンコーダの出力を射影して、画像と同じように LLM へ流し込みます。

音声アシスタントの作り方は、大きく2通りあります。1つは「音声認識 → LLM → 音声合成」と3つのモデルをつなぐパイプライン方式で、部品を入れ替えやすく、途中の文字起こしを記録・検査しやすいのが利点です。ただし変換のたびに声色や抑揚が捨てられ、3段分の待ち時間が積み重なります。もう1つが、2024年の GPT-4o のように音声を直接入出力する方式で、声の調子や感情、話への割り込みまで含めて扱え、応答も速くなります。

出力側 — 生成もマルチモーダルに

理解(入力)だけでなく生成(出力)もマルチモーダル化が進んでいます。テキストから画像を作る Stable Diffusion や DALL-E 2・3 は、テキストの埋め込みを条件として拡散モデルを誘導する構成です。音声合成や動画生成も、「テキストの意味表現で他のモダリティの生成を条件付ける」パターンで発展してきました。さらに、画像のトークンを LLM 自身が出力して画像を描く、テキストと画像を1本のモデルで入出力する、といった統合の方向も進んでいます。

実務での使いどころと注意点

実務では、帳票や領収書の読み取り、図面・グラフの解釈、動画の要約、視覚に障害のある人向けの画像の説明(アクセシビリティ)など、従来 OCR や専用モデルを組み合わせていた処理を1つのモデルで置き換えられる場面が増えています。一方で注意も必要です。画像の中の細かい文字や数値、物の個数や位置関係の読み取りは誤ることがあり、テキストと同様にハルシネーション(写っていないものを「ある」と答える)も起きます。画像はテキストよりずっと多くのトークンを使うので、解像度と料金・待ち時間の釣り合いも設計の論点です。また、画像の中に指示文を埋め込んでモデルを操るプロンプトインジェクションという攻撃経路が生まれており、外部から受け取った画像をモデルに渡すシステムでは、画像の中の文字を「指示」として扱わない設計が必要です。

試問

音声アシスタントを「音声認識(声を文字に起こす)→ 言語モデル → 音声合成」の3段で作りました。言語モデルに届くのは、文字に起こされたテキストだけです。利用者の声に含まれる8つの情報を、文字起こしのあとも言語モデルに届くものと、途中で捨てられるものに振り分けてください。

✦ 命題挑戦中

利用者の声に含まれる8つの情報を、文字起こしで言語モデルまで届くものと、途中で捨てられるものに仕分けよ

言語モデルまで届く文字にすれば書き残せる
途中で捨てられる文字にすると消える

項目を選んでから、入れる箱を選びます