Skip to content

Commit d2d4096

Browse files
committed
u
1 parent 5a8183c commit d2d4096

1 file changed

Lines changed: 55 additions & 1 deletion

File tree

src/MMLLM/CoCa.md

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,4 +470,58 @@ class CoCa(nn.Module):
470470

471471
# 总损失 = caption loss + contrastive loss
472472
return caption_loss + contrastive_loss
473-
```
473+
```
474+
475+
## 消融实验
476+
477+
### **训练目标和损失**
478+
479+
* **生成式损失 vs 分类损失**
480+
481+
* 使用图像描述的生成式损失训练的编码器-解码器模型,性能和传统的单编码器分类损失模型差不多
482+
483+
* 说明生成式训练本身就包含了分类能力,CoCa 可以统一多种训练方法,而且不需要先单独预训练视觉编码器
484+
485+
* **联合损失效果**
486+
487+
* 同时使用对比损失和生成损失的 CoCa,比只用单一损失的模型表现更好
488+
489+
* 生成损失不仅提升 VQA 的能力,也让跨模态对齐(图像和文本匹配)更准确
490+
491+
* 两个损失共享计算资源,所以训练效率高,成本低
492+
493+
---
494+
495+
### **解码器设计和文本嵌入**
496+
497+
* **单模态和多模态解码器层**
498+
499+
* 减少单模态文本层 → 零样本分类能力下降
500+
501+
* 减少多模态层 → 多模态推理(如 VQA)能力下降
502+
503+
* 将解码器拆成一半单模态、一半多模态 → 取得了较好平衡
504+
505+
* **\[CLS] token 使用**
506+
507+
* 只用一个可学习的 \[CLS] token 表示整句话,比把它和原输入拼接更好
508+
509+
* 这种方式能减轻生成和对比损失之间的干扰,同时保证视觉和跨模态检索能力
510+
511+
---
512+
513+
### **注意力池化器设计**
514+
515+
* **预训练池化器方案**
516+
517+
* 并行方案:同时提取对比和生成损失
518+
519+
* 级联方案:先用生成池化器,再在其输出上做对比池化
520+
521+
* 小模型实验表明,级联方案效果更好,所以 CoCa 默认采用
522+
523+
* **查询数量**
524+
525+
* 查询越多 → 使用更多图像 token 信息 → 对多模态理解任务更有利
526+
527+
* 默认生成池化器长度设为 256,既能提升多模态理解,又保持冻结特征能力

0 commit comments

Comments
 (0)