SigLIP
探索 SigLIP,这是一种用于视觉-语言模型的高效内存 Sigmoid 损失方法。了解它如何改进 Ultralytics YOLO 项目的扩展和训练。
SigLIP(Sigmoid Loss for Language Image Pre-Training 的缩写)是一种用于训练 视觉-语言模型 的高效方法。该方法最初由 Google Research 的研究人员提出,从根本上改变了 AI 模型学习图像与其对应文本描述之间关系的方式。通过用更简单的二元分类方法取代传统的概率函数,SigLIP 让开发者能够以更低的内存开销和更高的计算效率来训练大型多模态架构。
Link to this section了解架构#
在配对视觉和文本数据的标准 机器学习 流水线中,模型通常依赖于给定批次中所有数据的全局视图来完成正确学习。SigLIP 通过将每个图像-文本对视为一个独立的二元分类问题,消除了这一瓶颈。使用标准的 sigmoid 函数,模型只需预测特定的图像和文本描述是否匹配即可。
这种针对 损失函数 的局部化方法意味着 模型训练 期间所需的内存是线性扩展而非二次方扩展的。因此,工程师可以在 PyTorch 等框架支持的标准硬件配置上使用更大的批次大小,从而在无需指数级增加 GPU 资源的情况下提升各种 数据集 的性能。
Link to this section区分 SigLIP 与 CLIP#
在探索现代 AI 架构时,有必要区分 SigLIP 与其前身 CLIP (Contrastive Language-Image Pre-training)。
- CLIP:依赖于 softmax 损失函数,这要求模型同时比较图像与批次中的 所有 文本描述。随着批次大小的增加,这在 深度学习 训练期间会产生严重的内存瓶颈。
- SigLIP:利用成对的 sigmoid 损失。它只需要评估单个图像-文本对是否为真匹配或假匹配,这使其具有高度可扩展性,并且在优化 人工智能 工作流时更容易分发到多个设备上。
Link to this section实际应用#
SigLIP 的内存高效设计使其成为整个科技行业各种实际应用的强大基础:
- 零样本图像分类:SigLIP 擅长将图像分类为它在训练期间从未明确见过的类别。这对于类别频繁变化的动态 图像分类 系统极其有用,省去了持续手动标记数据的需求。
- 语义搜索引擎:通过生成高精度的多模态嵌入,SigLIP 为先进的检索系统提供了动力。用户可以输入复杂的文本查询,从而以高精度搜索海量的非结构化图像数据库。
在为这些类型的复杂视觉任务管理自定义数据时,团队通常会转向 Ultralytics Platform 来简化云端数据集标注,并在部署如 Ultralytics YOLO26 等用于高速边缘推理的先进模型之前,无缝整合文本和图像洞察。
Link to this section实现示例#
要从底层理解 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}")通过利用这种精简的方法,包括在 IEEE 和 ACM 等机构发布研究成果的更广泛的 AI 社区,持续推动多模态学习的边界,为下一代视觉 AI 建立了新的 模型训练技巧 和最佳实践。






