SigLIP 2 版本說明 / 新功能
Google 已發布 SigLIP 2,這是一個新的多語言視覺-語言編碼器系列,通過引入額外的訓練目標來增強語義理解、定位和密集特徵提取,從而改進原始 SigLIP。SigLIP 2 在所有模型規模的核心能力上都優於其前身,包括圖像-文本檢索、零樣本分類以及視覺-語言模型(VLM)的轉移性能。
加強定位與語義的訓練目標
SigLIP 2 在 SigLIP 的原始 sigmoid 損失基礎上加入了三項主要的技術改進,以創建更具結構性和細緻的視覺表示。
文字解碼器的整合
為使視覺編碼器具備位置感知,訓練過程中加入了一個文字解碼器。該解碼器負責三個具體目標:
- 預測整體圖像標題。
- 在提供描述特定圖像區域的標題時,預測邊界框座標。
- 在提供邊界框座標時,預測特定區域的標題。
用於局部語義的自蒸餾
為改進細緻的局部語義,SigLIP 2 使用教師-學生框架進行自蒸餾,其中教師是學生參數的移動平均。引入了兩個特定的損失:
- 全局-局部損失:學生網絡被訓練以匹配教師對完整圖像的表示,而僅看到該圖像的部分(局部)視圖。
- 遮罩預測損失:學生必須匹配教師在 50% 嵌入圖像塊被遮罩的位置的特徵。
為防止對編碼器產生負面影響並降低計算成本,這些自蒸餾損失僅在訓練完成 80% 後才應用(該階段使用 sigmoid 和解碼器損失)。
解析度適應與 NaFlex 變體
SigLIP 2 通過兩種不同的方法論來解決對長寬比和解析度的敏感性:
- 固定解析度:訓練過程中 95% 的檢查點被用來調整位置和塊嵌入的大小,接著繼續訓練以達到目標解析度。
- 動態解析度 (NaFlex):基於 FlexiViT 和 NaViT,
naflex變體支援具有不同序列長度和原生長寬比的輸入。這使得單一模型可用於需求不同的任務,例如 OCR 和文件理解。
使用者可以透過標準的 SiglipModel 類別使用固定解析度模型,而 naflex 變體則需要 Siglip2Model 類別(不過這會透過 Hugging Face pipeline API 自動處理)。
模型系列與性能
與原始 SigLIP 相比,SigLIP 2 引入了更廣泛的模型大小和配置,包括新的「Giant」(1B) 系列。可用的模型包括:
| 大小 | 塊大小 | 解析度 |
|---|---|---|
| 基礎 (86M) | 32 / 16 | 224 到 512 / NaFlex |
| 大型 (303M) | 16 | 256 到 512 |
| 形狀優化 400M | 14 / 16 | 224 到 512 / NaFlex |
| 巨型 (1B) | 16 | 256 到 384 |
評估數據顯示,SigLIP 2 在這些規模上優於 SigLIP 1。這些編碼器對於構建 VLM 尤為寶貴;例如,PaliGemma 2 模型將 SigLIP 與 Gemma 2 LLM 整合,而 SigLIP 2 為類似架構提供了一條潛在的升級路徑。
實作與推論
推論可以使用 transformers 庫來執行。為了支援 SigLIP 2,使用者必須從主分支或特定的穩定分支安裝 transformers:pip install git+https://github.com/huggingface/transformers@v4.49.0-SigLIP-2。
常見的使用案例包括透過 pipeline API 進行零樣本圖像分類,以及使用 AutoModel 和 AutoProcessor 提取圖像嵌入以用於下游任務。