篇章五 · 5.1
原生多模态
文字、图片、视频,从预训练就一起学
K3 是原生多模态模型:文本、图片、视频从预训练开始,就在同一个 Next-token Prediction 目标下联合优化,没有先训练纯文本模型、再外挂视觉编码器做对齐。
视觉信号怎么变成 token。 视觉部分采用 MoonViT-V2,约 401M 参数、27 层,使用 RMSNorm,并去掉了 Linear 层和 Attention Projection 里的 Bias。它把一张图切成小块,每一块编码成一个 token,再交给后面的语言模型。
视频拆空间和时间。 视频 Attention 被拆成两部分:帧内空间 Attention 处理同一帧里 patch 之间的空间关联,帧间时间 Attention 处理不同帧之间的时间动态。再通过 Temporal Pooling 压缩时间维度,把多帧信息浓缩。
Pixel Shuffle 减四倍。 进入语言模型之前,还会做一次 2×2 的 Pixel Shuffle,把视觉 token 的数量减少到原来的四分之一,最高支持约 3584×3584 分辨率的图片。这串视觉 token 和文本 token 一起进 LLM,联合预测下一个 token。
从零训练,比 SigLIP 初始化更稳。 K2.5 的视觉编码器从 SigLIP 预训练权重初始化,K3 直接从零训练 MoonViT-V2。原因是 SigLIP 初始化版本长期拥有更高梯度、还频繁出现 Spike,从零训练反而更稳定,最终视觉评测又能追平 SigLIP 初始化基线。
这个结果说明:模型规模足够大、图文数据足够多以后,视觉编码器未必必须先做对比学习预训练。
MoonViT 拆空间+时间再池化,Pixel Shuffle 压到 1/4,和文本 token 一起进 LLM。
64个 patch ➜ 16个视觉 token
每个彩色小块是一个 patch,相邻 2×2 为一组
四个相邻 patch 收拢成一个 token · 数量 ÷4
MoonViT-V2 · 27 层 401M,去 Bias
帧内空间 + 帧间时间 + Temporal Pooling 处理视频,Pixel Shuffle 减四倍,最高 3584×3584。
从零训练,比 SigLIP 初始化更稳
SigLIP 版梯度高、频繁 spike,从零反而更稳、追平基线。模型够大、数据够多时,视觉编码器未必先做对比学习预训练。