图和字要先能比大小,才谈得上理解
阅读方式:微信读书网页版,从第 1 章翻到第 7 章末,共 310 屏、6 分 30 秒。
结构:两部分七章 —— 基础理论与技术解析(对齐、融合、预训练、微调)→ 高级应用与实践(视觉语言模型、跨模态推理与生成)。
讲多模态的文章,大多在比谁家模型更大、谁家榜单更高。这本书反过来,花了整整一章讲一件事:两套完全不同的东西,怎么才能放在一起比较。
这个问题听起来很抽象,但它的具体形态特别朴素:一张图和一句话,凭什么说它们"配"?
图是一堆像素的数值,话是一串离散的符号。它们连单位都不一样,谈不上相似度,更谈不上"理解"。 这本书从头到尾啃的就是这一层——先把两种东西压到同一个空间里,让它们能互相做减法。
一、先把"多模态"这三个字拆开
第 1 章没有急着上模型,而是先定义对象:多模态数据的定义、特点、应用场景、技术挑战,四个小节挨着讲。
这个顺序值得说一句。很多书写多模态,一上来就是 CLIP 架构图,读者其实还没搞清"困难到底在哪"。这本书先给困难,再给方案,读起来顺得多。
它点出的三个困难,我认为是全书的地基:
一是异构。图是连续的、稠密的;文本是离散的、稀疏的。两边的数据分布根本不是一类东西。
二是粒度。一句话通常只讲一件事,一张图里往往同时有好几件事。要对齐,先得承认颗粒度不一样。
三是语义鸿沟。像素里没有"猫"这个字。这个词只存在于人的标注里。
第三点最要命。模型看到的永远只是数值,它并不知道那块数值叫猫。 所谓多模态理解,本质上是在做一次翻译:把数值翻译到一个词也能落脚的空间里去。
第 1 章后半段还讲了表征学习、迁移学习、模态对齐三件事。这三者是递进的:表征学习解决"怎么表示",迁移学习解决"怎么复用",模态对齐解决"怎么让两种表示可比"。顺序不能乱,乱了就会写出那种"什么都提一句"的综述。
二、对齐:全书真正的核心
第 3 章 3.2 节叫"跨模态对齐技术:注意力机制与嵌入对齐"。这一节我反复看了几遍,因为它是全书的分水岭。
书里有一句话,我认为是这本书最有价值的一句:
"这些损失函数通过最小化模态间的语义差异,保证嵌入向量在共享空间中保持紧密关系,从而提高多模态任务的性能。"
注意它说的是"语义差异",不是"数值差异"。配对的图和文,在空间里应该靠得近;不配对的,应该被推开。 这件事没法用像素和字符直接算,只能先各自编码、再在同一空间里比距离。
所以整个多模态的第一性原理可以写成一句话:先把两套坐标系统成一束,之后所有"理解"才有可能。
这一节还讲了实现手段:损失函数的优化,以及多头注意力在对齐中的应用。多头注意力的作用,书里在 3.1 节解释得很清楚——
缩放点积注意力"通过计算查询、键和值的点积,将其结果缩放后应用于 Softmax 函数生成权重分布,再利用这些权重对值进行加权求和,从而聚合相关信息"。多头注意力"引入多个独立的注意力头,每个头处理不同的特征子空间,最终将各头的结果通过线性变换和拼接操作进行融合,从而捕捉数据的多角度特征"。
翻成人话:单头注意力只能问一次"这个词该看哪儿",多头注意力可以同时问好几个不同角度的问题。 对多模态来说,这一点尤其重要——一句"他把杯子推开了",可能需要同时关注手、杯子、位移方向三样东西,一个头盯一样,刚好。
三、融合:两个层级,两种代价
第 3 章 3.3 节把融合分成两类:数据级融合和特征级融合。
这个区分很实用,因为它对应两种工程选择:
数据级——先把一种模态转成另一种形态(比如把图先转成描述),再当作单模态任务处理。实现简单,但转换那一步就把信息压扁了一次。
特征级——两路各自编码,在特征层拼接或做注意力交互。信息保留得多,但训练更难,也更吃算力。
书里没有直说哪种更好,只说各自的场景。我倒觉得这里可以补一句判断:如果你的任务只需要"图里有没有这个东西",数据级够了;如果任务问的是"这两样东西什么关系",就得上特征级。 因为关系信息在"转成文字"那一步基本丢光了。
第 3 章 3.4 节还讲了模态解耦的多任务学习和参数共享框架。解耦的意思是:不要让所有任务挤在同一套参数上互相打架,该分的分、该共的共。这已经是很工程化的经验了,不像教材,倒像踩过坑的人写的。
四、预训练的两件事:配不配,补得上
第 4 章讲预训练,两条主线:对比学习和重建任务。
书里对重建任务的定义很清楚:
"重建任务的目标是通过对输入数据的部分掩盖或降维来训练模型,让其能够从不完整的数据中恢复原始信息。该方法的核心思想是利用数据自身的结构信息生成监督信号,从而无须人工标注。"
接着它给了跨模态的用法:用一种模态的信息,去预测或生成另一种模态的表示。
这句话我读了两遍才觉得妙。遮住图的一半让模型补,它学到的是"图长什么样";遮住文让模型补,它学到的是"话怎么说";而遮住文让模型看图补,它学到的就是"这两者原来是一回事"。
所以对比学习和重建,其实回答的是两个不同的问题:对比学习问"这两样配不配",重建学习问"缺了能不能补上"。 一个练辨别力,一个练还原力。CLIP 走的是第一条,MAE 那一路走的是第二条,这本书把两条并列讲,比只讲一条清楚。
五、微调:为什么只加一小块就够
第 5 章讲微调与优化,重头是 LoRA。
书里对它的评价给得很直接:
"LoRA 通过引入低秩矩阵分解,在极少量参数更新的条件下实现了较高的性能表现,明显优于 PrefixEmbed、PrefixLayer 等方法。在 WikiSQL 任务中,LoRA 在参数量较小的情况下显著提升了模型准确率;而在 MultiNLI 任务中,LoRA 不仅在验证性能上接近完全微调方法,还在参数利用效率方面有显著优势。"
"低秩"这两个字是理解 LoRA 的钥匙。它假设"为了适应新任务,权重的改动本身是低秩的"——也就是说,改动没那么复杂,用两个瘦长的矩阵乘一下就能近似出来。
书里给的代码很直白:lora_A 是 输入维度 × 秩,lora_B 是 秩 × 输出维度,前向就是把输入过一遍 A 再乘 B,加回原权重上。秩普遍取 8、16 这种小数字,参数量能降好几个数量级。
这里有个容易被忽略的细节:省的不只是显存,还有"任务之间互不干扰"。 原权重冻住不动,每个任务挂自己的一组 A/B,切换任务就是换插件。这也是为什么 LoRA 在工程上比"全量微调"更受欢迎——它把"改模型"变成了"换配件"。
第 5 章后半还讲了 PEFT、RLHF(含奖励建模)、多任务与领域适配。RLHF 那两节(5.3.1 奖励建模、5.3.2 在多模态任务中的实现)写得偏流程,没有太多新东西,属于补齐框架的部分。
六、能落地的三块:CLIP、SAM、视频理解
第 6 章是全书最"能照着做"的一章,讲视觉语言模型。
先说 SAM。书里写它的训练数据:SA-1B 数据集"包括超过十亿的高质量掩码与千万级图片数据"。这个量级是理解 SAM 的前提——它的强不是架构特别巧,是数据特别多。
它的用法也很特别:提示式分割。提示可以是点、框,也可以是文本。书里的原话是"通过轻量化掩码解码器,SAM 模型能够在多样化的输入提示下快速生成有效分割结果"。点一下就把那个东西抠出来,这个交互方式本身就是产品级的。
训练策略上,书里提到它用了多任务学习:边界检测、区域分割,配合对比损失与交叉熵损失一起优化。边界检测让边缘更准,区域分割让整体更完整,两个目标互相补。
再说视频。书里 7.3 节讲视频生成与理解,代码里能看到一个很典型的组合:CLIP 的 ViT 做逐帧编码,接一个 6 层的 Transformer 做时序建模。这个结构的潜台词是:视频理解 = 图像理解 + 时间轴。
但也正是这里暴露了成本问题:帧数一多,编码次数就线性增加。 一段十秒的视频,按每秒两帧算就是二十次图像编码,还得再做二十次时序注意力。多出来的这一维,代价是实打实的。
七、露馅的地方
这本书整体是教材体例,讲优点讲得多。但我读到三处,它自己其实把短板也写出来了,只是没明说。
第一处:切割准,不等于认识。 SAM 能在一张图上切出上百个区域,切得很准。但"这块是谁、为什么在这"它不管。分割是看见,识别是知道,两者中间还隔着一个分类器。把 SAM 当成"万能视觉理解"来用,最容易在这里翻车。
第二处:VQA 答到一半就没图了。视觉问答看起来是"看图回答问题",但一旦问题里出现"为什么",能靠图回答的部分就到头了。"他在推门"能看出来,"他为什么推门"看不出来。 剩下的全靠模型的世界知识,跟眼睛没关系。
第三处:对齐的精度是有上限的。 所有对齐方法都在做同一件事:让配对的拉近、不配对的推远。但"配对"这个标签本身是人标的,人认为配的一对,未必是模型该学的那一对。图文对里"一只狗在草地上跑"的图,配的文字可能完全没提草地。这种噪声,靠调损失函数是修不掉的。
八、这本书的短板
说完优点,也得说清楚它不适合谁。
一是教材味重。每章末尾都有"思考题",正文里大量"定义 / 特点 / 优点 / 应用"的四段式。这种体例适合当课程教材,不适合想快速拿到结论的人。想读"洞见"的,会觉得水;想系统过一遍概念的,正合适。
二是代码占比高。第 4、5、6 章大量贴 PyTorch 代码,动辄半页。这些代码是能跑的,但它们占掉了本该给"为什么这么设计"的篇幅。我的做法是跳过代码看标题和结论段,效率反而高。
三是第 2 章可以快翻。那一章讲 CNN、RNN、MLP、梯度下降、反向传播——都是十年前的基础课内容。如果有深度学习底子,这一章半小时翻完,不影响后面任何一章。
九、一句话收尾
多模态的门槛不在"能看图",而在"图和字能不能放进同一个空间里比大小"。
这一层没打通,后面所有的融合、生成、推理,都是在错的坐标上做加法。
如果只记一件事,我建议记这个顺序:先对齐,再融合,最后才谈生成。 绝大多数多模态项目的失败,不是模型不够大,是这三步跳了中间那一步。
阅读记录:微信读书网页版逐页翻阅,310 屏 / 390 秒 / 7 章,2026-11-03。
说明:本书截图前十余屏曾混入上一本书的画面(本地抓取进程并发所致),正文引用均取自第 60 屏之后已核对书名的页面。
发表评论: