资讯详情

资讯详情

视觉语言模型十年:从看图说话到多模态大模型的演化之路

2015年如果你让一个程序“看一张图说出里面正在发生什么”它大概率会结结巴巴吐出一串词人、草地、狗、球。五年后同样的任务变成了给图文对打分——匹配打高分不匹配打低分十年后端上来的是一套能理解、能推理、能和你来回对话的完整多模态系统。视觉语言模型这十年表面上是从几千万参数涨到千亿参数本质上其实只有三件事发生了根本变化视觉和语言的表征从“各管各的”变成“能被放进同一个空间计算”训练信号从人工精细标注变成自然存在的图文对应关系模型角色从分类打分器变成生成式对话体。这篇内容面向三类人最有用正在选型做多模态应用的工程师想补全技术脉络的研究生以及被各种新名词绕晕、需要一份“历史时间轴”的爱好者。我不会只按年份报菜名而是把每段技术转折背后“为什么非变不可”讲清楚包括我这些年亲测下来哪些结论靠谱、哪些坑不要踩。1. 起点2015年第一次让机器把图像翻译成句子1.1 看图说话为何在当年突然可行把视觉语言模型往前推2015年的主要形态就是图像描述生成俗称“看图说话”。它的骨干技术组合现在看来简单得近乎朴素卷积神经网络负责把图片压缩成一个高维向量循环神经网络负责逐词吐出描述。图像不是被“看懂”的而是被“编码成一串数字”然后语言模型在这串数字的指引下去挑词。当时的做法里一个特别容易被后人忽略的细节是视觉侧通常取全连接层的特征而不是最终分类层的输出。原因也简单——分类层输出的概率分布被类别标签锁死了而全连接层那个几千维的连续向量保留了更丰富的“图片长什么样”的信息。这个选择直接影响了后面几年的设计思路大家都默认视觉特征要“宽”而不是“窄”。那年为什么能跑通算力只是一部分。更关键的是端到端训练的整套工具链已经成型图像编码器可以和文本解码器放在同一个优化目标里一起反向传播。要知道早几年还有人在用“先检测物体、再套模板”的管线做描述那种做法无法把用户反馈或语言损失传回视觉特征所以再怎么调模板都只能在有限的场景里打转。1.2 评测与数据集第一批红利和第一批偏差2015年的主流公开数据集中图像描述数据集大多只有数万张图每张图对应一句人工标注的自然语言描述看图问答数据集则围绕图片的物体、颜色、数量、动作构建问答对。数据量虽然不大但意义在于给整个领域立了一个可以横向比较的标尺。没有标准数据集之前论文各说各话模型差多少全靠口头描述有了统一测试集之后谁涨了三个点立刻一目了然。但第一批红利很快变成了第一批偏差。我到现在都记得当时跑一个看图问答模型它几乎不看图也能答对一大半“是不是”类问题——因为训练集里某种答案的比例本身就不均衡模型只要永远回答“是”就能拿到非常高的基线正确率。这就是典型的数据集捷径。模型没有学会“看图推理”它只是学会了“这个数据集出题人的习惯”。这个教训在后来反复以各种形式重演要么是问题文字本身就含答案线索要么是训练集里高频物体碾压长尾物体要么是测试集和训练集风格过于接近。十年来每一次关于“模型是不是真懂”的争论都绕不开当年这批数据集的先天缺陷。1.3 那个阶段的模型到底哪里不行复盘2015到2016年的模型问题集中在三处。第一空间关系稀烂。图片里“猫在椅子下面”和“猫在椅子旁边”对CNN顶层特征来说几乎没有可区分度。特征被层层池化之后位置信息被抹得差不多模型只能靠语言模型去猜常见搭配猜不对就翻车。第二计数和否定极其薄弱。三个苹果和四个苹果往往得到同一个描述图片里明明没有球模型也会因为“草地上常出现球”而强行把球写进句子。语言模型在复制训练集的常见句式而不是描述当前图片。第三长句很快崩坏。当时循环解码结构在处理超过十个词的长序列时前面的语义会逐渐衰减输出后半段经常是通顺但无意义的套话。这个问题直到注意力机制全面替代循环机制之后才真正缓解。所以回头看2015年更像是“能跑通”的里程碑而不是“跑得好”的里程碑。但它奠定了后来十年的技术基调视觉编码、文本解码、联合优化的基本框架至今没有本质改变。2. 注意力机制与预训练范式跨模态融合的秘密2017—20202.1 注意力如何建立文字与图片的对齐关系2017年前后跨模态注意力机制开始规模化进入视觉语言模型。它的核心价值是不再要求视觉特征被一次性压扁成单一向量而是保留空间区域的特征网格让文本中的每个词可以主动去“看”图像上它最关心的那块区域。这个变化用生活类比解释就是以前让一个人看一眼全景然后凭印象写描述现在让这个人握着手电筒写到哪个词就照向图上对应位置。注意力机制给了文本解码器一个动态的视觉查询能力写“球”的时候聚焦球写“草”的时候聚焦草而不是全靠整体印象硬撑。在大规模跨模态注意力出现之前业界已经积累了大量“标签工程”的经验有人先做物体检测再把检测框特征喂给文本模型有人把图片按区域切块分别编码再拼接。这些做法本质都是在手工构造对齐线索而注意力机制的出现等于把“如何对齐”这件事也交给模型学习。语言描述和视觉区域之间的对应关系第一次变成了可训练的、可度量的、可解释的结构。不过注意力也不是万能的。跨模态注意力训练早期很不稳定因为视觉区域的数量、文本长度、融合层插入位置都可能让收敛速度发生剧烈变化。当时很多人微调一个模型要反复调这些元参数调对了很开心调不对就开始怀疑人生。2.2 单塔与双塔的早期路线争论2019到2020年基于Transformer的视觉语言预训练爆发路线自然分成两拨单塔结构和双塔结构。单塔结构把图片的区域特征和文本的token特征拼成一个长序列喂进同一个Transformer网络做自注意力。好处是实现简单、模态交互极其充分视觉token能看到所有文本token文本token也能看到所有视觉token。缺点是序列长度被视觉token数拉得很长算力昂贵而且视觉与文本两种分布堆在一起训练时模型会花大量力气去学“模态身份”而不是任务本身。双塔结构则让视觉和文本各自独立编码后再交叉融合视觉塔看不见文本文本塔也看不见视觉最后通过一个专门的融合模块交互。好处是单塔内部可以分别用各自领域的预训练权重初始化收敛更快、迁移更容易缺点是融合层需要为不同类型的任务单独设计而且吹毛求疵地说它的交互深度天然不如单塔。这两条线后来并没有一方彻底消灭另一方对比学习式双塔在检索和分类上赢了单塔或深度融合结构则在生成和理解任务上证明了不可替代。这种“并行演化、各占山头”的格局是十年来少有的稳定结构。2.3 预训练红利与分布偏差的代价预训练加微调范式在这段时间内成为绝对主流。做法是用规模更大的图文数据先训练模型学会“图像-文本是否匹配”“文本token是否残缺”这类目标然后再拿到具体下游任务上微调。理论逻辑很好理解网络图文对里的常识足够丰富预训练阶段模型先把世界知识装进权重下游任务只需薄薄一层就能调用。可随之而来的是一个极其麻烦的问题预训练数据和下游任务之间的分布差。公开网页的图文对里宠物、风景、食物、出片好看的网红图占比极高而下游任务里可能是X光片、工业缺陷、漫画分镜。预训练阶段练出的视觉经验在下游数据上经常“水土不服”模型以为自己很懂世界实际只是很懂网页。当时业界总结出一条至今仍然成立的规律预训练决定模型的知识上限微调决定模型的任务下限。如果预训练数据里根本没有某个概念微调再怎么使劲也补不齐如果预训练数据来源太单一那么无论模型结构多精巧遇到分布外样本都会露馅。这条规律在今天的大视觉语言模型里依然反复应验。3. 对比学习拐点不学习生成只学习配对的意外收获2020—20223.1 对比学习到底在学什么2020年是一个清晰的拐点。当时一批工作不再要求模型“看图造句”而是让模型学会给图文对打分图片和对应文本应该离得近图片和其他文本应该离得远。训练时从批量样本里找正负样本对用一个简洁的对比损失把所有正样本在表示空间里拉近、负样本推开。业界习惯把这种做法简称为CLIP式方法已经成了描述性术语。对比学习最反直觉的地方在于它没有教模型任何一种“语言生成能力”却让模型获得了很多生成模型都不具备的泛化能力。原因在于它学到的不是语法或者词组组合而是一个跨模态的度量空间在这个空间里“一张狗的图片”和“狗”这个词天然靠近“狗的图片”与“猫”天然远离。这个度量空间一旦建立任何文本描述都可以作为查询条件去检索图片任何图片也都可以去检索文本。我常跟朋友说对比学习本质上是在训练一个“非常懂行的跨界图鉴管理员”它不仅知道图里有什么还知道“用什么词描述它更贴切”。生成模型要一字一句组织输出而对比模型只需要判断关系后者的训练目标更简单、更难走捷径所以在大规模数据上反而更容易训稳。3.2 数据规模的真实作用对比学习的成功建立在数据规模的爆炸之上。此前精细标注的描述数据集有几十万张就算了不起而对比学习用的公开图文对动辄数亿数据来源也变成了普通网页的图片和配套替代文本、新闻配文、商品详情页。数据从“人工精心标注”变成了“自然存在、量大管饱”这是一个根本性的资源逻辑变化。但规模并不等于质量。网页上很多图文对是错位的一张风景照配上一条完全无关的旅行广告文案一张商品图配上充满营销词的技术参数。直接无脑训练模型会被噪声带偏。所以清洗策略成了整个配套工程里最能拉开差距的部分。一个能过滤低质量图文对、能自动识别标题党、能对图-文相关性做初步筛选的数据管线和裸用爬虫数据训出来的模型最终表现可以差出一大截。计算量和数据规模还带来一个现象小批量对比学习容易崩。因为对比学习需要足够多的负样本批量尺寸太小的话模型很容易看到几个难分的负样本就开始抖动损失曲线像心电图。很多复现失败并不是模型结构写错了而是训练批大小的设置没跟上数据规模的要求。3.3 零样本与长尾能力对比学习带来的最惊艳副产品是零样本能力。模型没见过某类图片但只要文本侧给出类别的自然语言描述模型就能把这张图和描述匹配上。比如训练语料里没有“某种罕见鸟类”的标注但图片出现的鸟配合“它是一种羽毛呈蓝色、有红色尾巴的鸟”这种描述模型也有概率把它找出来。这在此前完全不可想象。零样本能力对长尾问题的改善尤为显著。传统分类模型在类别数量超过一定阈值后新增一个类别就要重新标数据、重新微调成本极高而对比式模型的类别“入口”是文本加一个文本模板就等于加了一个类别。电商、检索、推荐系统后来大规模采用这类模型并不是因为它推理能力多强而是因为它在类别扩展这件事上手既成本几乎为零。当然零样本也不是神话。它对空间关系、抽象概念、定量计数依然经常出错遇到“三只猫并排坐”这种需要精确数量推理的查询会明显挣扎。更麻烦的是对比模型擅长“知道有什么”但它回答不了“为什么会这样”“接下来会发生什么”。对齐能力强和推理能力弱这两件事是同一枚硬币的两面。4. 大语言模型接管视觉从打分数到生成对话2023—20254.1 把图像翻译成语言模型能读懂的tokens2023年之后视觉语言模型的形态再一次剧变大语言模型开始接管整个系统的推理能力。思路非常直接——先用视觉编码器把图像变成一系列视觉token再通过一个投影模块把这些token翻译成语言模型能读的“伪文本”最后让语言模型像处理纯文本一样处理“图像加问题”的整体输入。这个思路最巧妙的地方在于视觉部分不用重新发明轮子。语言模型已经具备了强大的世界知识、推理能力和对话能力视觉要做的事情只是“把图像翻译清楚别让语言模型产生误解”。所以当时几乎所有工作都在解决同一个问题怎么把图像的信息无损地压缩成语言模型能下咽的有限个token。这里面有一个工业界反复踩坑的经验视觉信息被压得越狠模型嬉皮士式地说胡话的概率越高。因为语言模型太能编故事了一旦视觉token里缺少关键细节它会动用自己文本世界里积累的先验知识去“脑补”脑补出来的内容往往读起来通顺但完全不看图片。这是个至今没有根治的顽疾后面会专门展开讲。4.2 适配器族谱从重采样器到查询式瓶颈要让视觉信息顺利进入语言模型适配器Adapter成了整个技术路线里最吃设计的地方。这个部件的演化有几个清晰阶段。早期做法是简单线性投影。把视觉patch特征乘一个可学习矩阵直接映射到语言模型的输入空间。优点是结构极简单、参数量小、甚至零样本就能跑通缺点是压缩太狠几百个patch要挤进有限维度细节损失很快。中期做法引入重采样器。先由视觉编码器产出完整的patch级特征再由一个可学习的注意力池化模块把它重采样成固定数量的隐变量。好处是语言模型不需要关心图像到底切成了多少patch不管输入分辨率怎么变最终给语言模型的都是同一数量的视觉token训练和部署都更稳定。后来的主流选择则是查询式瓶颈结构。预置一组可学习的查询向量每次用这些查询去视觉特征里“捞”信息类似一个固定大小的信息检索接口。相当于语言模型向图片开了一个对话框每次提问固定次数每次拿回的信息量被严格约束在一个瓶颈里。查询式瓶颈的突出优势是参数效率极高对后续的指令微调非常友好能用很低成本让模型适应不同任务。选适配器时不单要考虑效果还要看推理时的显存占用。重采样器需要把整张图的patch特征都保留到融合阶段显存开销随图像分辨率线性上涨查询式瓶颈可以在融合后立刻丢掉视觉特征只保留查询结果这对部署来说友好得多。实际项目里我劝过不止一位同学别只看论文里的精度表要记得把显存曲线画出来。4.3 指令微调、幻觉治理与评测变迁大语言模型时代的视觉语言模型还必须过指令微调这一关。模型要能用自然语言回答开放域问题、要能拒绝无关问题、要能按用户要求的格式输出结果。指令数据成为继图文对之后又一个决定成败的资源瓶颈。那个阶段的训练数据里相当一部分来源于用强模型自动生成指令答案再经规则和人工抽检过滤。幻觉则是整个赛道上最烧钱也最让人头疼的问题。多模态模型比纯文本模型更容易一本正经地胡说八道图里根本没有的东西它能描述得跟真的一样。有一个激进的测试是把图片里的关键物体抠掉再问模型图上有什么很多模型会继续绘声绘色地介绍那些已经被抹掉的内容。原因不难理解语言先验太强、视觉信息被瓶颈压缩后丢失细节、训练数据里图文不对应的问题被带进了模型权重。业界治理幻觉的主要手段大概分四类在训练数据层面做更严格的图文相关性过滤在解码时增加外部知识的约束校验用专门的幻觉基准做采样或强化生成后再用一轮判别式审核模型复查一遍。每一招都有用但谁也没法完全根治。凡是声称能彻底解决幻觉的你可以把它理解成在用宣传话术替代效果数据。评测基准也在同期经历了一次大换血。早期纯看VQA准确率已经全面饱和随便一个新模型都能刷到旧基准的上限区分度趋近于零。于是出现了知识型多模态题集、逻辑数学题集、文档表格题集和幻觉专项集合。新的评测体系不再满足于“图里有什么”而是追问“为什么”“如果……会怎样”“请按步骤解释”这类需要真推理的问题。评测变迁反过来强迫模型往更务实的推理方向走而不是继续卷“谁能把训练集特征背得更熟”。5. 落地结果哪些能力已变成生产力哪些还是试错5.1 已经能稳定用的场景回到工程师最关心的落地上来。十年之后有几类场景已经可以放心用视觉语言模型当生产力工具。文档理解是落地最扎实的方向。图像中的版面结构、印刷体文字、表格逻辑、票据字段现在的主流多模态模型都能处理得相当好。因为这类场景对“空间位置精确对应”要求高、对开放式想象要求低幻觉干扰较小。把模型接进企业内部的文档扫描、财务票据识别、工单归档流程再配一层规则校验性价比非常高。商品搜索和推荐也一样成熟。对比式图文匹配在检索上的高精度、低成本扩展类别的能力让电商平台能直接在图片和自然语言之间做双向搜索。“找一双和这张图相似但颜色更深的跑鞋”这类需求用带文本改写的多模态检索链路已经可以稳定交付。内容审核和多标签分类是另一个被低估的成熟场景。模型对违规表述、敏感物体、异常场景的识别阈值可以通过文本模板灵活调节比起传统打标签的方式省掉了大量人工标注。只要守住“先召回后人工复核”的流程底线效率提升非常明显。视频理解的分镜提取、关键帧摘要、字幕匹配也逐步进入可用区间。虽然模型还达不到对几十分钟视频从头到尾的微观理解但对着抽帧集合做粗粒度内容摘要、片段定位和主题聚类已经能帮内容平台省下大量人力。5.2 选型实操建议我在选择模型和方案时一般会按一个优先级顺序思考先定任务边界再定延迟预算最后才看精度排行。很多人一上来就盯着榜单最前面的千亿参数模型结果部署成本高出预算一个量级推理速度又满足不了线上要求最后被迫推倒重来。对常规任务中型开源模型配合LoRA微调就够了。文档解析、商品检索、标签分类这类成熟场景一个几十亿参数级别的模型已经能打得很好。真正需要大模型出马的是长尾开放域对话、复杂因果推理、跨语言混合内容这种超高难度的边角任务。选型时格外注意视觉编码器的输入分辨率适配。同样一个模型训练时用低分辨率你部署时突然把高清大图喂进去很多模型的token数会暴涨显存直接爆掉。要么训练阶段就按真实分辨率做过增强要么在推理链路里加图像缩放和裁剪策略不能想当然。最后一条是我反复讲的永远在模型输出后面加一道规则校验。模型认为一张票据是有效报销凭证你就再检查一下必要字段是不是齐全模型认为图片里没有违禁品你就再用另一个独立小模型抽查低置信度样本。视觉语言模型是流水线上最聪明的那个工人但不一定是最可靠的那个工人。冗余校验不丢人丢单才丢人。5.3 未来两个确定方向接下来值得押注的方向我判断有两个。一是“统一感知加专家细节”的分层架构。用一个全局视觉语言模型负责整体语义、场景叙事和推理调度同时挂一批专用小模型负责OCR、人脸、动作、音频、红外等细粒度感知。全局模型做判断局部模型做证据这种组合既控制成本又能把不同模态的长板都发挥出来。二是具身智能。视觉语言模型不再只对着静态图片工作而是接入机器人的实时摄像头信号在动作闭环里反复试错。视觉、语言、动作三个通道必须被放进同一个训练目标里联合优化而不是先把视觉模型训好再接策略网络。这会是完全不同于过去十年的一次能力跃迁需要的不仅是模型结构创新还有现实世界中高质量真实交互数据的大规模积累。如果让我给刚入行的后来者一句最实在的建议别急着追最新参数先去看三件事——你的数据里图画得对不对你的任务能不能容忍模型偶尔胡说你的部署资源能不能扛住真实输入分布。把这三件事想清楚视觉语言模型在你手里就是产能想不清楚再大的模型也只是个昂贵的玩具。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →