假设你在运营一家相亲平台。早先的版本(CLIP)办的是“选美大赛”:让每一位嘉宾站上台,和全场所有候选人同台竞技,看谁才是最般配的那一位。选手越多,比赛结果越公允;可一旦台下只有稀稀拉拉几个人,冠军毫无悬念,比赛也失去了信息量。 后来你换了玩法(SigLIP):不再搞全场评比,改为“一对一相亲”——把每一对男女单独请进小屋,让 TA 们各自表态:“你们看对眼吗?”合适就在一起,不合适就礼貌再见。每对小屋的选择互不干扰,所以哪怕大厅里只来了六对嘉宾,每对也能得到明确的态度反馈。 这篇文章就带你拆解:这个“从选美到相亲”的改动,在数学上只是把 Softmax 对比损失换成了逐对的 Sigmoid 损失,却让模型不再依赖庞大 batch,训练又快又省又稳。
作为 AI 从业者,理解 SigLIP 能让你掌握对比学习损失演进的最新方向,学会在不牺牲精度的情况下,用更小 batch、更低算力完成多模态预训练,直接降低工程落地成本。
可视化演示
展示SigLIP核心创新:InfoNCE(Softmax归一化)vs Sigmoid(独立二元分类)损失对比、Batch Size对训练效果的影响(CLIP需大batch vs SigLIP小batch可用)、以及检索与零样本性能表现。
本节配有交互动效(进入视口后自动加载,约 3KB)。
'+captions.loss+'
对比学习回顾
相亲平台的第一版规则是“选美大赛”:每位嘉宾都要和全场所有异性同台竞技,最终只有一位能站到最后。CLIP 的做法与此如出一辙——它把图片和文本分别编码成向量,然后在一个 batch 内让每张图片与所有文本“比赛”,只有正确配对的那一条才能脱颖而出。
这场“比赛”的裁判就是 Softmax 对比损失(也叫 InfoNCE)。给定一个 batch 里的 N 张图片和 N 段文本,模型要做的是:对每张图片,把正确文本从 N 个候选中挑出来。图片编码为 $\mathbf{x}_i$,文本编码为 $\mathbf{y}_i$,相似度用点积 $s_{ij}=\mathbf{x}_i^{\top}\mathbf{y}_j$ 衡量,CLIP 的损失如下:
这场比赛的问题随之而来:台下观众(负样本)太少时,人人都能拿冠军,模型学不到“谁才是真正般配”的信息。这正是 CLIP 必须把 batch 拉到 32K 甚至更大的原因。
- 相似度得分$s_{ij}=\mathbf{x}_i^{\top}\mathbf{y}_j$ 是图片与文本嵌入向量的点积,点积越大表示越“看对眼”
- 温度缩放相似度乘上温度 $t$,$t$ 大则得分差异被放大、分布更尖锐,$t$ 小则更平滑
- 指数与分子分子只保留正确配对 $i$ 与 $i$ 的指数得分,让正确的一对被“抬举”
- 指数和分母分母对 batch 内所有文本得分求和,这就是“全场归一化”——候选越多,每个候选分到的概率越少
- 负对数正确配对被选中的概率越接近 1,损失越小,训练就是在抬高这个概率
Sigmoid损失原理
相亲平台改版后,规则变成了“一对一相亲”。SigLIP 的核心理念正是如此:不再让所有图文对同台竞争,而是把每一个图片-文本组合都当作一场独立的“小约会”,只问一个问题——你们配不配?
数学上,这就是一个逐对(pairwise)的 Sigmoid 二分类。对 batch 里的任意一对 $(i,j)$,如果它们来自同一条样本($i=j$),就是正样本对,目标值为 +1;否则就是负样本对,目标值为 -1。每个配对单独算损失,互不干扰。
单个配对 $(i,j)$ 的损失定义为:
回到相亲平台的视角:每对小屋里的态度都是独立给出的,没有“全场只能有一个最佳”的约束。于是,即使现场只有寥寥几对嘉宾,每段关系也能得到明确的“行”或“不行”——这正是 Sigmoid 损失与 Softmax 的根本分野。
\ell_{ij}=-\log\sigma\!\big(z_{ij}(t\,\mathbf{x}_i^{\top}\mathbf{y}_j+b)\big),\qquadz_{ij}=\begin{cases}+1,& i=j\\-1,& i\neq j\end{cases}- 配对标记 $z_{ij}$$i=j$ 时取 +1,表示“应该在一起”;$i\neq j$ 时取 -1,表示“应该分开”
- 好感度 logit相似度乘以温度 $t$ 再平移偏置 $b$,得到未经压缩的原始分数
- Sigmoid 映射$\sigma(\cdot)$ 把任意实数压到 $(0,1)$,输出就是“这对真的会在一起”的概率
- 负对数损失概率越偏离目标,损失越大;因为 $z$ 带符号,正对要概率高、负对要概率低
批量大小解耦
选美大赛人少就不公平,但一对一相亲人少没关系。SigLIP 因此摆脱了对大 batch 的依赖,论文实验显示,batch size 从 256 到 32768 的范围内,SigLIP 性能都保持稳定;而 CLIP 在 batch 降到数千以下时明显退化。
为什么会这样?关键在于梯度如何分配给负样本。看 Softmax 损失:分母需要对 N 个候选归一化,概率总和是 1,被 N 个负样本平分,于是单个负样本对拿到的梯度大约只有 $t/N$。batch 越大,每个负样本的“陪跑”越少,梯度越稀疏。
反观 Sigmoid 损失,每个负样本对独立算自己的二分类,梯度基本恒定,两种损失的梯度对比为:
于是,同样算力预算下 SigLIP 可以用更小 batch、更少轮次跑完,论文报告训练速度约为 CLIP 的 1.5 倍。对实验室和中小公司来说,这意味着“选美大赛”的万人大场地不再是必需品。
- Softmax 概率即梯度CLIP 对相似度的导数恰是归一化后的概率 $p_{ij}$,所有负样本概率之和约为 1
- 稀释效应N 个候选分同一份概率,单个负样本梯度约 $t/N$,随 batch 增大而越来越小
- Sigmoid 负梯度当负样本对分得很开(logit 明显为负)时,$\sigma(-(ts_{ij}+b))\approx 1$,梯度接近常数 $t$
- 逐对恒定每个负样本对的梯度始终约为 $t$,与 batch 里有多少“观众”无关,梯度信号又密又稳
训练技巧配置
把规则从选美改成相亲之后,平台还要调校评分细则:打分的灵敏度、起评分、以及评委的保守程度。SigLIP 对应地引入了三个关键设计——可学习的温度 $t$、可学习的偏置 $b$、以及标签平滑。
温度 $t$ 初始化为 10(对 cosine 相似度相当于放大分值)并在训练中可学习;偏置 $b$ 初始化为 0 也可学习;两者共同决定“匹配边界”的位置。论文还探索了标签平滑,把正负目标从 $\pm1$ 向 $\pm(1-\varepsilon)$ 收缩,避免模型过度自信,让训练早期更稳定。
综合起来,SigLIP 的目标函数就是对 batch 内所有图文对损失的平均:
这些细节就像相亲平台的微调规则:评委不手抖(温度稳定)、起评分公道(偏置可学)、也不轻易给满分(标签平滑)。平台规则合理,哪怕场地小,配对效率依然高。
- 双重求和遍历 batch 内全部 $N\times N$ 个图文组合,对角线是正配对,其余是负配对
- 带符号目标$z_{ij}=+1/-1$ 决定训练方向,正对拉高概率、负对压低概率
- 温度与偏置$t$ 缩放打分尺度,$b$ 平移决策边界,二者都随训练更新
- 取平均除以 $N^2$ 求平均,损失量级与 batch 大小解耦,小 batch 也能稳定优化
- 标签平滑实际实现中目标从 $\pm1$ 变为 $\pm(1-\varepsilon)$,相当于让评委少打极端分
模型性能表现
平台验收的时刻到了。训练好的 SigLIP 编码器,给定任意图片和任意文本,都能输出一个“般配概率”,这个能力直接落地为两类任务:零样本图像分类和图文检索。
零样本分类时,把每个类别写成一句描述文本(如“一只柯基犬的照片”),与查询图片逐一打分,分数最高的类别胜出。图文检索则是对图库中所有文本(或文本库中所有图片)排序,取最靠前的 Top-K。
论文报告 SigLIP-B/16 在 ImageNet 零样本分类上达到约 82% 的 top-1,超过同规模 CLIP 基线 1.5 个百分点以上;COCO 图文检索的 Recall@1 也显著领先。更难得的是,模型规模越大、数据越多,Sigmoid 损失带来的优势越明显。零样本分类的预测公式为:
对工程团队来说,SigLIP 意味着“少花钱多办事”:更小的 batch 占用更少显存,更快的收敛省下 GPU 时数,模型却交出了更好的零样本与检索成绩。
- 类别文本编码每个类别 $k$ 构造一句描述并编码为文本向量 $\mathbf{y}_k$
- 逐类打分查询图片向量 $\mathbf{x}$ 与 $\mathbf{y}_k$ 点积,经温度、偏置、Sigmoid 后得到 0-1 的匹配概率
- 取最大值$\arg\max$ 选出匹配概率最高的类别;单调性保证了无需再做全局归一化
对比损失演进
回顾整个思路变迁:对比学习的目标一直是学会“何时谓匹配”的相似度函数。Softmax 时代,判断必须放在“全场比较”的语境里才有意义;Sigmoid 时代,判断被拆成无数个独立的“二元问答”,本质是向度量学习回归。
这种逐对损失其实有明确的几何含义——把正样本对的相似度拉到阈值 $-b/t$ 之上,把负样本对的相似度压到阈值之下。对不匹配的对,训练要求可以写成:
从 InfoNCE 到 SigLIP,损失函数演进的核心是“去归一化”:让每个样本对的监督信号不依赖同伴的数量。未来研究者还可能加入难负样本挖掘、动态阈值等技巧,但“独立判断、逐对监督”这个方向已经站稳脚跟。
选美大赛再热闹,也比不上让每对嘉宾坐下来好好聊聊。SigLIP 用最简单的“一对一”规则,改写了多模态对比学习的效率公式——这也是损失函数设计里“少即是多”的生动一课。
- 正对要求匹配对的 logit 必须显著大于 0,Sigmoid 输出才接近 1
- 负对要求不匹配对的 logit 必须显著小于 0,概率被压向 0
- 阈值边界整理不等式得到相似度的分界 $-b/t$,$b$ 与 $t$ 共同决定“多远算不认识”
- 演进意义Softmax 依赖 batch 内相对比较,Sigmoid 收敛为绝对阈值判断,训练更稳、扩展更好
AI 应用场景
电商以图搜图与相册检索
阶段:多模态特征预训练 / 表征学习
解决的问题:传统图文检索依赖手工标签或昂贵的算力训练;CLIP 风格训练必须用 32K 大 batch,中小团队一张卡根本跑不动。SigLIP 用小 batch 就能训出强图文编码器,把图片和文本映射到同一向量空间做近似最近邻检索。
具体案例:某电商团队用 SigLIP 预训练 ViT-B 编码器,把商品图和用户搜索文本编码到同一空间,batch 4096 就完成训练;在 10 万商品库上“以图搜图”的 top-10 命中率比旧方案提升约 8%。
工业质检的零样本启动
阶段:模型推理 / 零样本评估
解决的问题:新产线上的缺陷类别往往未知,标注样本严重不足,传统分类器冷启动困难。SigLIP 可以给每类缺陷写一句描述文本,对产线图片逐类打分,无需一张标注图就能先跑起来。
具体案例:某工厂为每类缺陷撰写描述(如“表面有划痕的不锈钢板”),用 SigLIP 对产线图片逐类打分,冷启动阶段就达到 90% 的召回率,再人工确认少量样本做后续微调,两周内完成质检系统上线。
多模态预训练降本
阶段:训练基础设施 / 资源规划
解决的问题:CLIP 风格预训练需要超大 batch 才能收敛,GPU 集群成本极高;SigLIP 在同精度下 batch 可减半、训练速度提升约 1.5 倍,显著降低算力预算。
具体案例:某 AI 中台把内部图文预训练任务从 CLIP 切换到 SigLIP,训练时长从 14 天缩短到 10 天,A100 用量减少约 30%,下游检索与分类任务效果持平或微涨。
Python 演示
import torchimport torch.nn.functional as F def clip_softmax_loss(image_emb, text_emb, temperature=0.07): image_emb = F.normalize(image_emb, dim=-1) text_emb = F.normalize(text_emb, dim=-1) logits = image_emb @ text_emb.T / temperature n = image_emb.shape[0] labels = torch.arange(n, device=image_emb.device) loss_img = F.cross_entropy(logits, labels) loss_txt = F.cross_entropy(logits.T, labels) return (loss_img + loss_txt) / 2 def siglip_loss(image_emb, text_emb, temperature=10.0, bias=0.0): image_emb = F.normalize(image_emb, dim=-1) text_emb = F.normalize(text_emb, dim=-1) logits = image_emb @ text_emb.T * temperature + bias n = image_emb.shape[0] labels = 2.0 * torch.eye(n, device=image_emb.device) - 1.0 probs = torch.sigmoid(labels * logits) return -torch.log(probs).mean() if __name__ == "__main__": torch.manual_seed(0) print("batch CLIP_loss SigLIP_loss") for n in (8, 64, 256): img = torch.randn(n, 128) txt = torch.randn(n, 128) l_clip = clip_softmax_loss(img, txt).item() l_sig = siglip_loss(img, txt).item() print(f"{n:>5d} {l_clip:.4f} {l_sig:.4f}")
logits = image_emb @ text_emb.T / temperatureCLIP 用“除以温度”放大 logits,之后要靠归一化来竞争labels = torch.arange(n, device=image_emb.device)Softmax 版本只需要对角线索引作为正确配对标签return (loss_img + loss_txt) / 2CLIP 对图片方向和文本方向各做一次交叉熵再取平均logits = image_emb @ text_emb.T * temperature + biasSigLIP 用“乘温度再加偏置”,每个图文对得到一个独立 logitlabels = 2.0 * torch.eye(n, device=image_emb.device) - 1.0把单位矩阵变成对角线 +1、其余 -1,构造逐对正负标签probs = torch.sigmoid(labels * logits)带上正负号过 Sigmoid,得到每个配对的匹配概率return -torch.log(probs).mean()对所有 N² 个配对的概率取负对数平均,这就是二元交叉熵的等价形式for n in (8, 64, 256):扫描三个 batch 尺寸,观察 CLIP 损失随 ln(n) 增长而 SigLIP 基本恒定
常见误区
误区Sigmoid 损失不就是把 Softmax 换成 Sigmoid 激活吗?都是把分数变成概率,换了个函数名字而已,效果应该差不多。
正解本质区别在于“归一化”的取消。Softmax 中所有负样本共享一份概率总和,每个负样本的梯度被分母稀释成约 $t/N$;而 Sigmoid 对每个图文对独立做二分类,每个负样本对都有约 $t$ 的恒定梯度。就像选美冠军只跟全场选手比,人多才公平;相亲则是一对一明确表态,人少也照样有结论。
为何常见:从公式表面看,两者都长着“指数 + 归一化”或"sigmoid"的样子,初学者容易只盯着激活函数,而忽略了梯度分配机制这个真正关键的结构差异。
误区既然每个配对是独立判断,那我只把“图片-正确文本”放进去训练不就好了吗?负样本可以全部省掉。
正解SigLIP 的损失必须包含大量负样本对——batch 内对角线以外的所有 $(i,j)$ 组合都是负样本。它们只是不再通过分母互相竞争,而是各自独立地提供“推远”梯度。如果去掉负样本,模型会把所有图文都打成高分,毫无判别力。就像相亲平台只记录“看对眼”的好评、从不记录拒绝,推荐系统就失去了信息。
为何常见:“逐对判断”的说法容易让人误以为只有正样本在起作用,忽略了负样本是每一对独立出现的事实。
误区论文说 SigLIP 对 batch 不敏感,那我直接设 batch=8 甚至 batch=1 训练,效果应该和 32K 一样好吧?
正解SigLIP 降低了对 batch 的依赖,但 batch 仍决定每个 batch 内正负样本对的覆盖与多样性。论文实验中使用的 batch 是 16K(比 CLIP 的 32K 小),并且展示小至 256 依然可用,但极端小的 batch 会大幅减少配对信息量,效果仍会下降。就像一对一相亲不需要全场几百人当观众,但至少要有个相亲现场,样本多样性依然重要。
为何常见:把“不依赖大 batch”夸大为“batch 完全无所谓”,忽略了配对覆盖率和数据多样性的基本需求。
误区训练损失是 Sigmoid,那推理时也必须逐类过 Sigmoid 再比较,如果用了 Softmax 归一化,结果一定是错的。
正解Sigmoid 是单调递增函数,对一组类别候选取 argmax 时,按 $\sigma(t s+b)$ 排序与按 logit 排序结果完全一致;即使改用 Softmax 归一化,各类别的相对排名也不会改变。论文中零样本分类既可以用逐类 Sigmoid 打分取最高,也可以等价地用 logit 直接排序。就像相亲评分从 10 分制换成百分制,排名不会因此改变。
为何常见:训练与推理的函数形式容易被绑定,忽略了“排名只由单调变换前的分数决定”这一基本事实。
误区温度是控制打分尺度的,把它设得很小,相似度差异就会被放大,模型应该更精准。
正解温度与 logits 尺度耦合,$t$ 大相当于放大相似度差异,$t$ 小相当于压缩差异;它和偏置 $b$ 一样是可学习参数,初始化为 10 并在训练中自动调节。手动设太小会使 logits 过平、梯度微弱、训练难收敛;设太大则可能梯度爆炸。评分尺度是平台的规则,应当交给优化器自己调,管理员乱改反而乱套。
为何常见:“温度=严格程度”的直觉被过度简化,忽略了温度与梯度幅度的耦合关系。
面试题
Q1. SigLIP 的核心改进是什么?
- A.用 Sigmoid 损失替代 Softmax 对比损失← 正确答案
- B.用更大的 batch 来训练 CLIP 模型
- C.用 Transformer 替代 ResNet 编码图像
- D.用数据增强替代对比学习方式
答案:A。SigLIP 的关键是把 CLIP 的 Softmax 对比损失换成逐对的 Sigmoid 损失,从而摆脱对大批量的依赖。B 恰恰是 CLIP 的做法,C 是架构选择而非核心改进,D 与对比学习无关。
Q2. 在 SigLIP 的逐对损失中,同一 batch 内一对图文 $(\mathbf{x}_i, \mathbf{y}_j)$ 当 $i\neq j$ 时,其配对标记 $z_{ij}$ 取值是?
- A.+1(正样本)
- B.0(忽略样本)
- C.-1(负样本)← 正确答案
- D.由相似度决定
答案:C。对角线 $i=j$ 才代表同一对图文,标记为 +1;非对角线都属于不匹配的负样本对,标记为 -1。这就像相亲中只有同一对嘉宾才是官方配对,其他组合一律视为“不配”。
Q3. CLIP 的 Softmax 对比损失为什么依赖大批量?
- A.大批量提供更多高质量难负样本← 正确答案
- B.大批量才能填充 GPU 显存空间
- C.Softmax 必须使用平方复杂度运算
- D.小批量完全无法计算梯度更新
答案:A。Softmax 的分母把概率分配给所有候选,批量越大、难负样本越丰富,归一化后的梯度信号才越有区分度。B、C、D 都不是本质原因,小批量只是质量差,并非不能算。
Q4. 关于 SigLIP 的训练配置,下列说法正确的是?
- A.温度 t 初始化为 10 且可学习← 正确答案
- B.偏置 b 初始化后冻结不再更新
- C.标签平滑会把目标设为 0 或 1
- D.温度与偏置只影响推理不影响训练
答案:A。SigLIP 的温度 $t$ 初始化为 10、偏置 $b$ 初始化为 0,两者都是可学习参数,共同决定匹配边界。B、D 与“可学习”矛盾;C 说反了,标签平滑是把目标从 ±1 收缩到 ±(1−ε),而不是设成 0/1。
Q5. 下列哪些属于 SigLIP 相对 CLIP 的设计差异?
- A.使用可学习的温度参数← 正确答案
- B.增加可学习的偏置项 b← 正确答案
- C.引入标签平滑提高稳定性← 正确答案
- D.推理时必须使用 softmax
答案:ABC。SigLIP 引入可学习温度与偏置,并探索了标签平滑;这些都在调整“打分规则”。D 错误,Sigmoid 单调,推理时无需强制使用 Softmax,直接比较 logit 或逐类 Sigmoid 得分即可。
Q6. SigLIP 论文报告相对 CLIP 的训练效率提升约为?
- A.训练速度约提升 2.5 倍
- B.训练速度约提升 1.5 倍← 正确答案
- C.训练速度与 CLIP 基本持平
- D.训练速度提升 5 倍以上
答案:B。论文明确报告 SigLIP 可以用更小 batch 训练,速度约为 CLIP 风格的 1.5 倍。其他数值不符合论文结果。速度提升来自逐对恒定梯度带来的小批量稳定性,而不是算力翻倍。
Q7. 以下关于 SigLIP 损失与 batch size 关系的描述,正确的有?
- A.损失期望不再随 batch 线性增长← 正确答案
- B.训练仍需要足够多样的正负样本对← 正确答案
- C.batch 越小越好,无需任何数量
- D.每个图文对独立被评判← 正确答案
答案:ABD。A 正确,逐对平均后损失量级与 batch 解耦;B 正确,多样性依然重要;D 是逐对二分类的核心。C 错误,极端小 batch 会减少配对覆盖,论文使用的是 16K 左右的大批量,只是比 CLIP 更小更灵活。
Q8. 以下哪项属于 SigLIP 的典型下游任务?
- A.零样本分类与图文检索← 正确答案
- B.文本生成与代码补全
- C.语音识别与语音合成
- D.视频分类与目标检测
答案:A。SigLIP 是视觉-语言预训练模型,最典型的下游任务是零样本图像分类和图文互检索。B 是语言模型任务,C 是语音任务,D 虽然是视觉任务但通常需要额外检测头,并非 SigLIP 的典型用法。
Q9. 设温度 $t$ 固定且负样本对 logit 明显为负,SigLIP 中单个负样本对的梯度量级约为?
- A.约等于 t← 正确答案
- B.约等于 1/N
- C.约等于 0
- D.约等于 t/N
答案:A。当负样本被分得很开时,$\sigma(-(ts+b))\approx 1$,梯度约为常数 $t$,不随 batch 缩放。B、D 描述的是 Softmax 归一化后的稀释效应,C 则完全相反。
Q10. 关于 Softmax 对比损失中负样本梯度被稀释的原因,下列说法正确的有?
- A.分母需要对所有负样本求和归一化← 正确答案
- B.单个负样本梯度约与 softmax 概率成正比← 正确答案
- C.batch 越大,单个负样本平均梯度越小← 正确答案
- D.Sigmoid 损失中负样本梯度也成正比稀释
答案:ABC。Softmax 的归一化分母让概率总和为 1,单个负样本分到的概率约 1/N,梯度随 batch 增大而变小,A、B、C 都正确。D 错误,SigLIP 的逐对 Sigmoid 损失正是为了消除这种稀释。