0%

Align before Fuse: Vision and Language Representation Learning with Momentum Distillation

NeurIPS,2718次

image-20250227170757594

模型架构

整体上,模型分为text encoder、image encoder、multimodal encoder三个部分。Momentum model是进行蒸馏的手段,即使去掉ALBEF也是完整的模型。

Encoder

图像encoder采用12层的ViT-B/16模型;文本encoder采用6层transformer,多模态encoder采用6层transformer,有趣的是这12层transformer就是BERT模型的12层transformer,前6层用作文本encoder,后6层用作多模态encoder。图像侧和文本侧都带有[cls] token。另外,多模态transformer采用cross attention的方式,融合图像token和文本token。

Loss function

采用三种loss,然后加和。Image-text contrastive learning (ITC) on the unimodal encoders, masked language modeling (MLM) and image-text matching (ITM)。

ITC

为了在融合之前得到更好的单模态表示而做的对比学习,借鉴MoCo的思路,ALBEF维护两个队列,分别存储最近的M个图像特征和M个文本特征。该特征是[cls] embedding经过线性变换和Normalization以后生成的。ITC中使用的loss是标准的对比损失。

用softmax对原本的相似度进行平滑,之后用ground-truth y和p的cross-entropy计算,图片和文本加和后平均。

image-20250227172247363
image-20250227172256613

MLM

Bert中的思路,对文本mask然后用交叉熵计算损失。

image-20250227172839641

ITM

ITM是图像和文本匹配损失函数,用来预测图像和文本是否匹配。采用multimodal encoder的[cls] token来表示图文融合的特征,然后连接上FC和softmax,预测2类的概率值,表示图文对是否匹配。ALBEF还会使用ITC中的图文对比损失去挖掘hard negatives,从而增强ITM任务。

image-20250227172810838

Momentum Distillation

动量模型由单模态和多模态编码器的指数移动平均版本组成。

图文对当中有噪声,正样本中,可能图片和文字相关性很弱。ITC中可能,负样本文字可能也与图片相符合,MLM中,替换的文字可能比原本的文字能更好地描述图片,但 one-hot ground truth忽视这样的相关性,惩罚所有的负样本。

利用动量模型(参数为历史模型的指数移动平均)生成更可靠的伪标签(软标签),指导当前模型训练,从而减少对噪声标签的依赖。动量模型对同一输入生成预测分布(软标签),作为监督信号。

训练时训练base model使其与动量模型中的预测匹配,ITC中,直接使用动量模型产生的相似度。

原始任务loss加上预测目标和伪目标散度的方式来重新定义原始任务损失。

image-20250227173950258

结果

image-20250227174657416

BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation

PLMR,4332

Method

Model Architecture

Multimodal mixture of encoder-decoder (MED)

  • Unimodal encoder: 图像使用ViT,文本使用Bert
  • Image-grounded text encoder:通过在文本编码器的每个 transformer 块的自注意力 (SA) 层和前馈网络 (FFN) 之间插入一个额外的交叉注意力 (CA) 层来注入视觉信息。
  • Image-grounded text decoder:将Image-grounded text encoder中的bidirectional self-attention layers替换为causal self-attention layers。
image-20250228165230354

Pre-training Objectives

三个预训练目标,两个understanding based,一个generation based。每一对图文,需要经过一次图像encoder和三次text encoder。

  • Image-Text Contrastive Loss (ITC)

    使用了ALBEF中的思路,用ITC加强图文对应的语义信息,并且使用动量蒸馏模型。

  • Image-Text Matching Loss (ITM)

    同样使用了ALBEF进行ITM的思路。

  • Language Modeling Loss (LM)

    使用了image-grounded text decoder,生成对图片的文本描述。优化了交叉熵损失,训练模型以自回归方式最大化文本的可能性。计算损失时,应用 0.1 的标签平滑。

为了提高效率,text encoder 和text decoder之间除开SA layers,权重全部共享,因为两个任务的区别主要在于SA layers。

CapFilt

image-20250228173547049

Filter和Captioner从预训练的MED中初始化,然后在COCO上微调。

Captioner是image-grounded text decoder,使用前文的LM objective微调,学习如何生成描述。Filter是一个image-grounded text encoder,使用前文的ITC和ITM去学习图文是否匹配。

Experiments and Discussions

预训练设置与数据集

配置项 参数细节
视觉编码器 ViT-B/16 (224x224输入)
文本编码器 BERT-base (12层, 768隐藏维度)
预训练总数据量 134M (12M清洗数据 + 122M噪声数据)
训练硬件 64x NVIDIA A100 (400 GPU hours)

核心实验结果

任务类型 评估指标 BLIP CLIP ALBEF
图文检索 COCO R@1 76.8% 68.3% 72.6%
视觉问答 VQA Acc 77.3% - 75.2%
图像描述生成 CIDEr 135.2 - 121.8

消融实验分析

消融组件 图文检索R@1 生成CIDEr 结论总结
完整模型 76.8% 135.2 基准性能
移除CapFilt 68.5%↓ 120.6↓ 数据清洗提升8.3%/14.6%
仅用单模态编码器 71.2%↓ - 跨模态融合贡献5.6%↑

跨领域泛化表现

测试领域 数据集 R@1 相对CLIP提升
医学影像 COVID-Xray 63.2% +11.4%↑
艺术创作 ArtEmis 58.7% +9.8%↑
工业质检 PCB-Text 51.3% +7.6%↑

Flamingo: a Visual Language Model for Few-Shot Learning

image-20250214165857225

发布于NeurIPS。

三大创新点:

  • bridge powerful pretrained vision-only and language-only models.
  • handle sequences of arbitrarily interleaved visual and textual data.
  • seamlessly ingest images or videos as inputs.

模型能力

  1. 多模态输入处理能力

Flamingo 的核心突破是能够处理图像/视频与文本交错的多模态输入。例如:

​ [图片] + "这是什么动物?" → "斑马" ​ [视频] + "发生了什么?" → "一只猫跳上桌子"

模型通过观察这些图文交错的示例,直接生成答案。

  1. 结合预训练视觉与语言模型 Flamingo 的架构整合了两种预训练模型:

视觉模型:负责提取图像/视频的语义特征(例如 CLIP、ViT)。 语言模型(LM):负责基于视觉特征生成文本(例如 GPT-3)。 关键设计:通过冻结预训练参数(不更新权重)并添加轻量级适配层,将两者连接,既保留预训练知识,又实现多模态交互。

  1. 高效处理高分辨率图像/视频 采用 Perceiver 架构,将高分辨率视觉输入压缩为固定数量的特征向量,解决了传统模型因分辨率高导致计算量爆炸的问题。

模型架构

image-20250225201536690

  1. 整体框架

    Flamingo 的架构基于 预训练视觉编码器 + 预训练语言模型 + 桥接模块 的三明治结构:

    • 视觉编码器:采用冻结的 NFNet(F6 版本),通过对比学习预训练,提取图像/视频的时空特征。
    • 语言模型:基于 Chinchilla(1.4B/7B/70B 参数)的冻结 Transformer 解码器。
    • 桥接模块:包含 Perceiver Resampler门控交叉注意力层,实现视觉到语言的语义映射。

    Perveiver从Vision Encoder接收时空特征,输出一个定长的vision tokens,冻结的LM利用交叉注意力交错使用tokens进行next token预测任务

  2. 核心模块

    1. Vision Encoder

      1. 模型选择:NFNet-F6
      2. 预训练方式:对比学习(CLIP风格),目标函数为图文匹配,使用two-term contrastive loss
      3. 关键技术
        1. 视频数据处理:1FPS抽帧 → 单帧独立编码 → 添加可学习时间嵌入
        2. 特征输出:输出2D/3D空间特征网格(例如 2048维 × 14×14),最终都拉平了
    2. Perceiver Resampler

      image-20250225212011711

      1. 接收可变长度的feature为输入,将其转为固定长度(64)
      2. 处理流程
        1. Latent Queries:64个可学习查询向量(长度=视觉特征维度)
        2. Transformer Cross-Attention:查询向量与视觉特征交互
        3. Self-Attention:查询向量间信息聚合
    3. Conditioning frozen language models on visual representations

    Conditioninig指在visual representation之下。

    下图是Interleaving new GATED XATTN-DENSE layers within a frozen pretrained LM,冻结的LLMblock前加入了一个GATED XATTN-DENSE block,使用tanh-gating是为了保证初始化时条件模型和原始语言模型有相同的结果。GATED XATTEN-DENSE将从头开始训练,与冻结的LLM交错拜访,vision信息x只用于GATED XATTN-DENSE block的训练。image-20250225212804372

  3. Multi-visual input support: per-image/video attention masking

    掩码full text-to-image cross-attention matrix, 以便限制model在每个token能看见的visual token。

    <img1> Text1 <img2> Text2如果这是输入序列,那么Text2就不能看见img1的token,必须对应。

    结果

    image-20250227195351479

Learning Transferable Visual Models From Natural Language Supervision

29438次引用,Proceedings of the 38th International Conference on Machine Learning, PMLR 139:8748-8763, 2021.

摘要部分提到,现有的计算机视觉系统通常通过预定义的固定类别进行监督训练,限制了其泛化能力。CLIP通过从自然语言监督中学习,使用4亿个(图像,文本)对进行预训练,实现了零样本迁移到多种下游任务,效果与全监督模型相当。Contrastive Language Image Pre-training,CLIP。

image-20250226152948794

Approach

数据收集与处理

  • 数据集构建:
    • 从互联网抓取4亿个(图像-文本)对,构成WebImageText (WIT)数据集。
    • 通过500,000个搜索词(覆盖物体、场景、动作等)确保数据多样性。
    • 过滤低质量数据:移除重复样本、非英语文本、含攻击性内容的图像。
  • 关键设计:
    • 弱监督对齐:文本与图像的关系是弱相关(如网页图片与周围文本),而非严格对齐(如COCO的详细区域描述)。

模型架构

有一批N(image,text)pairs,预测真正匹配的图像-文本对。

训练一个image encoder和一个text encoder,最大化N个正确配对的cosine similarity,最小化\(N^2-N\)个错误配对,对相似性分数进行了symmetric cross entropy loss

组件 结构细节
图像编码器 ResNet变体(如ResNet-50)或Vision Transformer(ViT,patch size 14x14)
文本编码器 Transformer(最大63M参数,12层,512隐藏层,8头注意力)
特征映射 图像/文本特征通过线性投影层映射到共享嵌入空间(维度512或768)

对比学习目标

  • 损失函数

    • 对称对比损失(Symmetric Contrastive Loss): \[ \mathcal{L}_{\text{contrastive}} = -\frac{1}{2N} \left( \sum_{i=1}^N \log \frac{e^{\text{sim}(I_i, T_i)/\tau}}{\sum_{j=1}^N e^{\text{sim}(I_i, T_j)/\tau}} + \sum_{i=1}^N \log \frac{e^{\text{sim}(T_i, I_i)/\tau}}{\sum_{j=1}^N e^{\text{sim}(T_j, I_i)/\tau}} \right) \]
    • 其中:
      • \(\text{sim}(I, T)\):图像和文本特征的余弦相似度
      • \(\tau\):可学习的温度系数(设为可学习的一个标量)

Zero-Transfer

image-20250226152948794

图中左侧是zero-transfer的推理部分,对感兴趣的部分进行prompt engineering,例如认为图片中有cat、dog、bird、plane,就构建一个句子A photo of a cat dog bird plane,经过text embedding,会构建一个4维向量,然后这个向量与image encoder提取得到的特征计算cosine similarity,经过一个softmax分类头,得出最后的标签。

下图是CLIP和visual N-Grams的对比,CLIP没有用ImageNet中的任何一张图片进行训练。

image-20250227115502197

Prompt Engineering

Issue:

  • Polysemy:提示词可能具有歧义(例如boxer)。
  • Describition:对图片的描述可能是一个句子。

作者使用一个模板“A photo of a {label}”,若是提前知道信息,将信息加入到prompt,对zero-shot很有用。多用一些prompt做ensemble,效果会很好。

image-20250227125034170

Multimodal Machine Learning: A Survey and Taxonomy

IEEE transactions on pattern analysis and machine intelligence, 2018,引用3890

多模态的五大核心挑战

表示(Representation)

  • 目标:将异构数据(如图像、文本、音频)转换为统一或协调的表示形式。

  • 方法:

    • 联合表示(Joint):将多模态数据映射到同一空间(如神经网络、深度玻尔兹曼机)。

    • 协调表示(Coordinated):不同模态独立映射,但通过相似性约束(如距离最小化、相关性最大化)协调。

      image-20250226133825056
  • 应用:语音识别、情感分析、跨模态检索。

翻译(Translation)

  • 目标:将一种模态的信息转换为另一种模态(如图像生成描述、文本生成图像)。

  • 方法:

    • 基于示例(Example-based):通过检索或组合现有示例生成结果。
    • 生成式(Generative):使用编码器-解码器框架(如RNN、LSTM、注意力机制)生成新内容。
  • 挑战:评估困难(如主观性、多正确答案),常用BLEU、ROUGE等指标。

对齐(Alignment)

  • 目标:找到不同模态子元素间的对应关系(如视频帧与文本描述的对齐)。

  • 方法:

    • 显式对齐:动态时间规整(DTW)、图模型(HMM、CRF)。
    • 隐式对齐:注意力机制(Attention)、神经网络隐式学习对齐。
  • 应用:视频-文本对齐、视觉问答(VQA)。

融合(Fusion)

  • 目标:整合多模态信息进行预测(如情感识别结合语音和面部表情)。

  • 方法:

    • 模型无关:早期融合(特征拼接)、晚期融合(决策加权)、混合融合。
    • 基于模型:多核学习(MKL)、图模型(CRF)、神经网络(LSTM、多模态RNN)。
  • 挑战:处理噪声、模态缺失、时序不一致性。

协同学习(Co-learning)

  • 目标:利用资源丰富的模态辅助资源稀缺的模态学习。

  • 方法:

    • 并行数据:协同训练(Co-training)、迁移学习。
  • 非并行数据:零样本学习(ZSL)、概念嵌入(Conceptual Grounding)。

    • 混合数据:通过中间模态桥接(如多语言图像描述)。
  • 应用:跨模态检索、少样本学习。

正则表达式

image-20250301121025965

  • 确定毕设题目: 精密零部件加工领域知识的表示学习技术: 为了从大量精密零部件加工数据中学习出有用的特征和模式,对材料属性、加工工艺、设备特性等数据进行统一的语义映射和表征学习,采用Transformer等技术进行多模态数据的统一表征学习,并利用图神经网络进行关系建模。

根据毕设题目展开学习: # 学习图网络相关知识 - 学习cs224w的部分课程内容 - Node embedding - 如何将图作为向量嵌入表示 - Node embedding相关算法(random walk embedding, node2vec) - GNN基础 - Graph Convolutional Networks - aggregation function,loss,train nodes, generate embeddings(even for those the model never trained on) - GCNs subsume CNNs - General Perspective on GNNs - Message - Layer Connectivity - Graph Augmentation: Feature augmentation, structure augmentation - Learning Objective: Supervised/Unsupervised, Node/Edge/Graph level objectives. - Train \ valid \ test - GNN中训练集的划分和其它神经网络有很大区别,普通神经网络不会因为一个样本而影响到另一个样本的预测,而GNN中会,因为每个样本都是一个node,关联整个图。 - Linklevel trick - Theory of Graph Neural Networks - GIN和 WL-Kernel - The most expressive GNNs should map subtrees to node structure injectively. - GNN 不是越深越好,因为感受野不会扩大反而会因为深度减小。 # 学习了transformer的基本架构

  • Attention 机制
  • Encoder and Decoder(Masked self-attention)架构
  • Autoregressive Model
  • cross attention
  • HW4 half hw5

将来一周的打算

  • 学习python爬虫(用于爬取毕设论文数据集)
  • 学习cs224w的剩余课程内容
  • 阅读毕设相关论文

Domain shift: Training and testing data have different distributions. - case1:训练资料和测试资料可能有差别 - case2:训练资料和测试资料的分布可能不同 - case3:训练资料和测试资料的对应关系可能不同。

阅读全文 »