SigLIP
探索 SigLIP,这是一种面向视觉语言模型、注重内存效率的 sigmoid 损失方法。了解它如何改进 Ultralytics YOLO 项目的扩展和训练。
SigLIP 是 Sigmoid Loss for Language Image Pre-Training(语言图像预训练的 Sigmoid 损失)的缩写,是一种训练视觉语言模型的高效方法。该方法最初由Google Research的研究人员提出,从根本上改变了 AI 模型学习图像与其对应文本描述之间关系的方式。通过用更简单的二元分类方法替代传统概率函数,SigLIP 使开发者能够以显著更低的内存开销和更高的计算效率训练超大规模多模态架构。
理解架构#
在将视觉数据与文本数据配对的标准机器学习流程中,模型通常依赖对给定批次中所有数据的全局视图来正确学习。SigLIP 通过将每个图像-文本对视为独立的二元分类问题,消除了这一瓶颈。借助标准的sigmoid函数,模型只需预测特定图像与文本描述是否匹配。
这种对损失函数的局部化处理意味着,模型训练期间所需的内存会呈线性增长,而不是二次增长。因此,工程师可以在由PyTorch等框架支持的标准硬件配置上使用大得多的批次大小,从而在各种数据集上获得更好的性能,而不需要指数级增加 GPU 资源。
区分 SigLIP 与 CLIP#
探索现代 AI 架构时,必须将 SigLIP 与其前身 CLIP(对比语言-图像预训练)区分开来。
- CLIP:依赖 softmax 损失函数,要求模型同时将一张图像与批次中的所有文本描述进行比较。随着批次大小增加,这会在深度学习训练期间造成严重的内存瓶颈。
- SigLIP:使用成对 sigmoid 损失。它只需评估单个图像-文本对是真匹配还是假匹配,因此在优化人工智能工作流时具有很强的可扩展性,也更易于在多个设备之间分布。
实际应用#
SigLIP 的高内存效率设计使其成为科技行业各种实际应用的强大基础:
- 零样本图像分类:SigLIP 擅长将图像归入训练期间从未明确见过的新类别。这对于动态图像分类系统非常有用,因为这类系统中的类别经常变化,无需持续进行手动数据标注。
- 语义搜索引擎:SigLIP 通过生成高度准确的多模态嵌入,为先进的检索系统提供支持。用户可以输入复杂的文本查询,以高精度搜索海量非结构化图像数据库。
在管理此类复杂视觉任务的自定义数据时,团队通常会使用 Ultralytics Platform,以简化云端数据集标注,并在部署 Ultralytics YOLO26 等先进模型进行高速边缘推理之前,无缝整合文本和图像洞察。
实现示例#
要从基础层面了解 SigLIP 如何计算损失,你可以使用基本的 PyTorch 操作模拟这一过程。此代码片段演示了成对 sigmoid 方法如何替代传统的多类别概率逻辑。
import torch
import torch.nn.functional as F
# Simulate image and text embeddings from a vision-language model
image_embeddings = torch.randn(4, 256)
text_embeddings = torch.randn(4, 256)
# Calculate pairwise similarities (logits)
logits = torch.matmul(image_embeddings, text_embeddings.T)
# SigLIP uses a binary formulation: 1 for positive pairs, -1 for negative pairs
labels = torch.eye(4) * 2 - 1
loss = -F.logsigmoid(labels * logits).mean()
print(f"Calculated SigLIP Loss: {loss.item():.4f}")借助这种精简的方法,更广泛的 AI 社区(包括在 IEEE 等机构以及 ACM 发表论文的研究人员)持续推动多模态学习的边界,为下一代视觉 AI 建立新的模型训练技巧和最佳实践。









