深圳Yolo 视觉
深圳
立即加入
词汇表

SigLIP

了解 SigLIP——一种适用于视觉语言模型的内存高效 sigmoid 损失方法。了解它如何提升Ultralytics YOLO 可扩展性和训练效果。

SigLIP(全称Sigmoid Loss for Language Image Pre-Training)是一种用于训练 视觉语言模型的高效方法。该方法最初 Google 的研究人员提出,从根本上改变了 AI模型学习图像与其对应文本描述之间关系的方式。 通过用 更简单的二元分类方法取代传统的概率函数,SigLIP 使开发者能够以显著更低的内存开销和更高的计算效率来训练 大规模的多模态架构。

了解架构

在将视觉数据与文本数据配对的标准机器学习管道中, 模型通常需要基于给定批次中所有数据的整体视图才能正确学习。 SigLIP 通过将每对图像-文本视为一个独立的二分类问题,消除了这一瓶颈。 该模型利用标准的sigmoid函数, 仅需预测特定的图像与文本描述是否匹配。

这种针对损失函数的局部化方法意味着 模型训练期间所需的内存呈线性增长 而非二次增长。因此,工程师可以在 PyTorch等框架支持的标准硬件配置上 使用大得多的批量大小 PyTorch等框架所支持的标准硬件配置上使用大得多的批量大小,从而在 各种数据集上提升性能,而无需 指数级增加GPU 。

区分 SigLIP 与 CLIP

在探讨现代人工智能架构时,必须将SigLIP与其前身 CLIP(对比式语言-图像预训练)区分开来。

  • CLIP: 依赖于软最大似然(softmax)损失函数,这要求模型将一张图像与批次中的所有文本 描述同时进行比较。随着批量大小的增加,这会在 深度学习训练过程中造成严重的内存瓶颈。
  • SigLIP:采用成对 sigmoid 损失函数。它只需判断单个图文对是真实匹配还是 虚假匹配,因此具有极高的可扩展性,在优化 人工智能工作流时更容易在多台设备上进行分布式处理。

实际应用

SigLIP 凭借其内存高效的设计,已成为科技行业各类实际应用的强大基础: :

  • 零样本图像分类:SigLIP 擅长将图像分类到其在训练过程中从未明确接触过的新类别中。这对于 动态 图像分类系统而言 极其有用,因为这类系统中的 类别经常发生变化,从而无需不断进行人工数据标注。
  • 语义搜索引擎:通过生成高度精确的多模态嵌入向量,SigLIP为先进的检索系统提供支持。用户可以输入 复杂的文本查询,以高精度检索海量、非结构化的图像数据库。

在管理此类复杂视觉任务的自定义数据时,团队通常会借助 Ultralytics 来简化云端数据集标注流程,并 在部署Ultralytics 等高级模型进行高速边缘推理之前, 无缝整合文本和图像分析结果。

实施实例

要从根本上理解 SigLIP 如何计算损失,您可以使用基本的 PyTorPyTorch 操作来模拟该过程。此代码片段演示了成对 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等机构发表论文的研究人员—— 正不断拓展多模态学习的边界,为 下一代视觉人工智能确立新的 模型训练技巧和最佳实践。

让我们携手共创人工智能的未来!

开启您的机器学习未来之旅