Home 論文解説: Chameleon — Mixed-Modal Early-Fusion Foundation Models
投稿
キャンセル

📄 論文解説: Chameleon — Mixed-Modal Early-Fusion Foundation Models

本記事は arXiv:2405.09818 Chameleon: Mixed-Modal Early-Fusion Foundation Models の解説記事です。

論文概要(Abstract)

Chameleonは、Meta(FAIR)が提案したEarly-Fusion型のトークンベースマルチモーダル基盤モデルである。テキストと画像を任意の順序で理解・生成できる統一アーキテクチャを特徴とし、7Bおよび34Bパラメータの2つのモデルサイズで提供される。著者らは安定した学習手法、アライメントレシピ、Early-Fusion設定に最適化されたアーキテクチャ設計を提案している。画像キャプション生成ではSoTA性能を達成し、テキストのみのタスクでもLlama-2と同等の性能を維持すると報告されている。

この記事は Zenn記事: Gemini 3.1 Pro マルチモーダルAPI実践ガイド:画像・音声・動画をPythonで統合処理する の深掘りです。

情報源

背景と動機(Background & Motivation)

従来のマルチモーダルモデルは、大きく2つのアプローチに分かれていた。

Late-Fusion(後期統合)アプローチ: LLaVA、MiniGPT-4、InstructBLIPなどに代表される手法で、事前学習済みのVision Encoder(CLIP ViT等)とLLMを接続層(projection layer)で結合する。このアプローチは実装が容易で個々のモデルを再利用できるが、モダリティ間の情報統合が接続層に制約される。

Early-Fusion(早期統合)アプローチ: Chameleonが採用する手法で、テキストと画像をともにトークンに変換し、単一のTransformerで処理する。GPT-4やGeminiもこのカテゴリに属するとされるが、詳細なアーキテクチャは公開されていない。

著者らは、Early-Fusionアプローチが「真のマルチモーダル理解・生成」を実現するために必要だと主張している。Late-Fusionでは、テキスト→画像、画像→テキストといった方向性が固定されがちであるのに対し、Early-Fusionではテキストと画像を任意の順序でインターリーブした入出力が可能になる。

主要な貢献(Key Contributions)

  • 貢献1: テキスト・画像をトークンレベルで統一するEarly-Fusion型アーキテクチャの設計と、大規模学習における安定化手法の確立
  • 貢献2: 画像キャプション生成でSoTA、テキスト生成でLlama-2/Mixtral 8x7B相当の性能を、単一モデルで達成
  • 貢献3: 人間評価において、長文マルチモーダル生成タスクでGemini ProおよびGPT-4Vに匹敵する性能を達成

技術的詳細(Technical Details)

アーキテクチャ

Chameleonのアーキテクチャは、以下の3つのコンポーネントから構成される。

1. 画像トークナイザー: 画像をディスクリートトークンに変換するために、VQ-VAE(Vector Quantized Variational Autoencoder)ベースのトークナイザーを使用する。具体的には、Meta独自の画像トークナイザーが各画像を1,024個のトークンに変換する。

画像トークン化の数式:

\[\mathbf{z}_q = \arg\min_{\mathbf{e}_k \in \mathcal{E}} \| \mathbf{z}_e(\mathbf{x}) - \mathbf{e}_k \|_2\]

ここで、

  • $\mathbf{x}$: 入力画像
  • $\mathbf{z}_e(\mathbf{x})$: エンコーダの出力(連続表現)
  • $\mathcal{E} = {\mathbf{e}_1, \ldots, \mathbf{e}_K}$: コードブック($K = 8,192$のディスクリートコード)
  • $\mathbf{z}_q$: 量子化されたトークン

2. 統一トークン空間: テキストトークン(BPEベース)と画像トークン(VQ-VAE由来)を同一のトークン空間に配置する。語彙サイズはテキスト65,536 + 画像8,192 = 合計73,728トークンとなる。

3. Decoder-Only Transformer: 統一トークン列を自己回帰的に処理する。モデルサイズは7Bと34Bの2種類。

学習の安定化

著者らは、Early-Fusionモデルの学習が不安定になりやすいことを指摘し、以下の安定化手法を導入している。

QK-Norm(Query-Key正規化): Attention計算において、QueryとKeyベクトルにLayerNormを適用する。

\[\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{\text{LN}(Q) \cdot \text{LN}(K)^T}{\sqrt{d_k}}\right) V\]

ここで、

  • $\text{LN}(\cdot)$: Layer Normalization
  • $Q, K, V$: Query, Key, Value行列
  • $d_k$: Keyの次元数

この正規化により、Attentionスコアの大きな外れ値を抑制し、学習の安定性を向上させる。

ドロップアウトの導入: 入力層とAttention層にドロップアウトを適用。通常のLLM学習ではドロップアウトを使用しない傾向があるが、マルチモーダル学習ではモダリティ間のバランスを取るために有効であると著者らは報告している。

z-loss正規化: ロジットの大きさを制限するための正則化項:

\[\mathcal{L}_z = \alpha \cdot \log^2 \left(\sum_{i} e^{z_i}\right)\]

ここで$z_i$はロジット、$\alpha$は正則化係数($\alpha = 10^{-5}$)。

アルゴリズム

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import torch
import torch.nn as nn


class ChameleonTokenizer:
    """Chameleon統一トークナイザー

    テキストと画像を同一トークン空間に変換する。
    テキスト: BPE (65,536 tokens)
    画像: VQ-VAE codebook (8,192 tokens, offset by 65,536)
    """

    def __init__(
        self,
        text_vocab_size: int = 65_536,
        image_codebook_size: int = 8_192,
    ):
        self.text_vocab_size = text_vocab_size
        self.image_codebook_size = image_codebook_size
        self.total_vocab = text_vocab_size + image_codebook_size

    def encode_image(self, image: torch.Tensor) -> torch.Tensor:
        """画像をディスクリートトークンに変換

        Args:
            image: (B, C, H, W) 形状の画像テンソル

        Returns:
            (B, 1024) 形状のトークンID列
            (テキスト語彙サイズ分オフセット済み)
        """
        # VQ-VAEエンコーダで連続表現に変換
        z_e = self.vqvae_encoder(image)  # (B, D, 32, 32)

        # コードブックから最近傍を検索
        z_flat = z_e.reshape(-1, z_e.shape[1])  # (B*1024, D)
        distances = torch.cdist(z_flat, self.codebook)
        indices = distances.argmin(dim=-1)  # (B*1024,)

        # テキスト語彙サイズ分オフセット
        indices = indices + self.text_vocab_size

        return indices.reshape(image.shape[0], -1)  # (B, 1024)

実装のポイント(Implementation)

Chameleonの実装においていくつかの注意点がある。

学習データの構成: 著者らは、テキストのみのデータとテキスト+画像のデータを適切な比率で混合することが重要だと報告している。画像データの比率が高すぎると、テキスト性能が劣化する(catastrophic forgetting)。

画像トークン数: 各画像は1,024トークンに変換されるため、入力コンテキストの中で画像が大きなトークン消費を占める。これはGemini 3.1 Proのmedia_resolutionによるトークン制御(HIGH: 最大2,000トークン、LOW: 258トークン)と対比すると、Chameleonは固定トークン数(1,024)を使用する点で柔軟性に欠ける。

推論時の画像生成: テキスト生成と同じ自己回帰デコーディングで画像トークンを生成し、VQ-VAEデコーダで画像にデコードする。ただし、画像生成品質は専用の拡散モデル(Stable Diffusion等)に及ばないと著者らは認めている。

重みとコード公開: GitHub(facebookresearch/chameleon)でコードと重みが公開されているが、Vicunaライセンスの制約があるため商用利用には注意が必要である。

Gemini 3.1 Proとの比較分析

Chameleonの設計思想を理解することで、Gemini 3.1 Proのアーキテクチャ選択がなぜ優れているかを逆説的に理解できる。

トークン化戦略の違い

Chameleonは画像を固定1,024トークンに変換する。一方、Gemini 3.1 Proはmedia_resolutionパラメータで258〜2,000トークンの範囲で動的に制御できる。

\[\text{Cost}_{\text{Chameleon}} = N_{\text{images}} \times 1024 \times C_{\text{per\_token}}\] \[\text{Cost}_{\text{Gemini}} = N_{\text{images}} \times T_{\text{resolution}} \times C_{\text{per\_token}}\]

ここで$T_{\text{resolution}} \in {258, 770, 2000}$はmedia_resolution設定に依存する。Gemini 3.1 ProでLOW設定を使用すれば、Chameleonの固定1,024トークンと比較して約75%のトークン削減が可能である。

推論制御の有無

Chameleonには推論深度を制御するパラメータがない。モデルは常に同じ計算量で推論を行う。Gemini 3.1 Proのthinking_levelは、同じモデルでタスク複雑度に応じた計算リソースの動的配分を可能にしており、API設計としてはより成熟している。

モダリティの幅

Chameleonはテキストと画像の2モダリティのみをサポートする。Gemini 3.1 Proはテキスト・画像・音声・動画・PDFの5モダリティに対応しており、実用上の適用範囲が広い。ただし、Chameleonは画像の理解と生成の両方を1つのモデルで行えるのに対し、Gemini 3.1 Proは画像生成に対応していない点はChameleonの優位性である。

実験結果(Results)

著者らが報告している主要ベンチマーク結果を以下に示す(論文Table 2〜5より)。

画像理解タスク:

ベンチマークChameleon 34BLLaVA-1.5 13BGemini ProGPT-4V
VQAv271.080.071.277.2
TextVQA58.761.365.778.0

テキスト生成タスク:

ベンチマークChameleon 34BLlama-2 70BMixtral 8x7B
MMLU (5-shot)62.669.870.6
HellaSwag79.785.386.5

長文マルチモーダル生成(人間評価、論文Section 5.3より): 著者らは、人間評価において Chameleon 34B がGemini ProおよびGPT-4Vに匹敵する評価を得たと報告している。ただし、この評価は長文マルチモーダル生成に限定されており、個別のベンチマークでは性能差がある。

実運用への応用(Practical Applications)

Chameleonのアーキテクチャは、Gemini 3.1 Proと比較する際に重要な設計判断の違いを示している。

Early-Fusion vs Late-Fusion のトレードオフ:

観点Chameleon (Early-Fusion)Gemini 3.1 Pro (推定Early-Fusion)
画像トークン数固定 1,024media_resolutionで可変(258〜2,000)
画像生成対応(自己回帰)非対応(3.1 Pro)
音声入力非対応対応
推論制御なしthinking_level (HIGH/MEDIUM/LOW)
コンテキスト長4,096トークン100万トークン

プロダクション観点では、Chameleonは画像の理解と生成を1つのモデルで行える利点があるが、コンテキスト長やモダリティの幅ではGemini 3.1 Proが優位である。一方、Chameleonはオープンソースであるため、プライベートデータでのファインチューニングが可能という利点がある。

関連研究(Related Work)

  • LLaVA / LLaVA-OneVision: Late-Fusion型VLMの代表例。CLIP ViTエンコーダとLLMをLinear Projectionで接続。実装の容易さと性能のバランスが良く、オープンソースVLMとして広く使用されている
  • Gemini (2312.11805): GoogleのEarly-Fusion型マルチモーダルモデル。テキスト・画像・音声・動画を統合処理。Chameleonとは同カテゴリだが、アーキテクチャの詳細は非公開
  • GPT-4V: OpenAIのマルチモーダルモデル。高い性能を持つが、アーキテクチャの詳細やEarly/Late-Fusionの選択は公開されていない

まとめと今後の展望

Chameleonは、Early-Fusion型マルチモーダルモデルの設計における重要な知見を提供している。特にQK-Normやz-lossによる学習安定化手法は、大規模マルチモーダルモデルの訓練における実用的な貢献である。

著者らは、画像生成品質やテキストのみのベンチマークでの性能差を今後の課題として挙げている。また、Early-Fusionアプローチは学習コストが高い(テキスト・画像を最初から統合学習する必要がある)ため、Late-Fusionアプローチとのコスト対効果の比較も重要な研究方向である。

参考文献

この投稿は CC BY 4.0 でライセンスされています。