我为什么翻了一整夜的
在凌晨三点这个时刻,我仍旧处于盯着商汤刚刚所放出的NEO-unify架构源码,呈现出发呆的状态。
我不是什么大佬,就一普通后端,上个月开始搞多模态的项目。
开始的时候,是为了图便利,将CLIP这个模型、这个模型、LLaVA这个模型,运用api把它们拼凑到一块儿。
跑是能跑,就是慢得要死,用户一上传视频就卡住。
传统的,拼接式的,那类多模态,仿佛是一个仿佛是由说着不相同语言之人构成的工作组,信息于不同模块之间传来传去,损耗加延迟着实令人抓狂!
今天,翻到了 U1的代码,察觉到,它十分彻底地除去了视觉编码器,于单一模型架构之中,将理解、推理以及生成加以统一了标点符号。
那种感觉该如何去形容呢 ,是这样的 ,你长久以来一直认定拼接才是唯一的解决途径 ,然而突然间不知从哪儿冒出来一个人 ,告知你压根就无需把图像转化成文字之后再去进行理解。
我针对-U1-8B-MoT的代码仓库,进行了彻彻底底的全面翻找,目的是想要去探究一下究竟那个所谓的“NEO-unify架构”到底是属于何种事物。
>
我们为什么痛苦
搞多模态融合的不少人经历过这么一种痛苦,数据存在异构情况,特征空间处于不对齐状态,训练框架连接不上。
Seed团队属于字节跳动,就在去年的时候,该团队提到过,那些常用的训练框架,多数是针对只有纯文本的LLM所设计的,它们将模型定义与并行逻辑相互耦合在一起,最终致使结构复杂且拥有多样模态的全模态模型,在进行训练期间出现负载不均衡的情况,并且扩展性也比较差。
按传统方法,你们要自行去实现跨模态注意力层,要对MoE专家网络的动态路由予以处理,还得为量化感知训练里4-bit量化后的精度损失而纠结。
有人向我发问:为何不再持续运用?那个由Meta所开创的情感视听大模型,跨越六种模态且共享表征,多么美观呀?
但是呢,它对于硬件所提出的要求实在是太高了,其推理速度特别慢,代码的实现依赖于像这样的库来读取音频,运行起来会出现各种各样稀奇古怪的bug。
深度学习之中的多模态融合,从来都不是那种简单的如同“X + Y = Z”这般模样的数学题,这件事是在去做,做一件将不同宇宙所拥有的语言,强行地翻译成同一种方言的事情。
>
从源码里挖到的东西
NEO-unify的代码结构让一个普通后端开发者也能看懂。
它构建起了统一性质的表征空间,将图像以及语言当作是一个复合体来直接通过建模的方式进行处理,并非是分作两头来分别处理。
甚至,你都不需要去单独跑一个用于“翻译”图像的视觉编码器,所有的信息,都在同一个大脑之中自然地融合。
宛如文档之中所记述的那般,它愈发近似于一个“全能大脑,径直领会,径直表述”。
它做到的内容更甚于这,是连续性的图文创作输出,能够一边对图像展开分析,一边生成高质量的图表以及文字。
这对那些做AI商业报告、数据分析平台的公司绝对是个王炸。
>
英伟达的另一条路
同日,英伟达还推出了 3 Nano Omni。
而它选取了一条全然不一样的技术途径,即混合专家架构之法,能够动态性启用各式各样不同的模型组件,来针对文本、图像、音频以及视频展开处理。
实测里,三分钟的演讲视频,它几秒内就能理解并概括核心观点。
这俩模型对比很有意思:
商汤走的是“原生统一”——去掉所有隔离,一张白纸重新训练;
英伟达所遵循的是“动态混合”模式,即有着各类专家可供调用,能够依据不同的任务进行灵活的调配。
没有谁对谁错,就看你手里是什么项目,什么数据。
>
真正的转折点在哪
.0-Uni开源带来了一个新思路,这个新思路是全离散扩散建模,它不依赖自回归,并且能够同时实现图像理解,还能够实现图像生成,也能够实现图像编辑。
字节跳动的框架,还推出了“以模型为中心”的分布式训练方案,这能使你在转换模态以及添加组件之际,无需再从起始点开始修改分布式代码。
我留意到了这般的模型合并技术,将多个具备互补特性模型的后训练对齐能力,整合到一处。
系统地解决着模型的异构以及负载不均的情况,设计者们于追求通用性之际,在追求极致性能当中寻找到了平衡。
但这些东西,都不及我在跑通时感到的挫败感重要。
>
一个不那么“技术”的观察
多数情形下,身为从事技术工作的我们,过度地沉溺于去刷 SOTA 以及 排行榜。
但你知道我这半年搞多模态融合最大的感受是什么吗?
不是代码本身有多难写,而是你的想法被框架和硬件给框死了。
我打算试着去融合牵涉到触觉的数据比如说工业机器人传感器,再加上视觉信号,然而对于深度以及IMU数据的支持直至如今都并非足够流畅。
你打算对接自行研发的机器人传感器,然而框架并不支持自定义模态能够得以快速接入。
我感到舒服,得力于 Seed的,它依据接口规范,设计了所有模态的编码器与解码器,接入新模态如同插上USB一般。
从架构设计的角度来看,这样一种,呈现出“以模型为中心”特点的,解耦思路,相较于某一个新的SOTA而言,是更具备生命力的。
>
写给跟我一样的普通人
别被那些动辄百亿参数的宣传吓到。
实际上,我经过尝试之后发觉,从8B这个参数量级的模型到30B这个参数量级的模型,足以涵盖诸多商业场景了。
U1 Lite具备的参数是8B ,然而,在高质量图像生成方面,乃至复杂图表生成方面,它已然能够与某些拥有几十B参数的商业闭源模型相媲美。
英伟达的 3架构为30B – A3B,其具备这样的架构,动态激活参数量大约只有3B,然而吞吐量却能达到同类模型的9倍幅度。
这意味着什么?
意味着端侧本地部署和低成本的商业微调可能真的要普及了。
小米进行开源的MiMo-V2.5,预计也将会对此推动一波端侧多模态应用。
>
我依然不觉得这有多完美
坦白讲,我耗费了足足一周的时间,试着于我们的推荐系统里嵌入多模态融合。
效果确实有提升,但调参过程痛苦至极。
原生融合架构存在需求,要求整个模型的每一层,都于所有模态产生敏感度,其训练过程,相较于之前的拼接方式,复杂程度高两个数量级。
在进行微调操作的时候,同样会遭遇到模态桥接层存在泛化性欠缺的状况,尤其是那种预训练未曾涉及到的边缘场景。
GLM – 5V – Turbo,这种原生的多模态智能体,其路线图尚未真正走入落地阶段,而所承诺的“统一每个模态”,距离达成还有些路程要走。
有过拼接的行为,存在过融合的情况,最终发觉“原生”这两个字所代表的是,你得舍弃全部已有的成熟方案。
就像一张白纸和一本画满草稿的书,说不上谁更好。
不过,技术的发展往往就是这样——我们总是在不完美中前进,而不是等到完美再出发。
