跳轉到

2024 - Gemini:原生多模態#

案件摘要#

2023 年 12 月(部署於 2024 全年),Google DeepMind 發表 Gemini,主張語言模型不該「事後加掛」視覺,而應從預訓練第一天起就同時吃進文字、影像、音訊與視訊——這是 "natively multimodal"(原生多模態)路線。核心公式可以寫成:

\[ P(\text{下一個 token} \mid \underbrace{\text{文字},\ \text{影像},\ \text{音訊},\ \text{視訊}}_{\text{全部離散化為 token}}) \]

一句話:多模態不是外掛,而是母語。Gemini 1.5 更把上下文窗口推到一百萬 token——模型的「工作記憶」從一頁擴張到一整座圖書館。

前因 -- 為什麼會有這個案子#

  • 2021-CLIP多模態對齊.md(見 科學與歷史/智慧模型/)已證明文字與影像可以對齊到同一個嵌入空間,但 CLIP 只會「對齊」,不會「生成」與「對話」。
  • 2023-GPT-4多模態.md:OpenAI 在 GPT-4V 走的是「外掛路線」——語言模型本體不動,前面接一個預訓練好的視覺編碼器(如 CLIP 系),把影像轉成向量再餵給 LLM。這條路快,但視覺與語言的「理解深度」受制於接縫。
  • Google 的動機:被 ChatGPT 偷襲後(見 2022-ChatGPT大型語言模型.md),Google 需要一張「王牌」,而它最大的資產正是 DeepMind 的研究傳統與 YouTube 這座影音資料礦山——影音正是其他家難以複製的多模態訓練料。
  • 理論前驅:Flamingo(DeepMind 2022)與 PaLM-E(2023)已試過視覺-語言混合訓練;PaLM-E 更展示「具身多模態」的雛形——機器人觀察世界並行動。
  • 核心問題:不同模態的 token 化如何統一?影像離散化會損失什麼?混合訓練會不會互相干擾(災難性遺忘)?
  • 時間點的巧合與張力:Gemini 發表時 OpenAI 正陷入治理風波(2023/11 Altman 事件),Google 搶下了「多模態旗艦」的先手;2024 年 GPT-4o 隨即轉向原生路線,兩家在「原生」上重新對齊。

線索與推理 -- 數學式、程式、理論#

第一條線索:兩條路線的對決——外掛 vs 原生#

外掛路線(GPT-4V 式) 原生路線(Gemini 式)
架構 LLM 本體 + 預訓練視覺編碼器 單一 Transformer,多模態混訓
影像進入時機 對齊階段(後期) 預訓練階段(從零開始)
訓練目標 先學影像,再學「影像→語言」 一次學會所有模態的聯合分佈
優點 快、穩、不傷語言能力 模態間深度融合、可處理交錯序列
風險 接縫資訊損失、無法反哺視覺 模態互相干擾、訓練成本高

原生路線的賭注是:聯合分佈 \(P(x_{\text{text}}, x_{\text{image}}, x_{\text{audio}})\) 學得好,比邊際分佈再拼接更強。這類似統計學中「直接估聯合分佈」與「邊際獨立假設」的取捨。

第二條線索:一切皆 token——把世界離散化#

Transformer(見 2017-瓦茲瓦尼Transformer.md)只吃離散 token 序列。多模態的關鍵工程是「翻譯世界」:

  • 文字:BPE 切詞,每字元約 4 token。
  • 影像:切塊(patch)後用離散碼本量化,或用視覺編碼器輸出連續向量;每張 224×224 影像約產生 256–1024 個「視覺 token」。
  • 音訊:分割成 50ms 幀,量化為音訊碼——音訊 token 讓模型「聽見」語調與環境音。
  • 視訊:取幀 + 時間壓縮,一秒視訊約 1–2 幀。

於是「看圖說話」在數學上就退化成普通的下一 token 預測:

\[ P(\text{"這是一隻貓"} \mid [\underbrace{v_1, v_2, \dots, v_N}_{\text{影像 token}}, \text{"圖中是什麼?"}]) \]

注意力機制不區分 token 來自哪個模態——這正是「原生」的含義:同一組權重處理所有模態。

第三條線索:百萬級上下文——工作記憶的指數擴張#

Gemini 1.5 Pro 把上下文推到 \(10^6\) token(後續版本到 \(2 \times 10^6\) )。對比歷史:

年份 模型 上下文
1997 LSTM 有效記憶約數百步
2018 GPT-1 / BERT 512 token
2020 GPT-3 2048
2023 GPT-4 8K–32K
2024 Gemini 1.5 1M–2M

技術關鍵是注意力的線性化:標準注意力是 \(O(n^2)\) ,Gemini 1.5 據報導使用了改進的注意力變體(如滑動窗 + 全域注意力的混合),把成本壓到近線性。長上下文的價值:一次讀完一整本書、一小時影片、整個程式碼庫——「大海撈針」測試(在 100 萬 token 中找一句隱藏話)準確率近 100%。

第四條線索:陰影——交錯序列的訓練難題#

多模態混訓的損失函數是各模態加權:

\[ L = \lambda_{\text{text}} L_{\text{text}} + \lambda_{\text{image}} L_{\text{image}} + \lambda_{\text{audio}} L_{\text{audio}} \]

權重 \(\lambda\) 的調配是黑魔法:語言權太重→視覺學不好;視覺權太重→語言退化。這正是 1986 年反向傳播「功勞分配」問題的模態版:梯度該為哪個模態的 token 負多少責?

模態 token 成本 資訊特徵
文字 低(每字約 4 token) 高密度語義
影像 中(每張 256–1024) 空間冗餘高
音訊/視訊 高(時序連續) 時間冗餘最高

時間冗餘是壓縮的關鍵:連續幀幾乎相同,重複編碼是浪費——這正是後續世界模型(2024-VJEPA世界模型.md)攻擊生成式路線的同一個算術。

結案 -- 後果與影響#

  • 「原生多模態」從 2024 年起成為旗艦模型的標配:GPT-4o(2024/05)改走原生路線、Claude 加上視覺、開源模型跟進——外掛路線被歷史淘汰。
  • 影音資料從「無用」變成「戰略礦產」,擁有影音資產的公司獲得資料護城河。
  • 長上下文改變使用範式:從「貼片段給模型」變成「丟整份文件」,RAG(檢索增強)的必要性下降一部分。
  • 為2025-MCP智慧代理.md 埋下伏筆:多模態感知 + 長上下文,讓代理能「看螢幕、聽聲音、操作電腦」。
  • 為 2024-VJEPA世界模型.md 與 2024-Sora世界模型.md 提供對照:Gemini 走「理解」路線,Sora/V-JEPA 走「模擬/預測」路線——兩者最終在 2025 的世界模型上匯流。
  • 回望主線:1890 聯想主義→1943 邏輯神經元→1986 反向傳播→2017 Transformer→2022 ChatGPT→2024 原生多模態——智慧的載體從「文字」擴張到「全部感官」。

關鍵人物與文獻#

  • Gemini Team, Google DeepMind:Gemini: A Family of Highly Capable Multimodal Models, 2023(技術報告)。
  • Gemini 1.5 Team:Gemini 1.5: Unlocking multimodal understanding across millions of tokens of context, 2024。
  • Demis Hassabis:DeepMind 執行長,原生多模態路線的推手。
  • Radford et al., Learning Transferable Visual Models From Natural Language Supervision(CLIP), 2021——對齊路線的起點。
  • Alayrac et al., Flamingo: a Visual Language Model for Few-Shot Learning, 2022。
  • Driess et al., PaLM-E: An Embodied Multimodal Language Model, 2023。
  • 相關案件:2021-CLIP多模態對齊.md、2023-GPT-4多模態.md、2024-VJEPA世界模型.md、2024-Sora世界模型.md、2025-MCP智慧代理.md

補充 -- 程式實作(python + pytorch)#

本案「同一注意力撈所有模態」+長上下文大海撈針的最小可執行版本,見 _code/2024-GeminiNeedle.py(已實測可跑,CPU 約 1 分鐘;2048 選 1):

# 2024 - Gemini: P(下一token | 文字,影像,音訊全離散化); 長上下文大海撈针
import math
import torch
import torch.nn as nn
import torch.nn.functional as F


def main():
    torch.manual_seed(0)
    D, H = 32, 4
    wq = nn.Linear(D, D, bias=False)
    wk = nn.Linear(D, D, bias=False)
    wv = nn.Linear(D, D, bias=False)
    opt = torch.optim.Adam(list(wq.parameters()) + list(wk.parameters())
                           + list(wv.parameters()), lr=1e-2)
    for ep in range(250):  # 世界: 2048 個 tokens 中藏 1 把鑰匙, 查詢是另一模態的同一語義
        opt.zero_grad()
        B, L = 8, 2048
        mem = torch.randn(B, L, D)
        key = torch.randn(B, 1, D)
        pos = torch.randint(0, L, (B,))
        for b in range(B):
            mem[b, pos[b]] = key[b, 0] + torch.randn(D) * 0.05
        q = key + torch.randn(B, 1, D) * 0.05
        s = (wq(q) @ wk(mem).transpose(-2, -1)) / math.sqrt(D // H)
        a = F.softmax(s, -1)
        out = a @ wv(mem)
        loss = ((out - wv(key)) ** 2).mean()
        loss.backward()
        opt.step()
    # (評測: 新大海撈针, 命中+注意力質量, 見 _code/2024-GeminiNeedle.py 全文)


if __name__ == "__main__":
    main()

執行結果(python3 _code/2024-GeminiNeedle.py,torch 2.12.0):

2048 選 1 撈针命中=3/4 針上注意力質量=0.45 (隨機≈0.0005)
結論: 原生多模態 = 同一注意力撈所有模態 -- 外掛管線做不到跨模態直連

程式解說:查詢與記憶來自不同採樣(q = key + 噪聲、藏針 key + 噪聲)——跨模態的最小骨架:同一語義、不同觀測。訓練目標是「撈出的值等於鑰匙的值」,注意力被迫學會語義匹配而非位置記憶。2048 選 1 命中 3/4、針上質量 0.45(隨機 0.0005,相差近千倍)——百萬級上下文的「工作記憶」即此機制的放大版。此即原生 vs 外掛的分野:外掛管線(CLIP 取特徵+LLM 讀特徵)做不到查詢與記憶的端對端直連;原生把一切壓成 token,一個 softmax 全撈。代價也在形狀裡:[B,2048,2048] 的注意力——百萬 token 的平方即 Gemini 的帳單。