什麼是多模態 AI?從單模態 LLM 到跨模態理解
從只能處理文字的 LLM,到能看、能聽、能讀的多模態 AI,理解編碼、對齊、融合與生成的核心流程。
什麼是多模態 AI?從單模態 LLM 到跨模態理解
你已經理解了傳統大型語言模型(LLM)如何處理文字:把詞彙轉成向量、用注意力機制理解語境,並自回歸生成回應。
但現實世界從來不只有文字。
人類理解世界的方式天生是多模態的——我們同時在看、聽、讀、觸摸。一張圖片、一段聲音或一個影片所包含的資訊量,往往超過千言萬語。當模型不再只能「讀文字」,而是具備了跨模態理解能力,它能為我們做到哪些事?
本文將帶你一次搞懂多模態 AI 是什麼、它是怎麼運作的、一個生活中的簡單例子,以及如何動手進行程式碼實作!
一、多模態是什麼?
多模態(Multimodal)指的是模型能同時處理多種模態的資訊——文字、圖像、聲音、影片、感測器資料等。
傳統的 LLM 只能處理文字。你給它一段文字,它回你一段文字。
但人類理解世界的方式是多模態的:我們同時看、聽、讀、觸摸。
多模態 AI 的目標,就是讓模型像人類一樣,從多種感官中理解世界。
打個比方:
- 單模態 LLM 像一個只能讀文字的學者。
- 多模態 AI 像一個能看、能聽、能讀的助理。
模態的種類
| 模態 | 說明 | 範例 |
|---|---|---|
| 文字 | 書面語言 | 文章、對話、程式碼 |
| 圖像 | 靜態視覺 | 照片、圖表、截圖 |
| 音訊 | 聲音訊號 | 語音、音樂、環境音 |
| 影片 | 時序視覺 | 電影、監控、教學影片 |
| 感測器 | 物理測量 | 溫度、加速度、GPS |
| 動作 | 行為輸出 | 機器人關節、滑鼠軌跡 |
為什麼「多模態」不是「多個單模態」
把一個文字模型和一個圖像模型放在一起,並不會自動變成多模態模型。
真正的多模態能力,是指模型能在同一個表示空間中理解不同模態之間的關係。
例如:
- 看到一張「貓在沙發上」的圖片,能回答「貓在哪裡?」
- 聽到「請把紅色按鈕按下去」,能辨識出圖片中哪個是紅色按鈕。
- 讀到一份圖表,能回答「第三季的成長率是多少?」
這些任務需要模型跨越模態邊界進行推理,而不是分別處理再拼接結果。
二、多模態模型怎麼運作?
多模態模型的核心挑戰是:不同模態的資料格式完全不同,如何讓它們在同一個模型中協同工作?
答案是:把不同模態都轉成向量,然後在同一個空間中對齊。
核心流程
1. 編碼(Encode):
- 圖像 → 視覺編碼器 → 視覺 token
- 文字 → 文字編碼器 → 文字 token
- 聲音 → 音訊編碼器 → 音訊 token
2. 對齊(Align):
- 把不同模態的 token 投影到同一個向量空間
- 讓「狗的圖片」和「狗的文字」在空間中靠近
3. 融合(Fuse):
- 把不同模態的 token 一起送入 Transformer
- 讓模型學習跨模態的關係
4. 生成(Generate):
- 根據融合後的表示,生成文字、圖像或其他模態
用一個比喻:
- 編碼 像把不同語言翻譯成同一種語言。
- 對齊 像確保翻譯後的詞彙在同一本字典中。
- 融合 像把不同來源的資訊整合在一起。
- 生成 像用整合後的資訊寫出一篇文章。
編碼:把不同模態轉成 token
圖像編碼:
圖片被切成固定大小的 patch,每個 patch 經過線性投影後變成一個視覺 token。ViT 將圖片視為一連串的 patch,直接應用純 Transformer 進行處理。ViT
圖片 (224×224) → 切成 14×14 個 patch → 每個 patch 變成一個向量 → 196 個視覺 patch
文字編碼:
文字經過分詞器切成 token,每個 token 對應一個嵌入向量。
"這隻貓在做什麼?" → ["這", "隻", "貓", "在", "做", "什", "麼", "?"] → 8 個文字 token
音訊編碼:
音訊被切成短時間窗口,每個窗口經過編碼器變成一個音訊 token。
依模型的時間窗切分 → 產生一系列音訊 token
例如:音訊 (16kHz, 10秒) → 切成 100 個 100ms 窗口 → 100 個音訊 token
對齊:讓不同模態在同一個空間
編碼後的 token 還在各自的空間中。
對齊的目的是把它們投影到同一個向量空間。
最經典的方法是 CLIP 的對比學習。CLIP CLIP 使用網路上 4 億個圖文對進行訓練,以文字作為監督信號來編碼圖像。
圖片 → 視覺編碼器 → 圖片向量 ─┐
├→ 對比學習 → 同一空間
文字 → 文字編碼器 → 文字向量 ─┘
訓練時,匹配的圖文對被拉近,不匹配的被推遠。
訓練完成後:
- 「狗的圖片」和「狗的文字」在空間中靠近。
- 「貓的圖片」和「狗的文字」在空間中遠離。
SigLIP 進一步改進了這個方法,用一對一的 Sigmoid 損失取代了 CLIP 中的 Softmax 對比損失,不需要跨樣本歸一化。SigLIP
融合:讓模型學習跨模態關係
對齊之後,不同模態的 token 可以一起送入 Transformer。
[視覺 token 1, 視覺 token 2, ..., 文字 token 1, 文字 token 2, ...]
↓
Transformer
↓
融合後的表示
在 Transformer 中,注意力機制讓視覺 token 和文字 token 互相關注:
- 文字中的「貓」關注到圖片中的貓。
- 圖片中的「沙發」關注到文字中的「坐」。
模型學習到跨模態的對應關係。
Flamingo 是一個經典的例子,它能夠處理任意交錯的文字和圖像序列,並在少量標註樣本下快速適應新任務。Flamingo
生成:產出回答
最後,模型根據融合後的表示生成回答。
融合後的表示 → 解碼器 → 生成的文字
對於生成圖像的模型,則是:
融合後的表示 → 擴散模型 → 生成的圖像
三、一個具體的例子
假設你給模型一張圖片和一個問題:
[圖片:一隻貓坐在沙發上]
問題:「這隻貓在做什麼?」
多模態模型的處理過程:
步驟一:編碼圖片
圖片 → ViT 編碼器 → 576 個視覺 token
每個 token 是一個向量,代表圖片的一小塊區域
步驟二:編碼文字
問題 → 文字分詞器 → 10 個文字 token
每個 token 是一個向量,代表一個詞
步驟三:對齊與融合
視覺 token 和文字 token 一起送入 Transformer
模型學習到:
- 圖片中的「貓」對應到文字中的「貓」
- 圖片中的「沙發」對應到文字中的「坐」
- 圖片中的「坐姿」對應到文字中的「做什麼」
步驟四:生成回答
模型生成:「這隻貓正坐在沙發上休息。」
這就是多模態模型的基本運作方式。
更複雜的例子
圖表問答:
[圖片:一張營收成長圖表]
問題:「第三季的成長率是多少?」
模型需要:
1. 辨識圖表中的座標軸與數據點
2. 找到第三季對應的數據
3. 計算成長率
4. 生成回答
跨模態推理:
[圖片:一個紅色按鈕和一個藍色按鈕]
語音指令:「請按下紅色按鈕」
模型需要:
1. 辨識圖片中的紅色和藍色按鈕
2. 理解「紅色按鈕」的語意
3. 對應到圖片中的位置
4. 輸出正確的動作
這些任務都需要模型跨越模態邊界進行推理。
四、如何實作?
一個最簡單的多模態模型,可以用以下步驟實作:
import torch
from transformers import AutoProcessor, AutoModelForVision2Seq
from PIL import Image
import requests
# 1. 載入模型和處理器
model_name = "HuggingFaceM4/idefics2-8b"
processor = AutoProcessor.from_pretrained(model_name)
model = AutoModelForVision2Seq.from_pretrained(
model_name,
torch_dtype=torch.float16,
device_map="auto",
)
# 2. 準備輸入
image = Image.open(
requests.get("https://example.com/cat.jpg", stream=True).raw
)
prompt = "這隻貓在做什麼?"
# 3. 處理輸入
inputs = processor(
images=image,
text=prompt,
return_tensors="pt",
).to(model.device)
# 4. 生成
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=100,
)
# 5. 解碼輸出
response = processor.decode(outputs[0], skip_special_tokens=True)
print(response)
這段程式碼展示了多模態推理的基本流程:
- 載入模型:使用預訓練的多模態模型。
- 準備輸入:圖片和文字一起處理。
- 處理輸入:把圖片轉成視覺 token,文字轉成文字 token。
- 生成:模型根據融合後的表示生成回答。
- 解碼:把生成的 token 轉回文字。
多模態的三種架構
多模態模型有三種主要架構:
| 架構 | 說明 | 代表模型 |
|---|---|---|
| 對比式 | 分別編碼不同模態,對齊到同一空間 | CLIP、SigLIP |
| 融合式 | 在 Transformer 中融合不同模態 | LLaVA、Flamingo |
| 統一式 | 所有模態用同一個模型處理 | GPT-4o、Gemini |
對比式:
圖片 → 視覺編碼器 → 圖片向量
文字 → 文字編碼器 → 文字向量
↓
對比學習,讓匹配的圖文靠近
融合式:
圖片 → 視覺編碼器 → 視覺 token
文字 → 文字編碼器 → 文字 token
↓
一起送入 Transformer
LLaVA 是融合式架構的代表,它將視覺編碼器與 LLM 連接起來,並透過視覺指令微調實現了通用的視覺與語言理解能力。LLaVA
統一式:
所有模態 → 同一個 Transformer → 統一表示
GPT-4o 是統一式架構的代表,它是一個自回歸的全模態模型,接受文字、音訊、圖像和影片的任意組合輸入,並生成文字、音訊和圖像的任意組合輸出。GPT-4o
這三種架構各有優缺點,我們會在下一篇深入討論。
五、為什麼多模態現在很重要?
三個原因:
1. 模型能力的天花板
純文字模型無法理解圖片、聲音、影片。
但真實世界的資訊是多模態的。
一份醫療報告包含文字描述、X 光片、檢驗數據。
一個客服問題可能是一張截圖。
一則新聞包含文字、圖片、影片。
如果模型只能處理文字,就無法理解這些完整的資訊。
2. 應用場景的需求
| 領域 | 應用 | 模態 |
|---|---|---|
| 醫療 | 看 X 光片、病理切片 | 圖像 + 文字 |
| 教育 | 看圖說故事、互動式學習 | 圖像 + 文字 + 語音 |
| 電商 | 看圖搜商品、自動生成描述 | 圖像 + 文字 |
| 客服 | 看截圖解決問題 | 圖像 + 文字 |
| 自駕 | 辨識路況、行人、號誌 | 圖像 + 感測器 |
| 機器人 | 理解指令、操作物件 | 圖像 + 文字 + 動作 |
3. 技術的成熟
- 視覺編碼器:ViT、SigLIP、DINOv2 等模型成熟。ViT SigLIP
- 對齊技術:CLIP 的對比學習成為標準。CLIP
- 訓練方法:多階段訓練(預訓練 → 對齊 → 微調)成熟。
- 開源模型:LLaVA、Idefics、Qwen-VL 等開源模型涌现。LLaVA
這些技術的成熟,讓多模態模型從研究走向應用。
六、小結
多模態 AI 讓模型從「只能讀文字」進化到「能看、能聽、能讀」。
它的核心是:把不同模態轉成向量,在同一個空間中對齊,然後融合生成。
這個核心可以拆解成四個步驟:
- 編碼:把圖像、文字、聲音轉成 token。
- 對齊:把不同模態的 token 投影到同一空間。
- 融合:用 Transformer 學習跨模態關係。
- 生成:根據融合後的表示產出回答。
理解了這個核心,你就有了進入多模態世界的基礎。
不過,多模態模型有很多種設計方式。
對比式、融合式、統一式,各有什麼優缺點?
為什麼 LLaVA 選擇融合式?為什麼 GPT-4o 選擇統一式?
這就是下一篇要談的主題。
下一篇預告
《多模態模型架構:對比式、融合式與統一式的取捨》
我們會深入三種多模態架構的設計邏輯、訓練方式、優缺點,以及在不同場景下該如何選擇。
參考文獻
- [CLIP] Radford, A., et al. “Learning Transferable Visual Models From Natural Language Supervision.” ICML, 2021. https://arxiv.org/abs/2103.00020
- [ViT] Dosovitskiy, A., et al. “An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale.” ICLR, 2020. https://arxiv.org/abs/2010.11929
- [LLaVA] Liu, H., et al. “Visual Instruction Tuning.” NeurIPS, 2023. https://arxiv.org/abs/2304.08485
- [Flamingo] Alayrac, J.-B., et al. “Flamingo: a Visual Language Model for Few-Shot Learning.” NeurIPS, 2022. https://arxiv.org/abs/2204.14198
- [GPT-4o] OpenAI. “GPT-4o System Card.” 2024. https://openai.com/index/gpt-4o-system-card/
- [SigLIP] Zhai, X., et al. “Sigmoid Loss for Language Image Pre-Training.” ICCV, 2023. https://arxiv.org/abs/2303.15343