Multimodal AI
マルチモーダルAIシステムは、画像、テキスト、音声、センサーデータなど複数のデータ型を入力、統合、または生成します。構築方法と用途を解説します。
マルチモーダルAIとは、人工知能(AI)システムが、テキスト、画像、動画、音声、lidarやレーダーなどのセンサー読み取り値といった、複数の種類のデータ、つまりモダリティを入力、統合、または生成することを指します。マルチモーダルアシスタントは、ダッシュボードの警告灯の写真を見て、それについて入力された質問を読み、テキストや音声で回答できます。また、自動運転車はカメラ、lidar、レーダーのデータを統合して、道路の全体像を把握します。この用語は、マルチモーダル学習を用いて構築されるシステムや製品を指します。マルチモーダル学習とは、対照的アラインメントやフュージョンなど、モダリティ間の関係をモデルに学習させるトレーニング手法です。
マルチモーダルシステムの構築方法#
各モダリティはまず、ビジョントランスフォーマー(ViT)や音声用のスペクトログラムエンコーダーなど、それぞれに適したエンコーダーを通り、生の入力を埋め込みに変換します。次にフュージョン段階でそれらを組み合わせ、デコーダーまたはタスクヘッドが出力を生成します。現在のアシスタントの多くは、すべての処理を大規模言語モデル(LLM)に通します。LLaVA(2023)は、画像特徴をトークンのようなベクトルに変換する学習済み射影を介して、CLIP画像エンコーダーをVicuna言語モデルに接続しました。DeepMindのFlamingo(2022)は、凍結した言語モデルに新しいクロスアテンション層を挿入し、テキストトークンが画像特徴に注目できるようにしました。
ネイティブマルチモーダルモデルは、完成した言語モデルにエンコーダーを追加するのではなく、最初から混合データで学習します。Googleは2023年12月にGeminiをネイティブマルチモーダルモデルとして発表しました。また、OpenAIのGPT-4o(2024年5月)は、テキスト、音声、画像、動画のあらゆる組み合わせを受け付け、音声入力に平均320ミリ秒で応答します。
ViLT(2021)などの初期の単一ストリームモデルは、画像パッチと質問トークンを1つのトランスフォーマーに入力し、3,129個の固定語彙から各回答を選択していました。ViLTはCPU上でも画像に関する質問に回答できるほど軽量です。
import requests
import torch
from PIL import Image
from transformers import ViltForQuestionAnswering, ViltProcessor
# ViLT embeds image patches and question tokens into one transformer input sequence
processor = ViltProcessor.from_pretrained("dandelin/vilt-b32-finetuned-vqa")
model = ViltForQuestionAnswering.from_pretrained("dandelin/vilt-b32-finetuned-vqa")
image = Image.open(requests.get("https://ultralytics.com/images/bus.jpg", stream=True).raw)
for question in ["What color is the bus?", "How many people are there?", "Is it raining?"]:
inputs = processor(image, question, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
# Pick the most likely answer from the model's fixed answer vocabulary
print(f"{question} -> {model.config.id2label[logits.argmax(-1).item()]}")ViLTは「青と白」と「いいえ」に正しく回答し、人物を3人と数えますが、少なくとも一部が見えている人物は4人です。全身が見えて歩いている男性が2人、左右の端で一部が切れている人物が2人います。小さい物体や一部しか見えない物体の数え間違いは、視覚言語モデルによくあるエラーです。
用途#
- 視覚的質問応答(VQA): Be My Eyesは2023年にBe My AIを追加しました。Be My AIはOpenAIのGPT-4を使用して写真を説明し、視覚障害者や弱視のユーザーからの追加質問に回答します。
- 自動運転車: Waymoのロボタクシーなどは、カメラ、lidar、レーダーを組み合わせます。それぞれが、まぶしい光、暗闇、霧など、ほかのセンサーが苦手とする状況を補います。
- 医療: 臨床モデルは、画像を読む放射線科医が活用する文脈情報として、患者のメモや病歴とともにスキャン画像を読み取ります。
- テキストから画像への生成: Stable Diffusionなどのモデルは、文章による説明を画像に変換します。テキストから動画を生成するモデルは、これを動きにまで拡張します。
- マルチモーダルRAG: LLMが回答を生成するために、画像、表、テキストの文章を取得します。
データセットのラベリングもマルチモーダルなタスクになっています。検出データセットでは、Ultralytics Platformのクラスプロンプト型スマートアノテーションがデータセットのクラス名をテキストとして、MicrosoftのFlorence-2、IDEA ResearchのGrounding DINO、MetaのSAM 3.1などのホスト型モデルに送信し、YOLO26検出器の学習に使う編集可能なボックスを返します。VLM Leaderboardでは、これらのモデルと生成VLMが実世界の検出データセットにどれほど正確にラベルを付けるかを比較します。
マルチモーダルAIと関連用語の違い#
- マルチモーダル学習: 対照的アラインメントや、早期・後期・クロスアテンションによるフュージョンなど、複数のモダリティを用いて学習するための手法です。マルチモーダルAIは、その結果として得られるシステムやアプリケーションを指します。
- マルチモーダルモデル: 複数のモダリティを扱う、単一の学習済みモデルです。多くのマルチモーダルAIシステムの中核となるコンポーネントです。
- 視覚言語モデル(VLM): 最も一般的な種類のマルチモーダルモデルで、画像または動画とテキストに対応します。
- センサーフュージョン: 多くの場合、カルマンフィルターを使って、複数のセンサーから得られた同じシーンの測定値を統合します。これは、学習型マルチモーダルモデルよりもはるか以前から、ロボティクスや車両で使われてきた手法です。










