SigLIP 2 发布说明 / 新特性

Google 发布了 SigLIP 2,这是一个全新的多语言视觉语言编码器系列。通过引入额外的训练目标以增强语义理解、定位和密集特征提取,SigLIP 2 对原始 SigLIP 进行了改进。SigLIP 2 在所有模型规模的核心能力上均优于其前身,包括图像-文本检索、零样本分类以及视觉语言模型 (VLMs) 的迁移性能。

用于定位和语义的增强训练目标

SigLIP 2 通过三项主要的工程改进扩展了 SigLIP 原有的 sigmoid loss,从而创建更具结构化和细粒度的视觉表示。

集成文本解码器

为了使视觉编码器具备位置感知能力,在训练过程中添加了一个文本解码器。该解码器承担三个特定任务:

  1. 预测整体图像描述(caption)。
  2. 当提供描述特定图像区域的描述时,预测边界框(bounding box)坐标。
  3. 当提供边界框坐标时,预测特定区域的描述。

用于局部语义的自蒸馏

为了改进细粒度的局部语义,SigLIP 2 采用了自蒸馏技术,使用教师-学生框架,其中教师是学生参数的移动平均值。引入了两种特定的损失函数:

  • Global-Local Loss:训练学生网络,使其在仅看到图像的部分(局部)视图时,能够匹配教师对完整图像的表示。
  • Masked Prediction Loss:学生必须在 50% 的嵌入图像补丁(patches)被掩盖的位置,匹配教师的特征。

为了防止对编码器的负面影响并降低计算成本,这些自蒸馏损失仅在 80% 的训练(使用 sigmoid 和 decoder loss)完成后才应用。

分辨率自适应与 NaFlex 变体

SigLIP 2 通过两种不同的方法解决了对长宽比和分辨率的敏感性问题:

  • 固定分辨率:使用训练过程中 95% 阶段的检查点来调整位置和补丁嵌入(patch embeddings)的大小,随后针对目标分辨率进行持续训练。
  • 动态分辨率 (NaFlex):基于 FlexiViT 和 NaViT,naflex 变体支持具有不同序列长度和原生长宽比的输入。这使得单个模型可以用于具有不同需求的任务,例如 OCR 和文档理解。

用户可以使用标准的 SiglipModel 类使用固定分辨率模型,而 naflex 变体则需要 Siglip2Model 类(尽管这可以通过 Hugging Face 的 pipeline API 自动处理)。

模型系列与性能

与原始 SigLIP 相比,SigLIP 2 引入了更广泛的模型尺寸和配置,包括全新的“Giant” (1B) 系列。可用模型包括:

Size Patch Size Resolution
Base (86M) 32 / 16 224 to 512 / NaFlex
Large (303M) 16 256 to 512
Shape Optimized 400M 14 / 16 224 to 512 / NaFlex
Giant (1B) 16 256 to 384

评估数据表明,SigLIP 2 在这些规模上均优于 SigLIP 1。这些编码器对于构建 VLMs 特别有价值;例如,PaliGemma 2 模型将 SigLIP 与 Gemma 2 LLM 集成,而 SigLIP 2 为类似架构提供了潜在的升级路径。

实现与推理

可以使用 transformers 库进行推理。若要支持 SigLIP 2,用户必须从主分支或特定的稳定分支安装 transformerspip install git+https://github.com/huggingface/transformers@v4.49.0-SigLIP-2

常见的用例包括通过 pipeline API 进行零样本图像分类,以及使用 AutoModelAutoProcessor 提取图像嵌入以用于下游任务。

Sources