Token导航 LogoToken导航

阿里AI实现声音图片文字视频同时理解

更新时间 2026-10-19来源 科技行者正文 7749字阅读约 25分钟

你有没有想过一个问题:搜索引擎为什么总是让你先想清楚"我要用什么关键词"?

如果你手里有一段维修师傅发来的机器异响录音,外加一句"这声音正常吗",你想找的可能是一段视频教程,也可能是说明书里的某张故障图,还可能是过去某次的维修记录。这三样东西,格式完全不同,一个是视频,一个是PDF里的图片,一个是文字记录。可现在的搜索系统,几乎没有一个能让你直接扔一段录音进去,然后在这三种完全不同的东西里同时找答案。

这不是危言耸听。阿里巴巴的Ovis-Embedding团队在论文里给这种能力起了个名字,叫"any-to-any retrieval"(任意到任意检索)。他们观察到一个现实:现在市面上的多模态检索模型,要么是"视觉-语言专家",天生不支持音频;要么是给一个原本只懂文本和图片的模型硬接一个音频处理模块。前者是先天缺陷,后者更像是打补丁。

这篇论文要讲的,就是阿里怎么解决这个问题,以及解决过程中踩过的坑和悟出的道理。

打补丁式的多模态,问题出在哪

先说清楚现有方案的毛病。

市面上大部分所谓的"全模态"嵌入模型(embedding model:把文字、图片、声音等各种内容转换成一串数字向量的模型,方便计算机比较它们之间"意思"有多接近),走的都是同一条路:先训练一个文本-图像模型,训练得差不多了,再单独训练一个音频编码器,最后想办法把这个音频编码器的输出"对齐"到已经学好的文本图像空间里去。

这就好比你已经建好了一栋房子,装修风格、水电走线全定了,这时候突然要在客厅加一个从没考虑过的浴室。你只能想办法在墙上凿洞接管道,效果能凑合用,但和原本一体化设计的房子比,总归差点意思。管道要绕远路,水压可能不稳,冬天还容易结冻。

阿里的做法反过来了。他们没有从零搭一个新架构,而是直接拿一个已经原生支持文本、图片、视频、音频四种输入的理解模型(Qwen2.5-Omni,阿里自家的多模态大模型)来改造。这个模型原本是用来"听懂看懂后生成回答"的,阿里团队做的事情,是把它生成语音的那部分(叫Talker,负责把理解结果变成人类语音)直接砍掉,只留下负责"理解"的那部分(叫Thinker,一个共享的Transformer结构)。

Thinker*:Qwen2.5-Omni模型里负责多模态理解的核心组件,文字、图片、视频、音频都在这里被统一处理成token序列,然后用一个共享的因果Transformer模型来消化。它原本的搭档Talker负责把理解结果转成语音,这次被砍掉了。

砍掉生成语音的部分之后,阿里只取Thinker最后一层、最后一个有效token位置的隐藏状态,直接拿来当作这段输入的"嵌入表示"。没有加任何额外的投影层,没有给每个模态单独配一个输出头,就是最朴素的"最后一层最后一个token"。

这个决定背后的逻辑值得琢磨。如果你在原本就已经学会理解四种模态的大脑上直接摘取表征,那文字、图片、声音、视频在这个大脑里本来就是被放在同一个空间里理解的,你只是把这个理解过程的终点提取出来当坐标用。而如果你是拼凑出来的架构,声音是后来硬塞进去对齐的,这个对齐过程能做到多精确,很大程度上取决于你后期调校的功夫,天生就矮人一头。

数据从哪里来,又怎么保证质量

光有一个好底子还不够,巧妙的架构如果喂的是垃圾数据,照样练不出好模型。

阿里为Ovis-Embedding构建了一个覆盖文本、图片、视频、音频以及交错混合输入的大规模训练语料库,总量大约5000万条查询-目标训练对(这个数字论文里标注为"数据冻结时的占位估计",最终版本会更新)。

针对不同模态,团队的采集思路各不相同。

图片数据分四类:分类、问答、检索、定位。分类数据除了用ImageNet、CUB-200这类经典学术数据集,还专门爬取了网络搜索返回的候选图片,用Qwen3.5-Plus这个视觉语言模型去人工标注一遍类别标签,目的是把类别覆盖面和外观多样性扩展到超出传统学术基准的范围。问答数据除了用TextVQA、DocVQA这些成熟数据集,还专门合成了长尾场景的数据,来补足那些冷门实体和特殊语境。

视频数据的处理流程比较有意思,用的是"搜索-过滤-验证"三步走。团队先用文本描述在网上搜出一批候选视频,然后让一个视觉语言模型(VLM:能同时理解图片/视频和文字的AI模型)看着从视频里均匀抽出来的几帧画面,判断这段视频到底符不符合搜索时用的那个描述。只有通过验证的视频,才会被留下来当训练数据。

这里有个细节特别值得展开讲:查询文本的修正流程。团队先用第一个VLM给视频和查询打分,选出高相关性的配对,作为正样本;负样本则从其他不同查询对应的视频里随机挑。然后,第二轮再让另一个VLM看着已经确认的正样本视频画面,反过来检查一遍原始查询文字写得对不对,比如人数对不对、动作对不对、涉及的物体对不对。如果文字有偏差,就做保守的修正,只改动观察到的事实错误,不能编造画面里看不出来的细节。

这个"先固定视频再修正文字"的顺序,而不是反过来先固定文字再挑视频,是有意为之的。如果你先写好一段查询描述,再去大海捞针地配视频,你很难保证配上的视频100%精确对应描述里的每个细节,你要么容忍误差,要么工作量爆炸。反过来,先靠模型粗筛出高相关性的视频候选,再让另一个模型盯着这个固定下来的视频"抠字眼"式地修正文本,这样修正的对象是有限的、具体的、可核查的,工作量小得多,质量却能做到更高。这就像装修房子时先把承重墙定死,再根据实际空间去调整家具尺寸,而不是先在图纸上画好完美的家具摆放,再指望施工队分毫不差地照办。

音频数据覆盖三个方向:识别(把音频关联到语义类别,比如环境声、城市噪音、乐器声、语音指令)、音频-语言匹配(把非语音的声音和自然语言描述配对,把语音片段和转录文字配对)、双向检索(既支持用音频查文字,也支持用文字查音频)。

负样本*:训练对比学习模型时,除了给模型一个"正确答案"(正样本),还要给它若干个"错误答案"(负样本),让模型学会分辨真正相关的内容和貌似相关实则无关的内容。负样本选得好不好,直接决定模型学到的是真本事还是走捷径。

负样本这件事贯穿了整个数据构建过程。以音频为例,团队要求负样本尽量来自同一个任务类型,这样模型才必须去分辨"语义相近的声音或描述",而不是靠粗糙的输入格式差异来偷懒。

训练怎么分阶段,每一步解决什么问题

有了架构和数据,接下来是训练策略。阿里把整个训练拆成了四个阶段,每个阶段解决一个具体矛盾。

第一阶段叫"低秩预训练"(Low-Rank Pretraining)。这里有个反直觉的发现,团队一开始尝试直接对整个模型做全参数训练,结果发现效果明显不如只调整一小部分参数的低秩训练(LoRA:一种只训练模型里一小部分低维参数、而不是整个模型全部参数的高效微调技术)。

LoRA*:全称Low-Rank Adaptation,一种参数高效微调方法,训练时只调整模型里一个低维度的"旁路"参数,主体参数保持冻结,这样既能省算力,又能避免大幅改动原模型学到的知识。

为什么全参数训练反而更差?团队给出的解释是:当一个原本用来做"理解"的模型第一次被改造成用来做"嵌入表示"时,它新产生的表示空间是一团乱麻,没有任何有意义的约束。这时候如果放开所有参数去训练,不稳定的梯度会到处乱窜,把原本预训练好的语义结构给震散了,还没等新的表示空间稳定下来,旧知识先被破坏殆尽。低秩训练则把改动限制在一个低维子空间里,幅度小、约束强,相当于给这个乱糟糟的新生儿裹上了襁褓,让它在外部环境相对稳定的情况下慢慢学会站立,而不是刚出生就被扔进狂风暴雨里。

这就好比你请了一位钢琴大师来改学吉他,如果一上来就让他把所有的肌肉记忆推倒重来,他反而会又不会弹钢琴又不会弹吉他,什么都学不会。但如果只让他调整手指按弦的角度这么一个局部动作,其他的乐感、节奏感这些底子留着,他反而能很快上手。

第一阶段还引入了两个损失函数(loss function:训练时用来衡量模型预测结果和正确答案之间差距的一个数值,模型训练的目标就是让这个数值越来越小)配合使用。

第一个是"焦点加权对比损失"(focal-weighted contrastive loss)。传统的对比学习损失函数InfoNCE(一种常见的对比学习目标函数,让模型学会把相关的内容拉近、不相关的内容推远),有个毛病:一个已经分得很清楚的简单样本,和一个还没分清楚的难样本,在损失函数里的权重是一样的。这就好比一个班级里,学霸已经把这道题做对了,学渣还在纠结,但老师给两人布置的额外练习量却是一样的,这显然是效率低下的。焦点损失的做法是给模型当前置信度低的"没搞懂的"查询更高的权重,让训练资源集中在真正需要打磨的地方。

第二个是"嵌入蒸馏损失"(embedding distillation loss)。标准的对比学习把正样本当成"独一份"的正确答案,是个非黑即白的标签,但实际上候选池里的负样本之间也有相对亲疏之分,有些负样本"错得比较离谱",有些"差一点点就对了"。蒸馏损失引入一个更强的教师模型(teacher model:一个性能更强、但可能部署成本更高的模型,用来指导性能较弱但更轻量的学生模型),把教师模型对整个候选集的完整排序分布"转移"给学生模型,而不只是告诉学生"这个是对的,其他都是错的"。

第二阶段是"全参数同源微调"。等第一阶段把基础的统一表示空间搭起来之后,第二阶段放开全部参数,继续在一批质量更高的下游数据集上精调。这里最关键的设计叫"同源采样"(homogeneous-source sampling)。

同源采样*:一种训练时组织数据批次的策略,要求同一个微批次(micro-batch)里的所有样本都来自同一个数据集,而不是把不同模态、不同任务的数据随便混在一起。

这个设计的动机很实在。如果一个批次里随便混杂来自不同模态、不同任务的样本,模型很容易学到"投机取巧"的捷径,比如靠句子长短、语言风格这种表面特征来区分正负样本,而不是真正学会语义上的细微差别。举个例子,如果批次里混了一条图片检索样本和一条纯文本检索样本,模型可能压根不需要理解语义,光凭"这条数据带不带图片"就能猜个八九不离十,这种捷径学会了对真正的检索能力毫无帮助。

同源采样把这个漏洞堵上了。既然同一个批次里所有样本都来自同一个数据集,那些拼凑起来的负样本自然也都属于同一个任务类型,模型没法再靠模态、格式这种表面线索偷懒,只能老老实实去学语义上的细微差异。有意思的是,这个"同源"只在微批次内部强制,一次完整的优化步骤仍然可以聚合来自不同数据集的梯度,这样既避免了投机取巧,又不至于让模型对不同数据集的表现产生剧烈震荡。

第三阶段叫"退火式嵌入蒸馏"(Annealing Embedding Distillation)。这是在第二阶段训练效果开始饱和之后启用的补丁方案。做法是,先让一个更强的教师模型跑一遍训练语料,只保留教师模型能答对的那部分样本;再让学生模型跑一遍同样的语料,把结果按"学生也答对了"和"学生答错了"分成两堆,答错的那堆被重点过采样,用来集中攻克学生的弱项。

这个阶段有个细致的权衡策略叫"自适应蒸馏权重"。团队发现,如果只用学生自己的对比学习损失训练,那些学生本来就擅长的任务会越做越好;但如果给蒸馏损失一个固定的大权重,反而能显著提升那些学生本来薄弱、但教师很强的任务。于是他们设计了一个动态权重,根据学生对正确答案的置信度来调整:学生越自信,教师的话语权就越小;学生越不确定,就越多地听教师的意见。这就像一个学生刚开始学一门新学科,处处依赖老师批改作业,但随着他慢慢掌握了规律,能独立判断对错的题目就不再需要老师逐字逐句地纠正了,老师的精力自然转移到那些他还没搞懂的地方。

低秩分解:让一个模型变出五种"体型"

前三个阶段解决的都是"怎么练出一个好模型",第四阶段解决的是完全不同的问题:怎么让这个练好的模型,在实际部署时更省钱、更快。

这里要先说清楚一个现实困境。一个训练好的嵌入模型输出的向量维度是固定的,比如2048维。但实际部署检索系统时,不同场景对存储和速度的要求天差地别:手机端App可能容不下2048维向量的存储开销,但又不想为了省空间单独训练一个小模型,那样成本太高了。

矩阵套娃表示学习*(Matryoshka Representation Learning,简称MRL):一种让单个编码器同时支持多种嵌入宽度的训练技术,训练时会让模型的前N维、前M维(N<M)都具备独立可用的语义表示能力,就像俄罗斯套娃一样,大娃娃里面还能拆出能独立站立的小娃娃。

但阿里团队发现一个问题:如果直接把MRL塞进多目标训练里,会拖累满维度嵌入的表现。也就是说,为了让"缩小版"好用,反而牺牲了"完整版"的质量,这是个此消彼长的取舍,不划算。

于是他们把这件事从训练主流程里剥离出来,单独设计了一套后处理方案。核心思路分两步:先做一次基于主成分分析(PCA:一种数学降维技术,能找出数据里方差最大的几个方向,也就是信息量最丰富的几个维度)的正交旋转,再叠加一个轻量级的残差适配器(adapter:一种小型的、可插拔的神经网络模块,通常参数量很少,用来对已有模型做局部调整)。

这里有个技术细节特别体现团队的严谨。做PCA的时候,直接用全部候选数据算协方差矩阵是不行的,因为不同模态的数据量差距是数量级级别的,如果不做平衡处理,样本量最大的那个模态会主导整个PCA基底,而不是真正代表"哪些方向信息量最大"。团队的做法是把每个模态的候选池都下采样到同一个预算规模,分别估计它们的二阶矩,再按权重混合,最后统一做一次特征分解。

至于为什么不干脆对每个模态分别做PCA然后把结果平均一下,团队解释得很直接:那样得到的操作不再是正交变换,会破坏掉"内积不变"这个数学性质,而这个性质正是保证压缩前后相似度排序保持一致的关键。

残差适配器这一层的训练是无监督的,只用候选语料本身来训练,查询数据只在评估阶段才登场。目标函数借鉴了Matryoshka-Adaptor这项前人工作,同时考虑"全局相似度保持"(批次内所有样本对的相似度关系尽量和压缩前一致)和"局部近邻保持"(每个样本和它最近的几个邻居之间的相似度关系尽量和压缩前一致),两者的权重通过一个超参数调节。

效果如何?论文给出的数据很直观。把2048维压缩到1024维,几乎是免费的午餐,保留率100.1%,甚至比满维度略高一点点。压缩到512维和256维,分别只损失0.8%和2.6%的性能。就算压到128维,整整缩小16倍,依然能保留93.2%的效果。作为对照,如果只是简单粗暴地截断前128维再归一化,不做任何PCA旋转和适配器训练,保留率只有85.8%,两者相差7.4个百分点。

不过这里也有个诚实的发现:不同任务类型对压缩的容忍度天差地别。在128维这个极限压缩下,音频任务只掉了0.33分,视频只掉1.26分,但视觉文档检索(VisDoc)掉了6.97分,智能体任务(Agent)掉了6.18分。团队给出的解释是,音频和视频这类任务大多靠粗粒度的类别信息就能判断对不对,这些信息通常保留在方差最大的主成分方向里,天然更容易在压缩后存活;而视觉文档检索需要在一整页外观相似的文档里精确定位某一段文字或某张图,智能体任务需要区分只有细微差异的界面状态,这些细粒度判断依赖的是方差较小的次要方向,恰恰是短前缀最先被砍掉的部分。换句话说,短向量不是不够聪明,而是压根没地方存那些细节。

结果说话:跑分数据到底怎么样

说了这么多设计思路,最终还是要看模型能打多少分。

在MMEB-v3(一个覆盖190个任务、涵盖文本、图片、视频、音频、视觉文档和智能体场景的全模态基准测试)上,Ovis-Embedding-Omni-3B拿到了58.46分的总分,比第二名的Tianmu-Emb-Uni(8B参数)高出5.19分。更值得一提的是,这个模型自己只有3B参数,比不少对手要小得多。

而且它不是靠某一个模态偏科拿的高分,而是在图片、视频、视觉文档、文本、音频、智能体这六大类任务上全部排名第一,领先幅度分别是3.72、5.62、2.89、3.53、7.04和6.10分。其中音频任务的领先幅度最大,达到7.04分,这恰恰印证了前面提到的核心设计理念,原生支持音频、而不是后接补丁的架构,确实能带来实打实的性能优势。

在专门的音频评测基准MAEB上,Ovis-Embedding-Omni-3B同样拿到第一名,Mean(Task)得分57.29,比第二名的LCO-Embedding-Omni-7B高3.75分。要知道对方的参数量是它的2倍多。在专门的视频评测基准MVEB上,情况也类似,61.77分对上第二名的57.58分。

论文里还有一个特别耐人寻味的结果:团队把这个"全能型"模型和专门的文本嵌入模型放在一起,在RTEB(一个专注于法律、金融、编程、医疗等实际检索场景的文本基准)上比较。结果Ovis-Embedding-Omni-3B拿到67.35分,甚至小幅超过了专为文本设计的更大模型Qwen3-Embedding-4B(67.27分)。这说明一件事:拓宽模态覆盖面,并没有让这个模型在它原本最擅长的文本领域打折扣。

除了3B的全模态版本,团队还训练了两个只支持文本、图片、视频的视觉语言版本,分别是2B和9B参数量。9B版本在MMEB-v2(专注视觉语言的基准测试)上拿到81.13分总分,超过对比中最强的基线1.04分;2B版本拿到77.46分,超过对比基线2.04分。从2B升到9B,视频问答提升了7.64分,视频片段检索提升了7.23分,说明更大的模型容量最能吃到红利的地方,是那些需要在更长、更复杂的视觉序列里整合信息的任务。

这篇论文最后强调了一点,他们打算把模型权重、训练数据构建方法、推理代码和统一评测工具全部开源。这对整个领域来说是件实打实的好事,毕竟目前音频、音视频联合、任意到任意检索这些方向,公开可用的资源本来就稀缺得很。

Q&A

Q1:Ovis-Embedding是什么?

A:Ovis-Embedding是阿里巴巴Ovis-Embedding团队推出的一系列全模态嵌入模型,能把文本、图片、视频、音频统一转换成同一个语义空间里的向量,支持任意模态之间的相互检索,比如用一段音频去搜相关的视频或图片文档。

Q2:Ovis-Embedding和其他多模态嵌入模型最大的区别是什么?

A:其他模型大多是在已经训练好的文本图像模型基础上后接一个音频模块做对齐,Ovis-Embedding直接从原生支持四种模态的Qwen2.5-Omni理解模型改造而来,四种模态从一开始就在同一个共享网络里被统一处理,而不是事后硬凑。

Q3:为什么Ovis-Embedding可以做到2048维向量压缩到128维还保留93%的效果?

A:团队用了一套两阶段方案,先做基于混合PCA的正交旋转找出信息量最大的方向,再训练一个轻量级残差适配器做局部修正,两者配合能大幅优于简单粗暴地截断向量前几维再归一化的做法。

文章标签大模型
资讯来源:由AI资讯编辑整理自互联网公开内容,版权归原作者所有,未经许可,不得转载。

继续浏览更多资讯

返回资讯目录

相关资讯

更多