模型架构

模型主要包含三个部分:MoonViT-3D、MLP投影器、Kimi-K2。没错,刚发现Kimi-K2其实是单模态的,这里面使用的是Kimi-K2的模型架构而非其训练参数。
在这里插入图片描述

Kimi-K2

又仔细看了一下Kimi-K2的huggingface仓库,发现其模型架构继承自DeepSeek-V3,只是在模型配置层面有所改动:

左侧为Kimi-K2,右侧为DeepSeek-V3的配置参数。
在这里插入图片描述

MoonViT-3D

在Kimi-VL中,使用了MoonViT,其允许原生分辨率处理,无需复杂的切割拼接操作。更详细的介绍可见GitHub仓库:“datawhalechina/self-llm/models/Kimi-VL/02-Kimi-VL-技术报告解读.md”

在Kimi-K2.5中,为了最大程度地使图像理解能力迁移到视频理解上,使用了MoonViT的升级版——MoonViT-3D。使用了统一的架构、完全共享的参数以及一致的嵌入空间,将时间-空间维度一同处理。

  1. Pack Stage:在 MoonViT3dEncoder 中,最多4个连续帧被视为一个时空体积,在这个阶段,4个时间帧被当作一个整体进行特征提取,但并没有减少时间维度的大小。
  2. Packed Attention:经过上述操作后,每个时空Pack由4帧视频变成了一段 flattened tokens。在这个阶段使用了cu_seqlens 进行mask,保证每次注意力的计算只在每个Pack的范围内,Pack之间不做交互,且注意力的是双向的(相当于transformer-encoder)
  3. Pool Stage:在 tpool_patch_merger 函数中,通过 .mean(dim=0) 操作沿时间维度进行平均池化,将4个时间帧压缩为1个时间步。

最后,一段视频就被编码成一段 token 的 embedding 了,在后面的阶段根据图片插入文字的位置插入到 text tokens 里就完成了多模态融合的功能。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐