
Kimi-VL开源多模态大模型结构、训练方法、训练数据浅析 原创
模型架构
Kimi-VL模型整体架构框架与前期内容介绍的llava、reyes等多模态大模型的架构大差不差,组成形式:视觉编码器(MoonViT)+ MLP层 + MoE的LLM。
模型架构
1. MoonViT:视觉编码器
MoonViT的设计目标是能够以图像的原始分辨率处理图像,从而消除复杂的子图像分割和拼接操作。这种设计使得MoonViT能够更灵活地处理不同分辨率的图像,而不需要进行额外的预处理步骤。
实现方式:
- 图像分块和拼接:MoonViT采用NaViT中的打包方法,将图像分割成补丁,展平后顺序连接成一维序列。便于使用FlashAttention进行优化注意力计算。
- 位置编码:MoonViT从SigLIP-SO-400M初始化,并使用插值的位置嵌入来更好地保留SigLIP的能力。然而随着图像分辨率的增加,这些插值的位置嵌入变得不足。为了解决这个问题,MoonViT引入了二维旋转位置嵌入(RoPE),这在高度和宽度维度上改进了对细粒度位置信息的表示,特别是在高分辨率图像中。
- 连续特征输出:经过处理后,MoonViT输出的连续图像特征被传递到MLP层,对齐LLM的维度。
2. MLP层
MLP层的作用是连接MoonViT和LLM:首先,MLP投影器使用像素重排操作来压缩MoonViT提取的图像特征的空间维度,进行2x2的下采样并相应地扩展通道维度。压缩后的特征随后输入到一个两层MLP中,将其投影到与LLM嵌入相同的维度。
3. 混合专家(MoE)语言模型
Kimi-VL的语言模型基于2.8B激活参数的MoE语言模型-Moonlight模型,总共有16B参数。Moonlight模型从预训练阶段的中间检查点初始化,该检查点已经处理了5.2T个纯文本令牌,并激活了8K的上下文长度。
预训练数据与方法
四阶段训练数据情况
Kimi-VL的预训练搞了四个阶段,每个阶段都有特定的目标和数据集。
总结如下:
总结
阶段 | 目标 | 损失函数/数据 | 训练策略 |
训练阶段 | 训练一个能够处理原生分辨率图像的视觉编码器(MoonViT) | 最终损失函数为 ,其中 ;图像和文本编码器计算对比损失,文本解码器进行条件生成的下一个标记预测(NTP) | 1. 初始化时,使用SigLIP SO-400M的权重,并采用渐进分辨率采样策略来逐步允许更大的尺寸 |
联合预训练阶段 | 通过结合纯文本数据和多模态数据来增强模型的语言和多模态能力 | 纯文本数据和多模态数据 | 继续使用加载的LLM检查点进行训练,消耗额外的1.4T token。初始步骤仅使用语言数据,然后逐渐增加多模态数据的比例 |
联合冷却阶段 | 通过高质量的语言和多模态数据进一步确保模型的性能 | 1. 高质量的语言和多模态数据集 | 1. 通过实验验证,观察到在冷却阶段引入合成数据可以显著提高性能 |
联合长上下文激活阶段 | 扩展模型的上下文长度,使其能够处理长文本和多模态输入 | 1. 长文本、长视频和长文档等多模态数据 | 1. 将模型的上下文长度从8192(8K)扩展到131072(128K) |
后训练方法
后训练过程
总结
阶段 | 目标 | 技术实现 | 训练策略 |
联合监督微调(SFT) | 通过指令微调来增强模型的指令遵循能力和对话能力,从而创建一个交互式的Kimi-VL模型 | 1. 使用ChatML格式进行指令优化,保持与Kimi-VL架构的一致性 | 1. 首先在32k令牌的序列长度上训练1个epoch,然后在128k令牌的序列长度上再训练1个epoch |
长链推理(CoT)监督微调 | 通过构建高质量的推理路径数据集来增强模型的长链推理能力 | 1. 使用提示工程构建一个小型但高质量的长链推理预热数据集,包含文本和图像输入的准确验证推理路径 | 1. 通过提示工程生成长链推理路径,类似于拒绝采样(RS),但专注于通过提示工程生成长链推理路径 |
强化学习(RL) | 通过强化学习进一步提升模型的推理能力,使其能够自主生成结构化的CoT推理路径 | 1. 采用在线策略镜像下降变体作为RL算法,迭代优化策略模型 以提高其问题解决准确性 | 1. 在每个训练迭代中,从数据集D中采样一个问题批次,并使用策略梯度更新模型参数到 |
数据构建方法
数据类型 | 目标 | 数据来源 | 质量控制/数据增强 |
字幕数据 | 为模型提供基本的模态对齐和广泛的世界知识,使多模态LLM以高学习效率获得更广泛的世界知识 | 1. 多种开源的中英文字幕数据集,如Schuhmann et al. (2022) 和 Gadre et al. (2024) | 1. 严格限制合成字幕数据的比重,减少幻觉风险 |
图像-文本交错数据 | 在多模态预训练阶段增强多图像理解能力、提供详细图像知识、获得更长多模态上下文学习能力 | 1. 开源的交错数据集,如Zhu et al. (2024) 和 Laurencon et al. (2024) | 1. 进行标准过滤、去重等质量控制流程 |
OCR数据 | 将图像中的文本转换为可编辑格式,使模型更好地与人类价值观对齐 | 1. 开源和内部数据集,涵盖单页和多页输入,多种语言和密集文本布局 | 应用广泛的数据增强技术,如旋转、失真、颜色调整和噪声添加,提高模型的鲁棒性 |
知识数据 | 从多样化的来源组装一个全面的人类知识库,进一步增强模型的能力 | 1. 类似于文本预训练数据,从教科书、研究论文和其他学术材料中收集 | 为避免模型仅关注OCR信息,开发额外管道捕获嵌入在图像中的纯文本内容 |
代理数据 | 增强模型在代理任务中的接地和规划能力 | 1. 公开数据和内部平台收集的虚拟机环境截图和相应动作数据 | 无 |
视频数据 | 在预训练、冷却和长上下文激活阶段增强模型能力,使其理解长上下文序列和感知短视频片段中的精细时空对应关系 | 1. 开源数据集和内部网络规模视频数据,覆盖不同持续时间的视频 | 1. 对于长视频,设计管道生成密集字幕,严格限制合成密集视频描述数据的比重以减少幻觉风险 |
文本数据 | 为训练大型语言模型(LLMs)提供全面和高质量的数据 | 1. 覆盖五个领域:英语、中文、代码、数学与推理、知识 | 1. 对每个数据源进行严格的个体验证,评估其对整体训练配方的具体贡献 |
实验效果
参考文献:KIMI-VL TECHNICAL REPORT,https://github.com/MoonshotAI/Kimi-VL/blob/main/Kimi-VL.pdf
公众号大模型自然语言处理 作者:余俊晖
原文链接:https://mp.weixin.qq.com/s/z6jlbWbqbrOEJUIhT5Ajwg
