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 讲,这是我的逐讲解读:









AI周刊:大模型、智能体与产业动态追踪
程序员数学扫盲课
冲浪推荐:AI工具与技术精选导航