VLM 架構與視覺—語言對齊
深入探討 VLM 架構,包括 CLIP、SigLIP 與 vision transformers。圖像 patch 如何變成 token、對齊訓練,以及錯位(misalignment)如何製造可利用之缺口。
VLM 架構概觀
現代 VLM 由三個串聯之核心元件組成:
┌─────────────┐ ┌──────────────────┐ ┌─────────────┐
│ 視覺 │ │ 對齊/ │ │ 語言 │
│ 編碼器 │───▶│ Projection │───▶│ 模型 │
│ (ViT/CLIP) │ │ 層 │ │ (LLM) │
└─────────────┘ └──────────────────┘ └─────────────┘
圖像 橋接 文字 + 視覺
Patch 表徵 推理
每個元件引入不同的攻擊面。理解架構是理解攻擊的先決條件。
視覺編碼器
Vision Transformers(ViT)
Vision Transformer(ViT) 是多數現代 VLM 的骨幹。關鍵洞察是:將圖像視為文字序列來處理。
Patch 擷取
輸入圖像(例如 224x224)被分割為不重疊之 patch(例如每塊 16x16 像素),產出 196 個 patch。
線性嵌入
每個 patch 被壓平為向量,經線性層投影產出維度為
d_model之 patch embedding。位置編碼
加入可學習之位置嵌入,使模型了解 patch 之間的空間關係。
Transformer 處理
patch embedding 序列通過多層具 self-attention 之 transformer,產生具脈絡之表徵。
CLIP 與對比訓練
CLIP 改變了 VLM 架構——它為圖像與文字學習共享 embedding 空間。其訓練目標:使對應之圖文配對於 embedding 空間中接近,不對應者則遠離。
# 簡化之 CLIP 對比損失
def clip_loss(image_embeddings, text_embeddings, temperature=0.07):
# 正規化 embeddings
image_embeddings = F.normalize(image_embeddings, dim=-1)
text_embeddings = F.normalize(text_embeddings, dim=-1)
# 計算相似度矩陣
logits = (image_embeddings @ text_embeddings.T) / temperature
# 對稱交叉熵損失
labels = torch.arange(len(logits), device=logits.device)
loss_i2t = F.cross_entropy(logits, labels)
loss_t2i = F.cross_entropy(logits.T, labels)
return (loss_i2t + loss_t2i) / 2安全意涵:由於 CLIP 將圖像映射至與文字相同之空間,可打造使對抗圖像具與任意文字相同 embedding 之攻擊。這是許多 embedding 空間攻擊的基礎。
SigLIP 與其他變體
SigLIP 以 sigmoid 損失取代 softmax 為本之對比損失,將每個圖文配對獨立處理,而非相對於批次。這改變了 embedding 幾何,進而影響對抗可遷移性。
| 編碼器 | 訓練 | 解析度 | 安全備註 |
|---|---|---|---|
| CLIP ViT-L/14 | 對比(softmax) | 224–336px | 最多研究;許多已發表之攻擊 |
| SigLIP | 對比(sigmoid) | 224–384px | 不同 embedding 幾何;攻擊研究較少 |
| EVA-CLIP | 對比 + 蒸餾 | 224–448px | 蒸餾可能傳播漏洞 |
| InternViT | 漸進訓練 | 448px | 較高解析度 = 更多 patch = 更大攻擊面 |
對齊與 Projection 層
視覺編碼器與語言模型運作於不同 embedding 空間。對齊層於其間架橋。
線性 Projection
最簡單之做法:學習得到之線性變換(或 MLP),將視覺編碼器輸出映射至 LLM 輸入空間。
class LinearProjection(nn.Module):
def __init__(self, vision_dim, llm_dim):
super().__init__()
self.proj = nn.Linear(vision_dim, llm_dim)
def forward(self, vision_features):
# vision_features: [batch, num_patches, vision_dim]
return self.proj(vision_features)
# 輸出: [batch, num_patches, llm_dim]為 LLaVA 與類似架構所用。漏洞在於:單一線性層可能無法完整捕捉複雜之跨模態關係,留下系統性錯位模式。
Q-Former(Cross-Attention)
BLIP-2 引入 Q-Former——使用一組可學習之 query token,注意視覺編碼器之輸出。
可學習 Queries(32 tokens)
│
▼
┌───────────────────┐
│ Cross-Attention │◀── 視覺編碼器特徵(196 patch)
│ + Self-Attention │
└───────────────────┘
│
▼
32 視覺 tokens → LLM
安全意涵:Q-Former 將 196 patch token 壓縮為 ~32 query token。此有損壓縮意味部分視覺資訊被捨棄——攻擊者可利用 Q-Former 注意(與忽略)的對象,打造「凸顯對抗內容、壓抑善意脈絡」之輸入。
Perceiver Resampler
於 Flamingo 風格架構中使用,Perceiver resampler 類似 Q-Former 但使用不同注意力機制。它引入自身之注意力偏好,亦可被利用。
錯位如何製造漏洞
Embedding 空間缺口
視覺編碼器與 LLM 通常分別預訓練。即便經過對齊訓練,embedding 空間仍有映射校準不佳之區域:
- 分布外圖像:於對齊訓練資料中無類似之圖像,會產出映射不佳區域之 embedding。
- 對抗 embedding:以梯度為本之最佳化可找到「映射至 LLM embedding 空間特定點」之圖像輸入——包括對應到「指令 token」之點。
- 文字混淆:視覺編碼器表達「圖像中之文字」之方式,可能與 LLM 處理「文字 token」之方式不同,造成攻擊者可利用之錯位。
訓練資料偏誤
對齊訓練通常使用來自網際網路之已標註圖像。這造成偏誤:
- 模型可能過度信任圖像中出現之文字(因訓練資料常將圖像配上其可見文字)
- 某些視覺模式可能對語言模型行為產生過大影響
- 罕見或不尋常之圖像組成可能觸發無法預測之行為
凍結 vs. 微調光譜
| 架構 | 視覺編碼器 | Projection | LLM | 漏洞側寫 |
|---|---|---|---|---|
| LLaVA-1.5 | 凍結 CLIP | 訓練過的 MLP | 微調 | Projection 層是弱環 |
| BLIP-2 | 凍結 | 訓練過的 Q-Former | 凍結 | Q-Former 壓縮痕跡 |
| InternVL | 微調 | 訓練過的 MLP | 微調 | 較穩健但較難分析 |
| Qwen-VL | 微調 | 訓練過的 cross-attn | 微調 | Cross-attention 模式可被利用 |
對紅隊的意涵
於規劃 VLM 攻擊時,架構決定做法:
- 凍結視覺編碼器(CLIP、SigLIP)具已深入研究之 embedding 空間。已發表之對抗範例可能遷移。
- 訓練過的 projection 層是容量較小之模型,較易對對抗目標過擬合。
- 微調過的 LLM 可能具較佳之視覺安全對齊,但安全訓練仍不如文字方面成熟。
理解目標模型中哪些元件為凍結、哪些為微調,即可告訴你軟肋所在。
相關主題
- 視覺語言模型攻擊概觀 -- VLM 安全之更廣脈絡
- VLM 對抗圖像範例 -- 對視覺編碼器之以梯度為本之攻擊
- 以圖像為本之提示注入 -- 利用對齊缺口進行注入
參考資料
- "LLaVA: Large Language and Vision Assistant" - Liu et al.(2023)- 展現線性 projection 對齊之奠基 VLM 架構
- "BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models" - Li et al.(2023)- Q-Former 架構與跨模態對齊做法
- "On the Adversarial Robustness of Multi-Modal Foundation Models" - Schlarmann & Hein(2023)- VLM 中對齊層漏洞之分析
- "Prismatic VLMs: Investigating the Design Space of Visually-Conditioned Language Models" - Karamcheti et al.(2024)- 視覺編碼器與 projection 設計選擇之系統化研究
於具凍結 CLIP 視覺編碼器與訓練過的線性 projection 層之 VLM 中,哪個元件最可能是最弱的安全環?