你觉得学习多模态算法需要个什么样的基础和流程?
多模态这块的知识地图比较大,我按"先要什么基础、再按什么顺序走、容易踩什么坑"来说。 一、基础分三层,不是都要先学完才动手 第一层是数学和深度学习通用基础。线性代数里最重要的是矩阵乘法、SVD、内积的几何意义,因为多模态的核心动作就是"把两个模态映射到同一个向量空间里,然后用余弦相似度比距离";概率统计要懂信息论那套(交叉熵、KL、互信息),对比学习的 loss 全是这一支;微积分不用多,链式法则和梯度流够用。 至于深度学习本体,必点的技能是这几样:Transformer 的注意力机制要能自己手推一遍(QK 点积、softmax、为什么除根号 d),CNN 的局部窗口和权重共享要清楚,然后是训练工程——学习率 warmup、混合精度、梯度累积、LoRA 这类参数高效微调。这些不是多模态特有的,但缺了后面看论文全是黑话。 第二层是单模态先各懂一边。视觉侧最关键的是 ViT:图像切成 patch、线性投影成 token、加位置编码,然后就变成一条序列和文本一样喂进 Transformer。这就是为什么今天多模态能做得这么统一——视觉和语言在架构层面早就同构了。再往下知道 DETR 那套 set prediction、SAM 的 promptable segmentation、以及标注格式(框、mask、点)大致长什么样就够了,不用去做检测调参。 语言侧要懂 LLM 的三段式:预训练、指令微调、偏好对齐,以及 tokenizer 和 causal attention 的因果掩码。多模态的坑有一大半不在多模态,而在于你两边都不熟——比如视觉塔输出和 LLM 词表的维度怎么接、位置编码怎么处理、图文交错序列的 attention mask 怎么写,这些都是单模态的基本功。 第三层是表示学习的概念,就三个词:模态对齐、模态 gap、共享嵌入空间。听起来抽象,落到代码里就是"两个编码器的输出维度不一样、分布尺度不一样,怎么用一个投影层拉齐,再用一个 loss 逼它们靠近"。 二、真正的主线,按这条线走就不会乱 多模态这几年的技术史,几乎就是一条"视觉信息怎么塞进 LLM 上下文"的演化: 对齐阶段看 CLIP。双塔结构,图像编码器和文本编码器各出 embedding,batch 内做对比学习,图文配对的为正样本、其余为负样本,用对称的 InfoNCE loss。它解决的是"零样本分类和检索",但本身不能生成。SigLIP 把 softmax 换成 sigmoid,去掉了全局归一化,batch 再大也稳,这是个很典型的工程胜利。 融合阶段看三条代表路线。Flamingo 是 gated cross-attention,在冻结的 LLM 层之间插交叉注意力,再加一个可学的门控,训练时门初始为 0 保证不破坏原 LLM 能力;BLIP-2 走的是 Q-Former,用一组可学的 query token 通过交叉注意力从视觉特征里抽取信息,把几百个 patch token 压缩成几十个——这是"token 压缩"这条线的起点;LLaVA 最简单粗暴,一个两层 MLP projector 直接把视觉特征投到词空间,效果却出奇好。想入门的话,LLaVA 这条线代码量最小、最容易复现。 分辨率这条线很多人忽略但工程上极重要。ViT 的 patch 数固定意味着图像越大单 patch 覆盖的语义越粗,所以有了 AnyRes、动态分辨率、图像切块(tiling)、以及各种 token merger。模型的图像 token 数直接决定推理成本和 KV cache 大小,同等效果下谁用的 token 少谁赢,这是个很实际的竞争维度。 统一理解与生成是现在的热点。离散 token 路线(Chameleon、Emu3)把图像也 tokenize 成码本索引,做到真正一个 Transformer、一个 next-token loss 通吃;Transfusion 走混合路线,理解用 next-token 预测、生成用 diffusion loss,一个模型两种损失;Janus-Pro 则是把理解和生成的视觉编码路径解耦。最新的方向是原生统一架构,比如商汤开源的 SenseNova U1 系列,宣称在单一架构上统一理解、推理和生成,BAGEL 这类统一基础模型也在同一条线上。学术圈这边,智源的多模态模型相关工作上过 Nature,做的是从多模态输入到多模态输出的统一框架。 再往外扩是视频和音频。视频无非是帧采样策略加时序建模,音频要处理采样率和频谱表示,但底层逻辑没变。 训练流程上,标准做法是三阶段:先只训 projector 做模态对齐(冻结两边),再解冻视觉塔和 LLM 做多任务联合训练,最后指令微调加偏好优化。你会发现这套东西和 LLM 的训练范式是同一个骨架。 三、给你的具体流程 第零步,先别找课程。先去扒几个多模态岗位的 JD,看真实需求里写的是什么——是偏训练、偏数据、还是偏推理部署。这一步定方向,比看十份学习路线都有用。这个思路我写的博客里展开过:joyehuang.me 上那篇《从实习面试到 Agent 工程》(2026-06-15 那篇)讲了为什么零基础直接把"教学"甩给 AI 容易越学越歪——它会顺着你的预设走,而你判断不了对错。正确顺序是让 AI 推荐几篇好博客,自己读原文建立判断力,卡住了再带着具体问题去问。 第一步,把 CLIP 和 LLaVA 各跑一遍。数据不需要大,Flickr30k 或 COCO 的一个子集就够,目标是亲手看到 loss 下降、亲手做出一次图文检索和一个图像问答。这一步的目的是打掉"神秘感",很多概念在纸上想不通,跑一遍就通了。 第二步,精读五篇左右。我的建议是 CLIP、Flamingo、BLIP-2、LLaVA、再加一份最新的开源模型技术报告(Qwen-VL 或 InternVL 那类)。读的时候带着问题读:它的视觉 token 怎么进 LLM?训练分几阶段、每阶段冻哪部分?数据是怎么构造的?这三个问题能答上来,论文就算读透了。 第三步,做一个属于你自己的项目。重点在"有你的问题",比如给某个垂直领域做图文问答、做视觉检索增强、或者系统评测某个模型的幻觉并用 POPE、HallusionBench 这类基准给出量化结论。有对比实验、有失败分析的项目,面试时比"我复现了 LLaVA"值钱得多。 第四步,追前沿。arXiv 每天刷太累,建议跟一两个 awesome 列表加几个实验室的技术报告,重点看新模型的架构图和训练数据那两节。 四、几个容易踩的坑 一是平均用力。多模态的模态无穷多,音频、点云、视频、3D 全学一遍不如把视觉-语言这一支打穿,其他模态的迁移成本比你想象的低。 二是只研究模型不研究数据。多模态效果有一大半来自数据——图文对的清洗、caption 的改写、交错图文语料的构造、负样本怎么选,这些在论文里往往一笔带过,但在工程里是主要战场。 三是忽略推理成本。图像 token 数、KV cache、批处理策略,这些直接决定一个多模态应用能不能上线,学术指标和线上体验是两回事。 四是忽视幻觉问题。模型会一本正经描述图里没有的东西,这在实际产品里是硬伤,做项目时最好专门测一下。 想往哪一层深入可以接着说,比如 CLIP 的 InfoNCE 推导、或者 LLaVA 的 projector 为什么两层 MLP 就够。