type
status
date
slug
summary
tags
category
icon
password
这个合集从 SigLIP 开始,最近组里其他同学 paper 分享的时候提到了 SigLIP,对这个比较好奇,就来看看
LiT : Zero-Shot Transfer with Locked-image text Tuning(2021)
- 训练方法:image encoder fix 住,只训练 text encoder 部分
- image encoder 可以单独用监督数据做预训练(充分利用监督数据和弱监督数据),论文中在 imageNet 数据上得到 85.2% 的 zero-shot 上在 JFT-3B 做的监督预训练,有 30亿张 图片和超过 3万个 类别标签
- 对齐时,只训练 text encoder 的好处有:
- 训练效率高
- 泛化能力强
- 迫使 text encoder 更鲁棒,从不同文本中提取匹配固定视觉特征的语义信息
- 稳定的学习目标,两个模型同时训练,好像两个移动的靶子相互瞄准
- 更灵活,image encoder 可复用
(SigLIP, SigLIT)Sigmoid Loss for Language Image Pre-Training(2023)
方法
训练 loss 从 softmax loss,可以理解成从被当成 N 分类来学习的 infoNCE 改成了 N 个二分类来训练,二分类的 loss 就是 sigmoid loss,具体就是:

其中 是 label,正样本是 1, 负样本是 -1(非 pairs),这种训练方式有个潜在类别不均衡问题 - batch size 32k,那么一个正样本就有 32K 个负样本,梯度由负样本主导,很有可能模型很快就学会把所有样本都预估为负样本,进入局部最优点了。论文通过引入 bias 项 b 来解决这个问题,将 t 和 b 分别初始化为 和 -10。训练初期,如何 接近 0,偏执项为 -10 的情况下,sigmod 是处于梯度饱和区域的,因此只有那些 “困难样本” 会提供梯度,以此避免大量负样本的影响(大部分负样本相似度极低, 会接近 0)
工程优势

- 提高训练速度,降低显存消耗:
- 对于 softmax loss,由于分母需要全局信息(比如 image 对 其他 text 的相似度),因此除了需要做 all_gather 操作把其他卡上 image 和 text embedding 拉到当前卡上,并且需要用一个 的矩阵来储存相似度来计算 softmax 的结果
- Sigmoid Loss 不需要显示储存,拿到别的卡上负样本的 embedding 就可以马上计算 loss
- 降低显存消耗之后,可以进一步扩大 batch size (但是到 32K 之后就没有什么提升了)
其实按照 FlashAttention 的迭代式逻辑来计算的话,是不需要显示储存的(但 all_gather 的操作无法避免),论文中提到是因为 softmax 有为了数值稳定做的分子分母同时 - 最大 logits 的操作,导致需要显示储存 N ✖️ N 的矩阵,但后来 FlashAttention 给的方法是可以迭代式计算的,所以这么来看,工程上softmax Loss 的劣势是可以工程优化来解决的。
算法优势
- sigmoid loss 对噪音样本的鲁棒性会更强:softmax loss 中假负例会对其他样本的学习有影响,而 sigmoid loss 只影响自己
总结
工程上的劣势,softmax loss 可以采样迭代式计算方式来弥补,siglip 的性能提升可能更多来源对噪音的鲁棒性
疑问
Q:为什么 sigmoid loss 没有推广到 text embedding 的模型训练上呢?从目前时间(2025 年 6 月)来看,最近的 text embedding 模型依然上用 softmax loss,比如刚放出来的 qwen3-embedding?
A:关于 softmax loss 的一个共识是,它会做隐式的难负样本挖掘,sigmoid loss 是没有这个能力的,而在文本场景下,难负样本会更重要,因为语义上 “一只猫在奔跑” vs “一只狗在奔跑” 相比图片上 “一只猫在奔跑.img” vs “一只狗在奔跑” 会更难,后者会更容易区分。(以上 A 参考了 gemini 的解答)
Q: 为什么 batch size 小的时候,sigmoid loss 效果会更好(实验发现)
A:(个人理解) softmax loss 能学到东西是比较依赖于难负样本的,对于相对简单的样本几乎提供不了多少梯度,但是 sigmoid loss 没有这个问题,batch size 小的时候,难负样本出现的概率更低,所以 sigmoid loss 表现会更好
