EN Last sync: 2026-01-15

第1章: マルチモーダルAIの基礎

複数のデータタイプを処理するAIモデルを理解する

読了時間: 25-30分 コード例: 6 演習: 3

1.1 マルチモーダルAIとは

マルチモーダルAI(Multimodal AI)とは、複数の種類のデータ(モダリティ)を同時に処理、理解、生成できる人工知能システムを指します。単一のデータタイプに特化した従来のユニモーダルモデルとは異なり、マルチモーダルモデルはクロスモーダルな理解と推論を実現します。

マルチモーダルAIの主要な特徴

ユニモーダル vs. マルチモーダルモデル

観点 ユニモーダルモデル マルチモーダルモデル
入力タイプ 単一モダリティ(テキストまたは画像または音声) 複数モダリティ(テキストと画像と音声)
代表例 GPT-3(テキスト)、ResNet(画像)、Whisper(音声) GPT-4V、Gemini、CLIP、LLaVA
用途 テキスト生成、画像分類 視覚的QA、画像キャプション、クロスモーダル検索
複雑さ シンプルなアーキテクチャ 融合メカニズムが必要

なぜマルチモーダルAIが重要なのか

人間の知覚は本質的にマルチモーダルです。私たちは視覚、聴覚、テキスト情報を統合して世界を理解しています。マルチモーダルAIはこの能力の再現を目指します。

1.2 モダリティの種類

モダリティとは、情報を伝達するデータの種類です。現代のマルチモーダルAIシステムは様々なモダリティを扱います。

graph TB subgraph Primary["主要モダリティ"] T[テキスト/言語] I[画像/ビジョン] A[音声/スピーチ] V[動画] end subgraph Extended["拡張モダリティ"] D[深度/3D] S[センサーデータ] TS[時系列] end MM[マルチモーダルモデル] --> T MM --> I MM --> A MM --> V MM --> D MM --> S MM --> TS style MM fill:#9b59b6,color:white style T fill:#e3f2fd style I fill:#fff3e0 style A fill:#f3e5f5 style V fill:#e8f5e9

主要モダリティ

モダリティ 説明 一般的なフォーマット 応用例
テキスト 自然言語、コード、ドキュメント 文字列、トークン、埋め込み 翻訳、要約、QA
画像 静止画像コンテンツ RGBピクセル、パッチ、特徴マップ 分類、検出、キャプション生成
音声 スピーチ、音楽、効果音 波形、スペクトログラム、メル周波数 音声認識、音楽生成
動画 時間的な視覚シーケンス フレームシーケンス、オプティカルフロー 行動認識、動画キャプション

拡張モダリティ

1.3 マルチモーダル融合戦略

マルチモーダルモデルの重要な設計上の決定は、異なるモダリティからの情報をどこでどのように組み合わせるかです。これを融合戦略と呼びます。

早期融合(入力レベル)

graph LR I1[画像] --> C[結合] T1[テキスト] --> C C --> M[共有モデル] M --> O[出力] style C fill:#e3f2fd style M fill:#9b59b6,color:white

早期融合は、処理前の入力レベルで異なるモダリティの生の特徴を結合します。

# 早期融合の例
import torch
import torch.nn as nn

class EarlyFusionModel(nn.Module):
    def __init__(self, image_dim, text_dim, hidden_dim, output_dim):
        super().__init__()
        # 入力時に結合
        self.fusion_layer = nn.Linear(image_dim + text_dim, hidden_dim)
        self.classifier = nn.Linear(hidden_dim, output_dim)

    def forward(self, image_features, text_features):
        # 早期に特徴を結合
        combined = torch.cat([image_features, text_features], dim=-1)
        hidden = torch.relu(self.fusion_layer(combined))
        return self.classifier(hidden)

後期融合(決定レベル)

graph LR I2[画像] --> IM[画像モデル] T2[テキスト] --> TM[テキストモデル] IM --> F[融合] TM --> F F --> O2[出力] style IM fill:#fff3e0 style TM fill:#e3f2fd style F fill:#9b59b6,color:white

後期融合は、各モダリティを独立して処理し、出力時に予測を統合します。

# 後期融合の例
class LateFusionModel(nn.Module):
    def __init__(self, image_dim, text_dim, hidden_dim, output_dim):
        super().__init__()
        # 別々のエンコーダー
        self.image_encoder = nn.Sequential(
            nn.Linear(image_dim, hidden_dim),
            nn.ReLU()
        )
        self.text_encoder = nn.Sequential(
            nn.Linear(text_dim, hidden_dim),
            nn.ReLU()
        )
        # 後期融合
        self.classifier = nn.Linear(hidden_dim * 2, output_dim)

    def forward(self, image_features, text_features):
        image_hidden = self.image_encoder(image_features)
        text_hidden = self.text_encoder(text_features)
        # 別々の処理後に結合
        combined = torch.cat([image_hidden, text_hidden], dim=-1)
        return self.classifier(combined)

ハイブリッド融合(マルチレベル)

graph TB I3[画像] --> IE[画像エンコーダー] T3[テキスト] --> TE[テキストエンコーダー] IE --> CA1[クロスアテンション層 1] TE --> CA1 CA1 --> CA2[クロスアテンション層 2] CA2 --> O3[出力] style CA1 fill:#9b59b6,color:white style CA2 fill:#9b59b6,color:white

ハイブリッド融合は、ネットワーク全体の複数のポイントでモダリティを結合します。

クロスアテンション融合

現代のマルチモーダルモデルは主にクロスアテンションを融合に使用します。一方のモダリティがクエリを提供し、もう一方がキーとバリューを提供して、適応的な情報交換を可能にします。

$$\text{CrossAttn}(Q_\text{text}, K_\text{image}, V_\text{image}) = \text{softmax}\left(\frac{Q_\text{text} K_\text{image}^T}{\sqrt{d_k}}\right) V_\text{image}$$

融合戦略の比較

戦略 使用場面 長所 短所
早期融合 相関の高いモダリティ、シンプルなタスク 統合特徴を学習 高次元性
後期融合 独立したモダリティ、アンサンブル的 モジュラー、解釈可能 インタラクションを逃す
ハイブリッド/クロスアテンション 複雑な推論、VLM 豊かなインタラクション、柔軟 計算コスト

1.4 マルチモーダルAIの歴史と進化

マルチモーダルAIは、特にTransformerアーキテクチャの導入以降、急速に進化してきました。

timeline title マルチモーダルAIの進化 2017 : Transformerアーキテクチャ(Attention Is All You Need) 2019 : VisualBERT、ViLBERT(初期のVision-Language) 2021 : CLIP(対照学習革命) 2022 : DALL-E 2、Stable Diffusion(テキストから画像) 2023 : GPT-4V、LLaVA、Gemini(Any-to-Any) 2024 : Claude 3 Vision、Sora(動画生成) 2025 : Janus-Pro、Molmo 2(オープンソースの躍進)

主要なマイルストーン

モデル/イベント 意義
2021 CLIP(OpenAI) Vision-Languageアライメントのための大規模対照学習を実証
2022 DALL-E 2、Stable Diffusion 高品質なテキストから画像生成が実用的に
2023 GPT-4V、Gemini LLMがネイティブなビジョン機能を獲得
2024 Claude 3、Sora マルチモーダル推論と動画生成
2025 DeepSeek Janus-Pro オープンソースの統一理解 + 生成モデル

1.5 現在の状況(2025-2026年)

主要なマルチモーダルモデル

モデル 開発者 主な強み ライセンス
GPT-4V/4o OpenAI 高度な推論、ツール使用 プロプライエタリ(API)
Gemini 3 Pro Google 100万トークンコンテキスト、ネイティブマルチモーダル プロプライエタリ(API)
Claude 3.5/4 Anthropic 強力な推論、安全性 プロプライエタリ(API)
LLaVA-1.5/NeXT Microsoft/コミュニティ 効率的なVLMアーキテクチャ オープンソース
DeepSeek Janus-Pro DeepSeek 統一理解 + 生成 MITライセンス

モデルタイプ別の主要機能

graph TB subgraph Understanding["理解モデル"] CLIP[CLIP/SigLIP] BLIP[BLIP-2] LLaVA[LLaVA] end subgraph Generation["生成モデル"] DALLE[DALL-E 3] SD[Stable Diffusion] MJ[Midjourney] end subgraph Unified["統一モデル"] GPT4V[GPT-4V] Gemini[Gemini] Janus[Janus-Pro] end Understanding --> |"画像-テキストマッチング"| Tasks1[VQA、検索、キャプション] Generation --> |"テキストから画像"| Tasks2[アート、デザイン、マーケティング] Unified --> |"Any-to-Any"| Tasks3[対話、推論、創作] style Understanding fill:#e3f2fd style Generation fill:#fff3e0 style Unified fill:#f3e5f5

1.6 ハンズオン: 初めてのマルチモーダル推論

BLIPモデルを使用した画像キャプション生成のシンプルなマルチモーダル推論を実行してみましょう。

# 必要なパッケージのインストール
# pip install transformers torch pillow requests

from transformers import BlipProcessor, BlipForConditionalGeneration
from PIL import Image
import requests

# BLIPモデルとプロセッサーの読み込み
processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")

# URLから画像を読み込み
url = "https://images.unsplash.com/photo-1574158622682-e40e69881006?w=400"
image = Image.open(requests.get(url, stream=True).raw)

# キャプション生成
inputs = processor(image, return_tensors="pt")
output = model.generate(**inputs, max_new_tokens=50)
caption = processor.decode(output[0], skip_special_tokens=True)

print(f"生成されたキャプション: {caption}")
# 出力: "a cat sitting on a table looking at the camera"

BLIPを使った視覚的質問応答

# 視覚的質問応答
from transformers import BlipProcessor, BlipForQuestionAnswering

# VQAモデルの読み込み
vqa_processor = BlipProcessor.from_pretrained("Salesforce/blip-vqa-base")
vqa_model = BlipForQuestionAnswering.from_pretrained("Salesforce/blip-vqa-base")

# 画像について質問する
question = "What animal is in the image?"
inputs = vqa_processor(image, question, return_tensors="pt")
output = vqa_model.generate(**inputs)
answer = vqa_processor.decode(output[0], skip_special_tokens=True)

print(f"質問: {question}")
print(f"回答: {answer}")
# 出力: "cat"

OpenAIのGPT-4V APIを使用

# マルチモーダル推論にGPT-4Vを使用
import openai
import base64

def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')

# APIキーを設定
client = openai.OpenAI(api_key="your-api-key")

# GPT-4Vで画像を分析
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "この画像には何がありますか?詳しく説明してください。"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://images.unsplash.com/photo-1574158622682-e40e69881006?w=400"
                    }
                }
            ]
        }
    ],
    max_tokens=300
)

print(response.choices[0].message.content)

1.7 マルチモーダルAIの主要な課題

現在の制限

マルチモーダルAIは大きな進歩を遂げましたが、重要な課題が残っています。

1. マルチモーダルハルシネーション

モデルが視覚コンテンツと矛盾するテキストを生成し、画像に存在しないオブジェクトや属性を記述する場合があります。

2. クロスモーダルアライメント

異なるモダリティ間の正確なアライメント(例:特定の単語を画像領域にマッチング)を達成することは依然として困難です。

3. 計算コスト

マルチモーダルモデルは、訓練(数十億の画像-テキストペア)と推論(複数モダリティの処理)の両方で大きな計算リソースを必要とします。

4. 評価

単一の指標でマルチモーダル品質を捉えることはできません。タスクごとに専門的なベンチマークが必要です(VQA精度、キャプションBLEU、生成FID)。

1.8 まとめ

第1章の重要ポイント

演習

演習1: 融合戦略の分析

SNS投稿(テキスト + 画像)の皮肉検出タスクが与えられた場合、どの融合戦略を選択しますか?その理由は?皮肉はテキストと画像内容の不一致に依存することが多いことを考慮してください。

演習2: モデル選択

ECサイトの画像検索システムを構築する必要があります。ユーザーは商品説明をタイプして一致する画像を見つけます。どのマルチモーダルモデルアーキテクチャが最適でしょうか?(ヒント: CLIPの設計を考えてみてください)

演習3: ハンズオン実装

BLIPコード例を修正して、複数の画像をバッチ処理できるようにしてください。画像を1つずつ処理する場合とバッチ処理する場合の推論時間の違いを測定してください。