跳到主要内容
赞助推荐 Claude Team 合租,少折腾账号
AI 大模型 #AI 模型横评

多模态对齐的难处,从来不是把数据拼起来

20 分钟阅读阅读(101)
#AI 模型横评#MIT《How to AI (Almost) Anything》:多模态 AI 逐讲精读
赞助推荐 团队协作里的 AI 办公工作台

1976 年,一个叫 David McGurk 的心理学家做过一个实验。他给受试者放两段视频,画面里两个人在说话,音轨完全一样,但其中一个人的嘴型是发”ba”,另一个是发”fa”。受试者听到的”声音”竟然跟着嘴型变了:看到”ba”嘴型就听成 ba,看到”fa”嘴型就听成 fa。声音根本没动。

这件事在当年是一记闷棍。在它之前,主流心理学认为,人听别人说话靠的就是耳朵,手势、口型、表情都是附庸,锦上添花。McGurk 这个实验直接证明:你的”听”是被”看”重写过的。耳朵和眼睛不是各干各的,它们在脑子里强制对齐成同一件事。

赞助推荐 一人公司 · 创业装备库
赞助推荐 一人公司 · 创业装备库

这是 MIT《How to AI (Almost) Anything》的第 6 讲(原视频),主题是 多模态对齐。Paul Liang 用 McGurk 这个故事开场不是为了讲历史,而是为了交底:今天我们说的”多模态 AI”,真正难的不是把两路传感器接进同一个模型,而是搞清楚两路信号到底在哪儿对得上、对不上的地方该怎么办。这一讲讲的就是这第一道槛,它的英文叫 alignment,中文叫对齐。

这一讲的总判断:多模态难在”异质”,不难在”多”

Paul 这节课最值钱的一句话,我提炼成这样:多个模态放在一起难,不是因为模态”多”,是因为它们彼此”异质”。

异质(heterogeneity)是这节课的核心词。两路摄像头拍同一个物体,信号性质相似,这叫同质;一段文字配一段心电图,一个是离散符号、一个是连续波形,采样率、分布、语义粒度全都不一样,这叫异质。你以为难是因为”多”,其实”多”不是问题。再加一路同质数据,模型几乎不掉链子;真正的麻烦在于,两路异质的信号要被同一套网络消化,中间没有公约数。

这个判断我觉得是整门多模态系列的题眼,后面讲融合、讲跨模态迁移,讲的都是在不同假设下处理这同一个异质性。所以这一讲,我会把篇幅压在”异质从哪儿来、对齐怎么解”这条主线上,而不是平均分给六大挑战。

从行为学到基础模型:多模态走过的四个时代

Paul 先用几分钟交代了多模态研究的历史脉络,这个脉络我觉得值得记下来,因为它解释了为什么”对齐”会成为今天的第一道槛。

最早是行为学时代(1980 年代起)。心理学家发现人是多通道感知的,工程师跟着问:能不能让机器也这样听人说话?于是有了第一个经典任务,叫视听语音识别(audio-visual speech recognition),让机器同时看口型、听声音,识别说话内容。当时的目标很朴素:复刻人类的感知方式。

接着是计算时代交互时代(2000 年前后)。互联网把多媒体数据喂出来了,人们开始做视频检索、情感识别、多人对话分析,模型不再只盯着两路信号的对应,开始在意”人和系统之间”也要多模态。

2010 年以后是深度学习时代。卷积网络一下让图像变成可以喂进模型的稠密向量,跟语言并列处理,图像描述(image captioning)成了那个时代的标志任务:给一张图,生成一句话。再往后,描述变成问答(VQA)、变成多轮对话、变成视频检索、变成视觉导航,模态对的样本量从万级跳到亿级。

最近几年是基础模型时代。GPT-4、Gemini、Claude 这一波多模态大模型,把图像、视频、音频塞进同一个 transformer 一起预训练,所谓”对齐”开始隐藏在自注意力里,变成隐式的。

把这四个时代摆在一起,你会发现一条暗线:模态对齐从”工程上能凑就行”,一步步逼成”理论上能不能成立”。早年凑得过去是因为任务窄、模态少;今天放进 LLM 里要泛化到所有任务,凑不过去的地方就会以幻觉、失配、性能下降的形式暴露出来。

模态本身是个谱:从原始信号到抽象语义

Paul 给”模态”下定义时,强调一点:模态不是一刀切的类别,是一条从原始到抽象的谱

最原始的一端,是离传感器最近的信号:摄像头给的 RGB 像素、麦克风给的波形、雷达给的点云。再往上,是从原始信号提取出的离散结构:语音里的音素、图像里的物体框、文本里的词。再往上是更抽象的语义:这张图里这个人在”微笑”,这段语音的情绪是”沮丧”,这段传感器数据指示”摔倒”。同一个东西,被处理得越深,信息越抽象,也越接近文字描述。

这个谱解释了”异质性”的来源。两路原始信号摆在一起,异质程度最大,像素和音频波形之间几乎找不到结构上的共同点。但把两路信号都处理到”语义”那一端,异质性就大幅塌缩了。一张图里检测出”一个男人在哭”,一段音频里识别出”哽咽声”,这两个语义层的表征反而能直接对齐,因为它们都是抽象的概念。

所以工程上常用的招数,说穿了就是用抽象去消异质:把异质的原始信号各自处理到足够抽象的语义层,再去对齐。CLIP 就是这条路的极致,图像和文本各自走一个编码器,各自压成几百维向量,再在那个抽象空间里做对齐。

模态之间的三种关系:连接与交互

光说”异质”,还不够。Paul 进一步把多模态问题拆出两层结构:连接(connections)和交互(interactions)。

连接,讲的是两路模态之间有多少信息是共享的。完全独立是一种极端:你给我一段股价,再给我一张猫的图,这两路没有任何共同信息,放一起也对齐不出什么。完全重合是另一种极端:同一段话用中英两种语言写下来,信息几乎一样。真实世界大多数模态对处在中间。一张沙发的照片配一句”米色三人沙发”,照片里有”沙发”这个共同点,但照片还顺带告诉你茶几、桌上的杯子、地毯的花色,而文字里没有;反过来,文字里也可能藏着照片看不出的信息,比如品牌、材质。

交互,讲的是两路模态合到一起之后会产生什么新东西。Paul 把交互分了三类:

  • 冗余(redundancy):两边说同一件事。我说”这电影真好看”,同时面带笑容,两路信号互相加强,系统拿任何一路单独判断都能对。
  • 独特(uniqueness):只有一边带着关键信息。我说一句中性评价,但脸上是失望表情,语音那路没用,只有视觉信号能告诉你真实态度。
  • 协同(synergy):两边各自看都不对,合到一起才出新意。我说”哇,这真不错”,但语气里带着讽刺、嘴角带着冷笑,任何一路单独看都会判错,合到一起才看出”反讽”这个新信息。

这三类交互不是给学术分类用的,它们对应了三种工程动作。冗余告诉你模态可以互为冗余备份;独特告诉你模型必须能识别”这次哪一路说了算”;协同告诉你模型必须能学到”单模态里根本不存在”的概念,这是最难的一档。

六大挑战:对齐和表征是地基

讲完异质、连接、交互这三个基本属性,Paul 给整个多模态领域开了张挑战清单,一共六项:表征、对齐、推理、生成、迁移、量化。后面的五讲,基本就是按这条清单一项一项展开。这一讲他重点讲了前两项,因为它们是地基。

表征(representation)讲的是,两路异质的元素,怎么压成机器能算的向量。Paul 把表征方式分三类,这个分类我觉得相当清爽:

  • 融合(fusion):两个输入压成一个共同向量。两路信息合二为一,适合做分类、预测这类下游任务。
  • 协调(coordination):两边各自有自己的向量,但两个向量在同一个空间里被某种相似度函数对齐。CLIP 用的就是这一类,图像向量和文本向量分别学,但在同一个空间里靠余弦相似度拉到一起。这一类的好处是适合检索,给一张图,在文本空间里找最近邻,就能拿到对应的描述。
  • 分裂(fission):两个输入反过来生出三个或更多向量。一个向量装两边共有的信息,一个装只属于模态 A 的独特信息,一个装只属于模态 B 的。这种做法的好处是可解释,你能看到每一部分信息到底来自哪儿,但实现上比前两类难。

对齐(alignment)是这一讲的主题。它讲的是,两路模态里的元素到元素,怎么找到对应关系。我说”hockey stick”,图像里的曲棍球杆该被点亮;我说”the man”,图像里那个男人该被框住。这件事在两路数据都已经被切成离散元素时(词 vs. 物体框)是最简单的,叫离散对齐。当数据是连续信号时(比如一段连续的医疗传感器流要对齐一段医生写的报告),你得先把连续信号切成有语义的段,再做对齐,这一步叫连续对齐,难得多。还有第三种,叫隐式对齐,对齐本身不是目的,只是为了让某一边的表征变得更好。今天的多模态 transformer 几乎全靠这一类,自注意力机制顺手把对齐做了,你看不见,但它在底下一直在跑。

剩下四项 Paul 这节课只点了名:推理讲怎么把对齐好的多路信息走多步逻辑链;生成讲从一个模态生成另一个模态,比如文生图、文生视频;迁移讲数据稀缺的模态怎么借数据丰富的模态来学;量化讲怎么定量地度量异质性、连接、交互到底有多大,目前还是开放问题。

对齐的主力武器:对比学习和 CLIP

Paul 用这一讲的最后 15 分钟,把对齐里最有代表性的方法过了一遍:对比学习(contrastive learning)。今天你能用的几乎所有图文对齐模型,底层算法都从这里出来。

思路很朴素。你手头有海量的图文对,Instagram、Flickr、Wikipedia 上图配字的样本,几亿条。每一对图和它对应的文字,叫正样本;同一张图和别的随机文字,叫负样本。训练目标只有一句话:让正样本对的图向量和文字向量在嵌入空间里尽量靠近,让负样本对的尽量远离。靠近和远离用余弦相似度衡量,看两个向量是不是指向差不多的方向。

这个思路 2014 年就有人做过。当年训出来的模型已经能干一件挺神奇的事:你把”蓝色汽车”这张图的嵌入(embedding,向量)拿出来,减掉”blue”这个词的嵌入,再加上”red”这个词的嵌入,拿这个结果去图像库里找最近邻,真能找出”红色汽车”的图。那是 2014 年,分辨率小、词表也粗,但这个操作演示了一件事:对齐学到的嵌入空间是有结构、可运算的。

到了 2021 年,OpenAI 把这个思路用 4 亿对图文样本和 transformer 编码器堆到极致,这就是 CLIP。它的最大好处叫零样本分类(zero-shot classification):以前的图像分类器只能识别训练时定死的那一千类,你想加一类就得重训。CLIP 不一样:你想分类什么,临时把候选类别写成自然语言,模型把图像编码、把每个类别名编码,谁的余弦相似度最高就是谁。任何类别都可以,不用重训。

这是对齐的高光时刻。但 Paul 在这里点了一个相当冷峻的观察,我觉得是这一讲最值得带走的一句话。

对比学习的代价:它会扔掉你以为它会保留的东西

对比学习能严格证明一件事:它学到的共同嵌入空间,本质上是两个模态之间的互信息(mutual information)的近似。它把两边共有的那部分信息抠出来,留下;两边独有的部分,全部丢掉。

这意味着什么?如果你关心的事情就在共享信息里,比如”图里这是不是一辆车”这种判断,文字和图像都能描述,对比学习好用得不得了。但如果你关心的事情藏在某一边的独有信息里,你越是猛搞对比学习,模型在这件事上的表现就越差,因为模型在系统性地扔掉这部分信息。

举个具体的:你想做沙发的颜色识别。文字里通常只说”沙发”,不说”米色三人位”,颜色信息只在图像那一路。如果你拿大量的”沙发”图文对去训对比学习,模型会越来越擅长把”沙发”这个共有概念压进嵌入,但会越来越不在意颜色。因为颜色是图像独有的,对损失函数没贡献。

Paul 给出的缓解办法不复杂:在跨模态对比之外,再分别做单模态对比,给图像做微扰再让它跟自己对齐,给文本做微扰再让它跟自己对齐。这样每个模态独有的那部分信息也会被保留下来。但他没回避一个事实:这是个未解的难题,任何”无脑 CLIP”的做法都隐含着代价。

我觉得这段是整节课信息密度最高的地方。它点破了今天行业里一个不太敢说出口的事:用大量图文对硬训出来的多模态模型,擅长的事情和你以为它擅长的事情,经常不是一码事

连续对齐:Paul 留了几个研究方向

最后 Paul 顺带提了一下连续对齐,那种数据切不成离散元素的情况,比如一段几小时的可穿戴设备数据要对齐一段医生写的几行注释。

招数有几类:一是借鉴计算机视觉里的变点检测(change point detection),自动把连续信号切成有语义的段,”这段是睡眠””这段是运动””这段是工作”,再分别去对齐文字;二是固定窗口采样后做聚类,把连续数据离散化成有限的”token”,再像处理词那样喂进 transformer,今天处理语音的 HuBERT、WAV2VEC 走的就是这条路。

Paul 没在这里深挖,他说连续对齐至今没有一个”漂亮”的统一解法,留给学生当研究方向。我觉得对工程师来说,这块更值得盯,你手里多半不是图文对,而是各种连续传感器流。

放到机器人上看:对齐就是工程现实

我做的是清洁机器人云服务,这一讲对我们这种”靠多传感器活着”的场景特别熟悉,熟悉到 Paul 讲的每个抽象概念,都能对应到我们工单系统里某一类问题。

离散对齐对应的是时空同步。一台清洁机器人身上,激光雷达、深度相机、IMU、里程计、碰撞传感器、电机电流,采样率从 10Hz 到 1000Hz 不等,各跑各的时钟。你要把它们对齐到同一个时刻、同一个机器人坐标系下,才能说”这一帧图像里的那扇玻璃门,对应激光雷达上这片缺失的点云”。没有这一步,任何上层算法都是空中楼阁。Paul 把这件事抽象成”找两路元素的对应关系”,在我们这儿就是硬件时间戳同步 + 外参标定 + 插值对齐,三件套缺一不可,每年都得校准一遍。

协同交互对应的是传感器失效降级。Paul 在第 1 讲举过那个例子:用文件夹挡住机器人摄像头,机器人切回靠力觉干活。这个在我们的现场叫多模态冗余。一台机器在商场里跑,迎面碰到一扇玻璃门,激光雷达直接看穿过去,深度相机把玻璃当作”无障碍”,只有碰撞传感器和电机堵转电流能在最后一刻拦住它。冗余交互在这里救了它一命。所以我们设计感知层时,从来不让任何单一模态拿”否决权”,玻璃门、镜面墙、自动扶梯、暗色地毯这几类典型坑,都是靠两到三路传感器的协同交互才稳住的。

Paul 那句”对比学习只学共有信息,扔掉独有信息”对我们是个警钟。我见过不止一次,有人想用大模型那一套思路解决机器人感知:海量”图像-雷达”对训一个共享嵌入,然后在下游任务里发现某些只在雷达里看得见的细节(比如低矮的金属底座、薄薄的台阶边缘)模型死活学不到。原因就是 Paul 说的:这些信息在图像里没有,做对比学习它会被当噪声扔掉。机器人现场恰恰是大量”独有信息”驱动的,共有信息只够你做粗判断。所以我们做多模态融合时,会刻意保留单模态独立的预测头,不让对齐”吃掉”独有信号。

连续对齐对应的是日志诊断。线上一台机器人出了一单”卡在某个点位 5 分钟”的工单,我们的工程师要去对齐多路日志:RCC 业务日志、Console 系统日志、激光帧、视频流、CAN 总线。这就是 Paul 说的”连续信号怎么切成有语义的段”。我们土办法是按事件打 anchor,然后回溯前后 30 秒。这件事如果能上一套自动变点检测,把连续日志自动切成”建图””路径规划””避障””复位”等语义段,工单排查时间能砍掉一半。

所以 Paul 这节课对机器人工程师来说,意义在于把日常工程问题搬到了一个有名字、有理论、有论文支撑的框架里。知道一个工程困难叫”模态鸿沟”(modality gap)、属于”异质性”范畴、缓解方案是协调或分裂表征,你下一次面对类似问题时,就知道该去翻哪类文献,而不是再发明一遍轮子。

最后

Paul 在课程末尾说,这一讲只是把对齐的轮廓画出来,下周讲融合,再下周讲跨模态迁移。三讲连起来,就是多模态 AI 这门手艺的核心。

我会带走的就一件事:多模态难在异质,不在多。模态本身是个谱,关系有连接和交互,对齐是把异质塌缩到共同空间的第一道工程动作,而每一种塌缩都有代价,CLIP 也好、transformer 隐式对齐也好,都在系统性地舍弃一部分信息。你只有想清楚自己手头任务要保的是共有信息还是独有信息,才能选对路。

这一讲讲到这里。下一讲是融合,讲的是对齐之后,两路信息怎么真正”合”成一路。

本系列

MIT《How to AI (Almost) Anything》共 12 讲,这是我的逐讲解读:

  1. 这门 MIT 课不教模型,教你怎么”想” AI
  2. 怎么做 AI 研究:读论文、找想法、快速验证
  3. 数据、结构与信息
  4. 实用 AI 工具
  5. 常见模型架构
  6. 多模态对齐 (本篇)
  7. 多模态融合
  8. 跨模态迁移
  9. 大型基础模型
  10. 大型多模态模型
  11. 强化学习与交互
  12. 人机交互
赞助推荐 一键部署 AI 大模型
赞助推荐 一键部署 AI 大模型
赞(0)
未经允许不得转载:80aj » 多模态对齐的难处,从来不是把数据拼起来
赞助推荐 低成本上手 Claude Code 的中转选择
赞助推荐 低成本上手 Claude Code 的中转选择
赞助推荐 一键部署 AI 大模型
赞助推荐 一键部署 AI 大模型