Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

SigLIP

SigLIP 使用成对 sigmoid 损失训练图像和文本编码器,而非 CLIP 的 softmax,从而降低内存占用。了解其工作原理、SigLIP 2 和代码。

SigLIP(语言图像预训练的 Sigmoid 损失)是 Google 研究人员提出的一种方法,用于在图像-描述配对数据上训练图像和文本编码器;它也是使用该方法训练出的模型系列的名称。与 CLIP 类似,它会学习一个共享的嵌入空间,使图像与描述该图像的文本彼此接近。两者的区别在于损失函数:SigLIP 会将批次中的每组图像-文本配对视为独立的是非问题,并用 sigmoid 评分;CLIP 则通过 softmax 要求每张图像从整个批次中选出自己的描述。该方法在2023 年 SigLIP 论文中提出,能够降低内存使用量,在较小的批次大小下表现更好,并使 SigLIP 编码器成为视觉语言模型(VLM)中常见的视觉组件。

Sigmoid 损失的工作方式#

对于包含 N 组图像-描述配对的批次,SigLIP 会计算每个图像嵌入与每个文本嵌入之间的相似度,得到 N×N 个分数。每个分数会乘以可学习温度参数 t,再加上可学习偏置 b,然后应用二元对数 sigmoid 损失:对角线上的 N 组真实配对标记为匹配,其余 N² − N 组配对标记为不匹配。温度初始值为 10,偏置初始值为 −10,使训练从几乎所有配对都不匹配这一先验开始,并避免因每张图像有一个正样本和 N − 1 个负样本的不平衡而导致早期更新幅度过大。

下面的 PyTorch 代码针对四组配对计算该损失:一次使用正确的描述,一次将描述向后移动一个位置:

import torch
import torch.nn.functional as F

# Normalized embeddings for 4 image-caption pairs: row i of each tensor belongs together
torch.manual_seed(0)
images = F.normalize(torch.randn(4, 64), dim=-1)
texts = F.normalize(images + 0.05 * torch.randn(4, 64), dim=-1)

# Learnable temperature and bias, at the values SigLIP initializes them to
t, b = 10.0, -10.0

# Every image-text pair is its own binary problem: +1 for a match, -1 for the other 12 pairs
labels = 2 * torch.eye(4) - 1
for name, captions in [("matched", texts), ("shuffled", texts.roll(1, dims=0))]:
    logits = t * images @ captions.T + b
    loss = -F.logsigmoid(labels * logits).sum() / 4
    print(f"{name} captions: loss {loss:.2f}")

它会输出 matched captions: loss 1.21 和 shuffled captions: loss 10.50。描述移位后,所有被标记为匹配的对角线配对都实际不匹配,损失因此增加到接近原来的九倍。

每组配对的损失项只依赖该配对,因此完整的 N×N 矩阵不必全部存放在同一设备上。每个加速器都会用自己的图像与自己的文本评分,然后将文本嵌入传给下一个加速器并重复这一过程:

softmax 损失无法用这种方式拆分,因为每张图像的概率都要根据批次中的所有描述进行归一化。

SigLIP 与 CLIP 的比较#

两者都通过对比学习训练两个编码器,区别在于损失函数的归一化范围:

  • CLIP:对批次相似度矩阵的每一行和每一列计算 softmax 交叉熵;计算前,每个设备都会收集其他所有设备的嵌入。
  • SigLIP:对每组配对单独计算二元损失。论文显示,SigLIP 在较小批次下优于 softmax 损失,而随着批次扩大,收益会趋于平缓;32k 的批次大小已经足够。结合冻结的预训练图像编码器后,该方法在四个 TPUv4 芯片上用两天训练出一个零样本 ImageNet 准确率达到 84.5% 的模型。

该损失也会影响推理时的分数:SigLIP 模型会为每个候选标签给出独立的匹配概率,因此一组标签的概率之和不一定为 1。

SigLIP 2#

SigLIP 2 于 2025 年 2 月发布,在保留 sigmoid 损失的同时,新增了图像描述解码器、自蒸馏、训练期间的掩码预测,以及在线数据整理。其编码器支持多语言,并提升了定位和密集特征能力;基于这些编码器构建的检测和分割任务会用到这些能力。NaFlex 变体可在保留图像原始宽高比的同时处理多种分辨率;模型提供 ViT-B、L、So400m 和 g 等规格,其中 So400m 是经过形状优化的 4 亿参数 ViT。

实际应用#

  • 面向 VLM 的视觉编码器:Google 的 PaliGemma 使用 SigLIP So400m 图像编码器,Gemma 3 则使用 4 亿参数的 SigLIP 编码器处理图像输入。
  • 零样本分类:无需训练分类器,即可用文本形式的标签对图像评分;借助 SigLIP 2,还能支持多种语言。
  • 语义搜索:存储在向量数据库中的图像嵌入可通过文本查询或其他图像进行搜索。
  • 数据集探索:Ultralytics Platform 会使用这类图像-文本编码器为经过分析的数据集中的每张图像生成嵌入,因此视觉相似的图像会聚集在其 Clustering 散点图中;Find similar images 会从其他数据集中返回最相似的图像;输入“门口附近的叉车”这样的搜索词,也会返回看起来符合描述的图像。

Explore solutions

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来