在“多模态城”里,图片和文字就像说不同语言的单身人士——图片先生擅长色彩和形状,文字小姐擅长语义和描述,可他们互相听不懂。城里最有名的“缘来如此”婚介所,老红娘的任务就是让图片和文字一一配对。隔壁年轻的学徒 CLIP 想了个好办法:把每位嘉宾都写成一张“缘分坐标卡”,让真配对在坐标里靠近。但 CLIP 有个烦恼——它只肯用人工精心整理过的档案,4 亿份档案虽然靠谱,可请文书誊写、核对、筛选,成本高得吓人。老红娘看着仓库里堆成山的、从网页上随手撕下来的“草稿档案”(图片旁边的说明文字),突然生出一个大胆的念头:与其花钱洗数据,不如把十亿份乱糟糟的档案全用上,办一场史无前例的“相亲大会”,让规则自己从噪声里找到真爱。这就是 ALIGN——用海量噪声数据训练出来的图文对齐大师。 于是,一场关于“双顾问写坐标、相亲会定规则、大批量攒经验”的故事开始了。老红娘先请来两位顾问——“图顾问”和“文顾问”分别把嘉宾写成标准坐标卡;再立下规矩——真配对要在坐标空间里靠得最近,陪跑嘉宾必须被推开;又特意把每场相亲会办得特别大——人越多,判断越准。靠着这套流程,婚介所实现了“零样本来者不拒”的自动配对,但也暴露了档案库偏科、细活不精的遗憾。本文就用这个故事,带你完整拆解 ALIGN 的架构、数据、损失、训练与应用。
对 AI 从业者的价值:ALIGN 是“大数据 + 噪声监督 + 对比学习”路线的标杆,理解它能帮你设计跨模态检索系统、构建多模态预训练方案,并看懂 CLIP 之外的另一条扩展路线。
可视化演示
动态演示ALIGN的核心机制,通过全局/局部/动态/静态四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
ALIGN:ALIG ALIGN模型的设计动机与架构 十亿级噪声图文对的构建与处理 核心机制可视化 ALIGN整体架构与关键组件
背景渊源
婚介所最缺的不是相亲点子,而是档案。CLIP 用 4 亿份人工精修档案把配对做成了,可谁都知道,请文书逐条核对“这张图配这段字对不对”要花多少钱?人工清洗数据的成本让绝大多数团队望而却步。老红娘看着仓库里从网页上扒下来的堆成山的“图片+旁边文字”随笔记账,心里琢磨:这些草稿虽然错漏百出、张冠李戴,但胜在量大——整个互联网就是一座没人整理过的档案金矿。
从技术上说,CLIP 已经证明了“图片和文字分别编码、再拉到一起比相似度”这条路走得通,但它被“高质量数据”锁住了想象力。真实世界里,网页图片旁几乎都自动带着一行图像替换文本(alt-text),它是给视障用户准备的读屏描述,恰恰成了免费的图文弱标注。与其花钱把数据洗得干干净净,不如直接用这些有点脏、有时甚至完全对不上的配对,让模型自己学会分辨真假。ALIGN 把训练集形式化地写成:
老红娘的账本上从此多了十个亿的“草稿档案”。她要做的不再是费力誊写,而是想办法从这些乱糟糟的纸条里把缘分规律挖出来——这正是 ALIGN 与 CLIP 分道扬镳的第一个岔路口。
- 数据集 \(\mathcal{D}\)代表我们用来训练模型的全部图文对档案库,是后续一切操作的基础。
- 配对 \((I_i,\ T_i)\)左边 \(I_i\) 是第 i 张图片,右边 \(T_i\) 是与它对应的文本,二者被假定为语义匹配的一对。
- 数据总量 N当 N 达到十亿规模时,即使噪声很多,模型也能借助统计规律把真正的匹配学出来。
双塔架构
老红娘请来了两位顾问。“图顾问”只接待图片嘉宾,扫一眼像素就能写出一张“缘分坐标卡”;“文顾问”只接待文字嘉宾,读一段描述也能写出一张同款坐标卡。两位顾问从不见面、从不聊天,但他们写出来的卡片必须能放进同一个坐标系里比对——这就是双塔架构的精髓。
在技术实现上,“图顾问”对应图像编码器,ALIGN 采用的是 EfficientNet 一族网络,把一张图压缩成一个固定长度的向量;“文顾问”对应文本编码器,用的是 BERT,把一句话也变成一个向量。两个向量被投射到同一个共享嵌入空间,就像所有嘉宾的坐标卡都采用统一的格式。接下来的问题只有一个:两张坐标卡有多像?答案是最常用的余弦相似度:
两位顾问虽然语言不通,但她们交上来的坐标卡格式统一、量纲一致。真配对的卡片自然会落在相近的位置上——这就是“双塔各干各的,最后空间里相见”的设计哲学。
- 图像向量 \(E_I(I)\)图像塔把原始像素变成一串数字,这串数字浓缩了“画面里有什么”。
- 文本向量 \(E_T(T)\)文本塔把句子变成同样维度的数字串,浓缩了“文字在说什么”。
- 点积与模长之比点积衡量两个向量的方向一致性,除以两个模长后,结果与向量长短无关,只与夹角有关,因此叫“余弦”相似度。
- 相似度取值范围余弦值落在 \(-1\) 到 \(1\) 之间,越接近 1 表示图片和文本在语义上越匹配。
噪声数据策略
档案既然不打算人工核对,那怎么收集?老红娘的办法简单粗暴:直接撕网页。每张网页图片旁边都自带一行“替换文本”(alt-text),本来是给读屏软件用的描述,如今被整条撕下来贴进档案袋。有的纸条写得准确:“一只橘猫躺在沙发上”;有的语焉不详:“点击查看”;还有的张冠李戴,驴唇不对马嘴。老红娘只做了极轻量的规则过滤——太短的纸条扔掉、重复的纸条合并、明显乱码的划掉——然后照单全收。
这套策略与技术上的数据构造一一对应:从 HTML 中提取 alt-text 或周边文本,经过最小化过滤后直接作为图文对。最终 ALIGN 拿到了超过十亿对弱标注图文对,而 CLIP 只有 4 亿对经过人工精心清洗的数据。噪声数据的构造可以写成:
老红娘把“宁缺毋滥”改成了“韩信点兵,多多益善”。虽然档案袋里混了不少废纸条,但她坚信:只要配对游戏规则设计得好,海量数据带来的统计优势足以盖过噪声的干扰。
- 替换文本 \(\text{alt}(I_j)\)它是网页为每张图片自动附带的一段描述文字,不需要人工标注,采集成本几乎为零。
- 噪声数据对 \((I_j,\ \text{alt}(I_j))\)直接组合成的图文对,质量参差不齐,但胜在取之不尽。
- 规模对比 \(M\gg K\)十亿级噪声数据远多于亿级清洗数据,模型在绝对数量上获得了更多可学习的统计信号。
对比损失函数
档案到位了,相亲会该怎么开?老红娘立下一条铁规矩:每场相亲会(一个 batch)里,每位嘉宾都要从全场异性中选出自己的真命天子,选对了有奖、选错了挨罚。换句话说,第 i 张图片要在 N 个文本候选里认出自己的搭档 \(T_i\),而其他 \(N-1\) 个文本全是“陪跑者”(负样本)。这是一场 N 选 1 的考试,要让正样本的相似度在分数榜上排到第一。
技术上,这个“N 选 1 考试”用对比损失(InfoNCE 的一种变体)来实现。对第 i 个图文对,图像到文本方向的损失是:
光让图片认文本还不够,老红娘处世讲究公平——反过来也得让文本认图片。于是总损失把两个方向都算上再取平均,构成对称的双向损失:
老红娘把相亲会的规矩定为“双向奔赴”:图片要能一眼认出文字,文字也要能一眼认出图片。两个方向互为照妖镜,谁也别想偷懒,这就是 ALIGN 损失设计的对称之美。
- 逐样本累加对 batch 里每一个图文对都算一次两个方向的损失,然后全部加起来。
- 方向成对\(\mathcal{L}_{i\to t}\) 是图找文,\(\mathcal{L}_{t\to i}\) 是文找图,二者互为镜像。
- 总平均除以 \(2N\) 得到平均损失,数值范围稳定,方便设置学习率与监控训练。
大批量训练
相亲会办得越大,老红娘越高兴。为什么?因为人越多,陪跑者就越多,判断真配对的难度越大,一旦认对了,说明眼力是真的好。在对比学习里,负样本不会从天而降,它们就藏在同一个 batch 里——别的图文对,对当前样本来说就是天然负样本。batch 越大,负样本越丰富,模型学到的边界就越锐利。
具体算一笔账:假设一个 batch 里有 N 个图文对。对第 i 张图片来说,负样本包括另外 \(N-1\) 个文本;对第 i 段文本来说,负样本包括另外 \(N-1\) 张图片。因此在双向损失下,每个样本面对的负样本数量是:
大规模训练当然有代价:显存放不下怎么办?老红娘的办法是请来一整支“分店团队”——用分布式训练把大批次拆到多台机器上并行计算,梯度汇总后再统一更新。正因如此,ALIGN 才能把批次规模推到远超常规的量级,让每一场“相亲会”都热闹非凡,也让训练过程更加稳定高效。
- 图找文的负样本 \(N-1\)第 i 张图要和 N 个文本比较,除了自己的搭档,其余全是负样本。
- 文找图的负样本 \(N-1\)反过来,第 i 段文本也要排除自己搭档之外的所有图片。
- 双向合计 \(2N-2\)两个方向加起来,一个样本实际参与区分的负样本总量。
跨模态检索
婚介所的名声传开后,新客户络绎不绝。神奇的是,老红娘不需要提前认识任何新嘉宾——图顾问看一眼照片就能写坐标卡,文顾问读一段介绍也能写坐标卡,两张卡往坐标系里一对,缘分立刻见分晓。这就是所谓的“零样本”能力:模型在预训练时从没见过这些具体类别,却能在共享空间里完成图文匹配。
检索系统的落地方式也很优雅:预训练结束后,把整个图库离线编码成一张“坐标索引表”,用户来查询时只需编码一次查询文本,然后在索引表里找最近邻即可。反过来,拿一张图搜文字也一样。评价这种排名质量最常用的指标是 R@K(Recall at K):
ALIGN 靠着这套“即插即用”的检索能力,在 Flickr30K、MS-COCO 等标准基准上刷新了当时的纪录,对多语言文本也有不错的适应力。和 CLIP 相比,二者路线不同、数据策略各异,在评测上各有千秋——但老红娘证明了:不用精洗数据,也能办成大事。
- 查询集合 \(\mathcal{Q}\)所有测试查询的集合,可以是图片查询,也可以是文本查询。
- 命中判断 \(\mathbf{1}\{\text{rank}(q)\le K\}\)如果真实匹配项的排名在前 K 名,这个指示函数取 1,否则取 0。
- 对所有查询求和把每个查询的命中情况加起来,得到命中的查询总数。
- 除以查询总数算出命中所占比例,R@1 越高说明第一名就找对的概率越大,R@10 则衡量“前十个里有正确答案”的比例。
ALIGN局限
故事讲到这里,也该说说老红娘的烦恼。档案库虽然海量,却天然有偏:互联网上热门的概念(猫、汽车、明星)资料堆积如山,冷门的、小众的、细分领域的内容却少得可怜。而且草稿档案大多是英文,其他语言的嘉宾明显被冷落。更让老红娘头疼的是,相亲会上的“粗配”看得准,真要计较细节——“左边第二只鸟是什么颜色”“背景里有几个人”——就抓瞎了,因为十亿份草稿档案里就没几个人会写这种细活。
用技术语言说,ALIGN 的训练数据分布与真实应用分布并不一致,这种分布偏移可以写成:
此外,ALIGN 虽然零样本很强,但要论在某个具体任务上的精雕细琢,通常仍比不过专门用有监督数据微调的模型。未来怎么补?方向很清晰:补充更均衡的数据、设计细粒度对齐目标、引入可控生成数据来填平分布鸿沟。老红娘的大档案例还有继续进化的空间。
- 训练分布 \(P_{\text{train}}\)模型从十亿网页噪声图文对中学到的统计规律,热门、英文内容占比过高。
- 测试分布 \(P_{\text{test}}\)真实应用场景中的图文分布,用户关心的问题往往更细、更多样。
- 不相等 \(\ne\)两个分布存在系统性差异,这就是零样本模型会产生偏见、在细粒度任务上掉链子的根源。
AI 应用场景
电商跨模态检索
阶段:跨模态检索 / 多模态预训练应用
解决的问题:传统电商靠人工给商品打标签做图文匹配,SKU 动辄千万级,人工标签稀疏且滞后,很多商品根本搜不到。ALIGN 类双塔模型把商品图和商品标题映射到同一空间,任意模态的输入都能直接检索另一模态,无需为每个类目单独训练模型。
具体案例:用户在线下看到一件衣服,拍张照片上传电商 App,系统用图像塔编码照片,直接在文本塔预先生成的“商品标题索引库”里检索最匹配的文案,返回同款商品链接。整个过程不需要用户输入任何关键词,也无需商品预先具备完整标签体系。
视频帧-字幕弱对齐
阶段:多模态表征学习 / 弱监督数据构造
解决的问题:视频有大量无标注的帧和字幕,人工逐帧对齐成本极高。借鉴 ALIGN 的“噪声数据策略”,把视频片段内的帧与同时间窗口的字幕组成弱标注图文对,容忍部分错位噪声,用对比学习训练视频-文本检索模型。
具体案例:在短视频平台,将 5 秒视频片段的关键帧与同窗口字幕组成“噪声对”,训练双塔模型实现“台词搜镜头”——输入一句台词,直接定位到对应视频画面,用于版权检测、精彩片段剪辑等场景。
多语言图文搜索
阶段:跨语言迁移 / 多模态检索
解决的问题:小语种用户的图片搜索体验普遍很差,因为传统方法依赖该语言的图文标注数据,而小语种数据极其稀缺。ALIGN 从网络采集的多语言 alt-text 让文本塔天然具备多语言能力,翻译文本与图片可以在同一空间检索。
具体案例:旅游平台用 ALIGN 类模型构建多语言图库检索:日本用户用日语“富士山红叶”搜索,系统将日语文本编码后在图片索引中查找,返回与中文、英语用户相同的高质量景区图片,无需为每种语言单独维护一套模型。
Python 演示
import torchimport torch.nn as nnimport torch.nn.functional as F class ImageEncoder(nn.Module): def __init__(self, emb_dim=256): super().__init__() self.net = nn.Sequential( nn.Conv2d(3, 32, 3, stride=2, padding=1), nn.ReLU(), nn.Conv2d(32, 64, 3, stride=2, padding=1), nn.ReLU(), nn.AdaptiveAvgPool2d(1) ) self.proj = nn.Linear(64, emb_dim) def forward(self, x): h = self.net(x).flatten(1) return F.normalize(self.proj(h), dim=-1) class TextEncoder(nn.Module): def __init__(self, vocab_size=5000, emb_dim=256): super().__init__() self.embed = nn.Embedding(vocab_size, emb_dim) self.proj = nn.Linear(emb_dim, emb_dim) def forward(self, x): h = self.embed(x).mean(dim=1) return F.normalize(self.proj(h), dim=-1) class AlignModel(nn.Module): def __init__(self, image_encoder, text_encoder, temperature=0.07): super().__init__() self.image_encoder = image_encoder self.text_encoder = text_encoder self.temperature = temperature def forward(self, images, texts): img_emb = self.image_encoder(images) txt_emb = self.text_encoder(texts) logits = img_emb @ txt_emb.t() / self.temperature labels = torch.arange(logits.shape[0]).to(logits.device) loss_i2t = F.cross_entropy(logits, labels) loss_t2i = F.cross_entropy(logits.t(), labels) return (loss_i2t + loss_t2i) / 2 def main(): torch.manual_seed(42) model = AlignModel(ImageEncoder(), TextEncoder()) opt = torch.optim.Adam(model.parameters(), lr=1e-3) for epoch in range(2): imgs = torch.randn(8, 3, 32, 32) texts = torch.randint(0, 5000, (8, 32)) loss = model(imgs, texts) opt.zero_grad() loss.backward() opt.step() print('epoch', epoch, 'loss', round(loss.item(), 4)) if __name__ == '__main__': main()
self.net = nn.Sequential(...)图像塔用两层卷积提取视觉特征,池化后得到图片向量。self.embed = nn.Embedding(...)文本塔先把词 ID 映射成词向量,再平均成句子向量。F.normalize(self.proj(h), dim=-1)对输出向量做 L2 归一化,让点积直接等价于余弦相似度。img_emb @ txt_emb.t() / self.temperature一次矩阵乘法算出 batch 内所有图文对的相似度矩阵。labels = torch.arange(logits.shape[0])对角线上的位置就是真配对,作为分类任务的标准答案。F.cross_entropy(logits, labels)对每张图片做 N 选 1,正确答案得分最高则损失最小。loss_t2i = F.cross_entropy(logits.t(), labels)反向再做一次文本找图片,构成对称双向损失。
常见误区
误区ALIGN 用的全是网上随便扒的噪声数据,所以完全不用做任何清洗,数据越脏反而效果越好。
正解ALIGN 并非不做任何过滤。它只是用轻量自动化规则(提取 alt-text、剔除过短或乱码文本、近似去重)替代昂贵的人工语义清洗。它容忍的是“语义层面的弱匹配”,而不是“垃圾文本”。如果真把完全无意义的数据塞进去,对比学习也救不回来。
为何常见:论文标题和摘要反复强调“noisy text supervision“,容易让初学者把”容忍噪声“误解成”拥抱垃圾”。
误区对比学习的目标是把匹配图文对的相似度训练成 1,不匹配的训成 0,像分类任务那样硬性输出。
正解对比损失的真正目标是“排序”,即让正样本的相似度在 batch 内排在所有负样本前面,而不是逼近某个固定值。温度系数、负样本数量都会影响相似度的实际数值分布,但损失函数只关心相对排名,不关心绝对分数。
为何常见:初学者习惯用分类的 one-hot 思维理解一切监督信号,忽略了对比学习是“在候选集中分辨”这一本质。
误区温度系数越大分数越平,越小分数越尖,既然我们要区分正负样本,那温度越小区分越狠,效果一定越好。
正解温度过小时,相似度分数被放大到极大,softmax 输出接近 one-hot,梯度会迅速衰减甚至饱和,模型难以从困难负样本中继续学习;温度过大则所有分数趋于平均,模型又学不动。合适的温度是一个需要调参的平衡点,极端取值都会让训练崩溃。
为何常见:只看温度对分布形态的影响,忽略了温度对梯度回传的连锁效应。
误区既然是“图文对齐”,那应该把图片和文本拼在一起输入同一个大网络,让它们在里面互相融合。
正解ALIGN 的双塔是两个完全独立的编码器,在中间层没有任何交互,唯一交汇点是最后的嵌入空间,通过点积算相似度。这种解耦设计让两个塔可以各自独立预训练、独立部署,检索时还能把整个图库离线索引,极大地降低在线计算成本。
为何常见:“对齐”这个词暗示融合,让人误以为必须在网络内部做跨模态交互。
误区ALIGN 有十亿数据,CLIP 只有四亿,所以 ALIGN 全面碾压 CLIP,数据量决定一切。
正解数据量只是因素之一。两者的数据哲学根本不同——CLIP 强调质量优先,ALIGN 强调规模优先;同时 ALIGN 在训练时需要更大的批次、更稳的对比损失来抵抗噪声。在不少任务上两者互有胜负,ALIGN 并非全面领先,模型结构、数据组成、训练细节都会影响最终效果。
为何常见:简单归因数据量最容易,但忽略了两种路线在数据清洗成本、训练策略上的系统性差异。
面试题
Q1. ALIGN 在预训练阶段主要使用什么类型的数据?
- A.人工标注的干净图文对
- B.网页挖掘的噪声图文对← 正确答案
- C.专业图库的精选图文对
- D.纯文本语料自动扩充
答案:B。ALIGN 的核心创新正是直接使用从网页提取的十亿级噪声图文对(alt-text 弱标注),而不是人工清洗数据。选项 A、C 是 CLIP 等方法的路线,D 与图文对齐无关。
Q2. ALIGN 双塔架构中,两个编码器分别负责什么?
- A.图像塔编码文本,文本塔编码图像
- B.图像塔编码图像,文本塔编码文本← 正确答案
- C.两塔同时编码图像和文本
- D.仅共享一个编码器处理两类输入
答案:B。ALIGN 的图像塔(如 EfficientNet)只编码图像,文本塔(如 BERT)只编码文本,两个塔在中间层互不交互,只在共享嵌入空间通过相似度对齐。B 正确,A 恰好说反,C、D 违背双塔解耦原则。
Q3. 在 ALIGN 的对比学习中,batch 内的负样本来自哪里?
- A.来自外部额外补充数据集
- B.与当前样本不对应的其他图文对← 正确答案
- C.由数据增强自动生成的新样本
- D.由生成对抗网络合成的数据
答案:B。对比学习的负样本天然来自 batch 内部:对第 i 张图片而言,batch 里其他 N-1 个文本都是负样本。这样不需要额外存储或生成负样本,batch 越大负样本越丰富。其他选项描述的都不是 ALIGN 的负样本来源。
Q4. ALIGN 中图像向量与文本向量的匹配程度通常用什么度量?
- A.欧氏空间中的欧氏距离
- B.归一化向量的余弦相似度← 正确答案
- C.坐标差的绝对值和距离
- D.字符串的最小编辑距离
答案:B。ALIGN 对图像和文本向量做 L2 归一化后,用点积等价计算余弦相似度,值越接近 1 越匹配。欧氏距离、曼哈顿距离关注绝对坐标差,编辑距离针对文本字符串,都不是双塔模型的标准做法。
Q5. 对比损失中的温度系数 τ 主要起什么作用?
- A.控制整个模型参数量
- B.调节相似度得分尖锐程度← 正确答案
- C.控制模型的学习速率
- D.控制训练批量的大小
答案:B。温度系数先对相似度做缩放再进 softmax:τ 越小,分数分布越尖锐,模型对正负样本的区分越“狠”,但梯度过大易不稳定;τ 越大,分布越平缓,学习越温和。它不是控制参数量、学习率或 batch size 的超参数。
Q6. ALIGN 在面对大量噪声图文对时,靠什么机制抵抗错误配对的影响?
- A.过滤掉所有可疑的样本对
- B.大规模数据与相对排序目标← 正确答案
- C.引入更强的正则化手段
- D.人工逐条复核全部数据
答案:B。ALIGN 不依赖人工复核,而是靠“十亿级规模 + 对比学习的相对排序目标”:即使个别配对有噪声,统计规律仍会让正确语义占据主导,排序目标只要求正样本排在前面,对个别噪声不敏感。A、D 是它想避免的高成本路线,C 无法从根本上解释噪声耐受。
Q7. ALIGN 检索任务中“零样本”的含义是什么?
- A.模型训练时完全不用图像
- B.预训练后直接检索新类别← 正确答案
- C.实验过程中完全不用文本
- D.所有样本的标签全部为零
答案:B。零样本指模型在预训练阶段没见过目标任务中的具体类别,也不做任务微调,直接在共享嵌入空间检索。它仍然使用图像和文本,只是没有针对新类别进行梯度更新。A、C、D 理解都有偏差。
Q8. ALIGN 的双向对比损失包含哪两个方向?(多选)
- A.从图像去匹配文本← 正确答案
- B.从文本去匹配图像← 正确答案
- C.从图像去匹配图像
- D.从文本去匹配文本
答案:AB。ALIGN 的总损失是 \(\mathcal{L}_{i\to t}\)(图像到文本)加 \(\mathcal{L}_{t\to i}\)(文本到图像)的平均。跨模态对齐只发生在“图↔文”之间,同模态的图-图、文-文不参与对比损失。
Q9. 下列哪些是 ALIGN 实现图文对齐的关键要素?(多选)
- A.图像塔与文本塔相互独立← 正确答案
- B.十亿级噪声数据进行训练← 正确答案
- C.依赖小规模人工精选数据
- D.只使用单个共享编码器
答案:AB。ALIGN 的核心是三件套:双塔解耦架构(A)、十亿级噪声数据(B)、双向对比损失。C 是 CLIP 的路线,D 与双塔架构直接矛盾。多选时抓住“双塔 + 大数据”即可。
Q10. 关于 ALIGN 局限性的说法,正确的有哪些?(多选)
- A.网络数据偏漏致检索有偏向← 正确答案
- B.细粒度语义区分能力有限← 正确答案
- C.零样本一定超过有监督微调
- D.必须依赖生成式扩散模型
答案:AB。ALIGN 的 web 训练数据天然偏向热门概念与英文内容,导致检索偏见(A);对比学习擅长整体语义,对颜色、数量、空间关系等细粒度区分不足(B)。零样本通常在通用任务上强,但在特定任务上往往弱于有监督微调(C 错);扩散模型并非 ALIGN 的必要组件(D 错)。