详解 Kimi K3 技术报告
赛博浮世绘 · 晓风乾 · 20 站拆解
回首页
详解 Kimi K3 多模态·训练·工程 5.1 · 原生多模态
篇章五 · 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 初始化基线。

这个结果说明:模型规模足够大、图文数据足够多以后,视觉编码器未必必须先做对比学习预训练。

视觉信号到 token 的流程
图 / 视频 原始像素 MoonViT-V2 帧内空间 Attention + 帧间时间 Attention + Temporal Pooling Pixel Shuffle token 数 ×1/4 视觉 token 进 LLM + 文本 token LLM
MoonViT 拆空间+时间再池化,Pixel Shuffle 压到 1/4,和文本 token 一起进 LLM。
8×8 · 64 个 patch 2×2 Pixel Shuffle
64个 patch 16个视觉 token
每个彩色小块是一个 patch,相邻 2×2 为一组
四个相邻 patch 收拢成一个 token · 数量 ÷4
MoonViT-V2 · 27 层 401M,去 Bias
帧内空间 + 帧间时间 + Temporal Pooling 处理视频,Pixel Shuffle 减四倍,最高 3584×3584。
从零训练,比 SigLIP 初始化更稳
SigLIP 版梯度高、频繁 spike,从零反而更稳、追平基线。模型够大、数据够多时,视觉编码器未必先做对比学习预训练。