ai学习笔记(十四)
这次主要分享一下多模态相关知识。
1. 模态(Modality)
文本、图像、语音、视频、深度/点云、表格、传感器、结构化知识等。
多模态指的是数据或者信息的多种表现形式,一个信息,它可以存在多种表现形式。
2. 多模态学习
联合利用多种模态完成理解、生成、推理或控制。
2.1 多模态核心任务
根据不同的目标和应用,多模态学习可以分为几个经典的任务方向:
a. 表示
1、视觉模态表示----Vit路线
-
图像切 Patch:将输入图像划分为多个固定大小的碎片(例如 16×16 像素),每个 Patch 可以看作是一个小图像块。对于高分辨率图像,有时会采用更细粒度的划分,此时每个小块常被称为 Tile。
-
投影成 Token:每个 Patch 通过一个线性投影层(可学习的全连接层)映射为一个一维向量,称为 Visual Token。同时加上可学习的位置编码(Position Embedding),因为模型需要知道 patch 在原始图像中的空间位置。
-
输出:一系列 Token 序列,形状为
(N_patches, embed_dim),后续可送入 Transformer 编码器。
常见模型:ViT (Vision Transformer)、DINO、CLIP 的视觉编码器。
2、文本模态表示 —— BPE
-
字词切分:纯字符级别会丢失语义,整词级别会导致词表过大。BPE(Byte Pair Encoding)是一种介于字符和词之间的子词切分方法。
-
例子:
"swimming"在语料中可能被切成"swim"+"ming",高频子词被保留为独立 token。BPE 能够处理未登录词,减少词表大小。 -
输出:每个子词对应一个 Token ID,再通过词嵌入矩阵映射为向量,并加上位置编码,形成文本 Token 序列。
扩展:除了 BPE,还有 WordPiece(BERT 使用)、SentencePiece(T5 使用)等。
3、语音模态表示
-
特征提取:原始音频波形(时域)先通过预处理,常用 MFCC(梅尔频率倒谱系数)或 FBank(Filter Bank)提取频域特征。
-
采样成帧:将连续音频信号划分为短时帧(例如 25ms 一帧,帧移 10ms),每帧得到一个特征向量(通常 80 维左右)。
-
Tokenization:有两种主要方式
-
帧级 Token:直接每一帧作为一个 token 序列。缺点是序列非常长(1 秒音频约 100 帧)。
-
离散化 Token:通过 VQ-VAE 或 Hubert 等方法将连续帧特征聚类为离散的“声学单元”,类似 BPE 对语音做的切分。例如 HuBERT 或 EnCodec 将音频转为离散 token。
-
-
输出:语音 Token 序列,长度与帧数相关,可与文本/视觉 token 对齐后送入统一 Transformer。
现代多模态模型(如 AudioLM、VALL-E)常将语音表示为三种 token:语义 token(类似 BERT 处理后的特征)、声学 token(音色)、声码器 token(用于还原波形)。
b. 对齐
对齐解决的核心问题是:如何让模型知道不同模态中的哪些部分在语义或时间上是“对应的”。分几种角度
1、语义对齐 —— 音话同步
-
定义:将不同模态中表达相同含义的部分联系起来,而不要求严格的时间点对齐。
-
例子:一段描述“一个人在微笑”的文字,和一张微笑的人脸图片,需要模型把这两个样本在语义空间中对齐。
-
技术手段:常用对比学习(InfoNCE),拉近匹配对的向量距离,推远不匹配对。代表工作:CLIP、ALIGN。
2、时间对齐
很多数据天然有时序,比如视频与音频、手势与语音。
-
概念:同一个实体在不同时间点表达的信息不同。例如一段演讲视频中,某时刻的词“苹果”可能对应此时画面中出现的水果或手机,需要模型精确找到该时刻的视觉区域。
-
细粒度对齐:音频帧与视频帧之间的同步。例如 AV-HuBERT 通过预测掩码来对齐语音和嘴唇运动。
-
动态时间规整(DTW):传统方法,用于处理不同模态之间时间速度不一致的问题。
3、全局对齐(弱对齐) vs 局部对齐(强对齐)
| 类型 | 含义 | 例子 | 标签精细度 |
|---|---|---|---|
| 全局对齐 | 整个样本对之间是否匹配,而不关注内部细粒度对应。 | 一张图片与一句描述:“海边日落” → 整体匹配即可。 | 弱监督(只有样本对标签) |
| 局部对齐 | 模态内部的局部片段与另一模态的局部片段之间的对应关系。 | 图像中的一个区域(狗的脸)与文本中的词“狗”对齐;视频中第3-5秒的枪声与字幕中的“砰”对齐。 | 需要更精细的标注或自监督学习(如匹配图) |
局部对齐通常通过注意力机制或最优传输(Optimal Transport)实现。例如在多模态 Transformer 中,视觉 token 与文本 token 的交叉注意力权重可以直接解释为局部对齐的软程度。
c. 融合
融合回答两个问题:什么时刻融合 + 在什么粒度下融合。
1. 何时融合 —— 早期、中期、晚期
-
早期融合(Early Fusion / 数据级融合)
-
在输入层就将原始数据拼接或组合。
-
例子:将图像像素和对应的热力图像素堆叠成多通道输入送进 CNN。
-
优点:模型可以学习模态间的低阶交互。缺点:原始数据差异大时难学,且容易过拟合。
-
-
晚期融合(Late Fusion / 决策级融合)
-
各个模态独立处理,最终将各自的预测结果(概率、分数)进行融合(加权平均、投票、元学习等)。
-
例子:一个模型识别图片中的物体类别(输出概率),另一个模型识别音频中的物体类别,最终加权求和。
-
优点:简单、鲁棒,不同模态可以使用完全不同的模型。缺点:失去了模态间交互的机会。
-
-
中期融合(Intermediate Fusion / 混合融合)
-
在模型的中间层进行融合,即各模态先经过若干层编码,然后融合其特征表示,再继续联合处理。
-
例子:CLIP 的双塔架构中,视觉和文本独立编码到最后才计算相似度 → 其实更接近晚期融合;真正的中期融合如 VilBERT,图像区域特征和文本词特征经过若干层后互相对齐并融合。
-
当前主流:多模态 Transformer 本质上是在每一层都进行交叉注意力(一种极端的中期融合,甚至可称为“早但又深的融合”)。
-
2. 什么粒度融合 —— 注意力、门控
-
注意力机制:
-
允许模型动态选择不同模态中“最相关”的部分进行融合。
-
例如,在视觉问答中,当问题提到“颜色”时,模型会加大视觉 token 中与颜色相关区域的注意力权重。
-
常见形式:Cross-Attention(一种模态的 query 去另一种模态的 key/value 中检索信息)。
-
-
门控机制(Gated Fusion):
-
学习一个“门”向量,控制每个模态特征进入下一层的比例。
-
例子:
fused = g * feature_A + (1-g) * feature_B,其中 g 由当前输入特征动态生成。 -
优点:可以抑制噪声模态,突出信息量大的模态,常用于情感识别或多传感器融合。
-
-
其他粒度:拼接、加权和、乘法、双线性池化等,但注意力机制和门控是目前最有效的。
d. 迁移
迁移学习在多模态领域中非常有价值,尤其是利用已经预训练好的单模态大模型来加速多模态模型的学习,或者将一个模态的知识迁移到另一个模态。
核心思想:单模态大模型预训练 → 多模态适配
-
背景:在很多场景下,单个模态(如文本、图像)有海量无标签数据,容易训练出强大的单模态大模型(如 BERT、GPT、ViT、HuBERT)。但是多模态数据(如视频-字幕对)相对稀少。直接从头训练多模态模型很昂贵且容易欠拟合。
典型工作流
-
从各自的单模态预训练模型(如 BERT 和 ViT)中取出编码器部分。
-
将它们拼接成一个多模态架构,中间加入跨模态融合层(交叉注意力等)。
-
在多模态数据(如图文对)上进行微调,可以冻结部分层或全部解冻。
-
最终模型既能利用单模态预训练学到的丰富知识,又能学习跨模态的关联。
2.2 经典技术和模型架构
目前主流的多模态模型主要依赖深度学习,尤其是Transformer和注意力机制。
a. 双塔(Dual-Encoder)
-
原理:用两个独立的编码器分别处理不同模态(如一个处理文本,一个处理图像),通过一个对比损失函数(如InfoNCE)将它们映射到同一个向量空间,让相似样本的向量距离更近,不相似的更远。
-
代表作:CLIP(OpenAI),ALIGN(Google)。
-
优点:效率高,特别适合检索任务。
-
缺点:模态间的交互较浅,不适合复杂推理。
b. 单塔/融合编码器架构:
-
原理:将不同模态的输入(如文本token和图像patch)拼接在一起,输入到一个统一的Transformer模型中进行深层交互。
-
代表作:Flamingo(DeepMind),GPT-4V(OpenAI),LLaVA。
-
优点:模态间交互充分,推理能力强,适合视觉问答、图像描述等任务。
-
缺点:计算成本极高,难以处理超长输入。
c. 统一Transformer架构:
-
原理:将所有模态(文本、图像、声音、视频)都“分块”(tokenize)成序列,然后用同一个Transformer模型以同样的方式处理。这是一种更激进的统一方法。
-
代表作:ImageBind(Meta),UniVL。
-
优点:架构极其简洁,理论上可以学习任何模态之间的关联。
d. 编码器-解码器
- 原理:一端理解多模态输入,一端生成文本或其它模态(caption、VLM 回答、语音合成等)类似Seq2Seq。
2.3 对比学习
对比学习是一种自监督学习方法,其基本想法非常简单:
拉近相似样本,推开不相似样本。
- 常用案例
假设我们没有任何标签,只有一堆猫和狗的图片。我们给每张图片做两种随机增强(旋转、裁剪、变色等),得到两个不同视角的版本。
-
同一个原始图片的两种增强 → 正样本对(尽管它们看起来不完全一样,但语义相同)。
-
不同原始图片的增强 → 负样本对(语义不同)。
对比学习的目标是:
-
让正样本对的特征向量在空间中尽可能接近(高相似度)。
-
让负样本对的特征向量在空间中尽可能远离(低相似度)。
训练完成后,模型提取的特征能够将不同物体(猫和狗)自然分开,甚至形成一个语义聚类。
实现步骤:
构建正负样本对
-
正样本对:同一张图片经过不同数据增强(如裁剪、旋转、变色)后得到的两张图。模型需要学会:它们表征的是同一个东西。
-
负样本对:一张图片与其他不同的图片。模型需要学会:它们的表征应该不同。
映射到特征空间
模型(通常是神经网络)将每张图片映射到一个被称为特征空间的高维球面上。在这个空间中,相似的事物距离近,不相似的事物距离远。
使用对比损失函数(如InfoNCE Loss)
这是最关键的一步。损失函数会计算:
-
分子:正样本对之间的相似度(鼓励更大)。
-
分母:正样本对相似度 + 所有负样本对相似度(鼓励分母中负样本贡献小)。
损失函数的核心公式逻辑(简化版):

3. 扩散模型(Diffusion Models)
扩散模型是一种通过逐步向数据添加噪声(前向过程),然后学习逆转这个过程(反向过程)来生成新数据的生成模型。
核心思想:从有序到混沌(加噪),再从混沌到有序(去噪)。
直观比喻:一幅画的“消失与重现”
想象有一张清晰的猫的照片。
-
前向过程(加噪):你反复在照片上叠加一层又一层的模糊雪花。经过足够多的步骤后,照片变成了一团完全的随机噪声(看起来像老电视的雪花屏)。每一步,猫的形象都稍微更模糊一点。
-
反向过程(去噪):你训练一个神经网络,教它如何从稍微更模糊的图片,预测出稍微清晰一点的图片。比如,给它看第99步的噪声图,让它预测第98步的样子。反复应用这个去噪步骤,最终就能从纯噪声恢复出一张清晰的猫图。
关键点:模型不需要直接一步生成图像,而是学习一个微小的、可重复的去噪操作。多次应用这个操作,就能从纯噪声“雕刻”出任何你想要的图像。
4. CLIP模型
CLIP(对比语言-图像预训练)模型是多模态领域的一个里程碑,它解决了如何让AI像人类一样,同时“看懂”图像和“读懂”文字这个难题。它的伟大之处在于,通过“图文配对”这种海量、弱监督的数据进行学习,最终获得了强大的“零样本学习”(Zero-shot Learning)能力,无需针对新任务进行专门训练就能完成分类、检索等操作。
零样本迁移能力:
零样本学习(Zero-shot Learning)是CLIP最引人注目的特性。它让模型能够处理在训练时从未明确见过的类别。
举个例子,假如我们需要一个从未“学习”过“柯基犬”的模型进行识别:
-
任务输入(Text Prompt):我们不需要为任务重新训练模型。只需将“柯基犬”这个类别名称,嵌入到一个精心设计的文本提示模板中,如“一张[标签]的照片”,送入文本编码器,得到该类别在上述向量空间中的位置
T。 -
图像推理:将一张待识别的“狗”的图片送入图像编码器,得到其在向量空间中的位置
I。 -
相似度计算与决策:
I和T之间会进行相似度计算(通常是余弦相似度)。相似度得分越高,表示图像与文本描述越匹配。
它的原理在于,虽然没见过“柯基犬”,但CLIP在预训练时已经学会了“狗”、“短腿”、“长耳朵”这些基本概念及其组合,从而能通过语义空间中的位置关系,准确推断出目标。
CLIP在ImageNet上直接达到了76.2%的零样本准确率,相比之前11.5%的SOTA(最先进技术水平)有了质的飞跃。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)