Notes on Keye-VL 1.5

快手提出了 Keye-VL 1.5, 一个强调 reasoning, video understanding 的 8B 多模态大模型。作者提出了 slow-fast video encoding strategy 来提高模型的视频理解能力,作者通过在预训练和后训练提高了模型的长上下文能力和 reasoning 能力

Author

Published

2025-09-11 11:33:31+0800

快手提出了 Keye-VL 1.5, 一个强调 reasoning, video understanding 的 8B 多模态大模型。作者提出了 slow-fast video encoding strategy 来提高模型的视频理解能力,作者通过在预训练和后训练提高了模型的长上下文能力和 reasoning 能力

Introduction

作者回顾了多模态大模型的进展,然后提到视频理解能力仍然是一个挑战。为了解决这个问题,作者提出了 Keye-VL-1.5, 一个 8B 的视频理解多模态大模型。

Keye-VL-1.5 主要做了三点改进:

  1. 在架构上,使用了 Slow-Fast Video Encoding
  2. 在预训练阶段,使用多个 stage 来提升模型的长上下文能力
  3. 在 post-training 阶段,提高模型的 reasoning 能力和 alignment 表现

Method

Architecture

Keye-VL 1.5 的架构与 Keye-VL 一致。

Keye-VL 1.5 主要做出的改进点为针对视频的 encoding 方式

作者回顾了已有 MLLM 处理视频的方式,比如 Qwen2.5-VL 使用 3D convolution 来 merge 相邻的两帧,Seed1.5-VL 采用了 Dynamic Frame-Resolution Sampling 技巧,来根据 budget 和处理的任务来动态调整采样率 (frame) 和每一帧的图片精度 (resolution)。

但是这些方法很难进行泛化。因此,作者在本文中就提出了 SlowFast video encoding stratrgy:

  1. Slow Pathway: 空间信息丰富(high resolution),时间信息简略 (low number of frames)
  2. Fast Pathway: 时间信息丰富(high number of frames),空间信息简略 (low resolution)

为了区分 slow/fast frames, 作者提出了一个基于 patch similarity 的 metric:

  1. 第一帧始终定义为 slow frame
  2. 接下来的每一帧,如果其和上一帧的相似度超过 95%95\%, 则定义为 fast frame; 反之则定义为 slow frame.

得到 slow/fast frames 之后,作者将 fast-frame 的 token budget 限制为 slow frame token budget 的 30%30\% 来平衡时间信息以及空间信息。接下来,作者使用二分搜索来决定 slow frame 的 token budget. 为了区分 slow frame 和 fast frame 的 token, 作者使用了特殊的 token 来进行分离。

最终的处理结果如下图所示

SlowFast Video Encoding

Pre-training

预训练的数据和 Keye-VL 基本一致,我们主要介绍改进的点

对于 Image caption 数据,作者认为这批数据可能会损害模型的指令跟随和 reasoning 能力,因此作者对数据进行了增广,主要是调整了数据的格式:

  1. QA, 数据格式为 <image, caption, [eos], question, answer>
  2. reverse QA, 数据格式为 <image, question, answer, [eos], caption>
  3. instruction following: 随机给一批数据作为输入,然后让模型基于特定 image 输出 caption

作者还构建了一个 trap question 来提高模型的 robustness 以及 faithfulness.

OCR 数据在 Keye-VL 的基础上加入了两点:

  1. Structured Document and Code Understanding: 基于 markdown 和 HTML 等数据来获取 code OCR 数据
  2. Instruction Following OCR: 基于特定指令进行 OCR

对于 grounding 数据,作者进一步加入了 temporal grounding 数据,作者首先使用 TEMPURA

来将短视频分割成若干个 video clips. 然后作者使用 SOTA MLLM 来过滤数据,最后作者基于 Gemini2.5 来生成对应的 QA.

预训练和 Keye-VL 一样,包含 3 个 stage

前两个 stage,作者将模型的上下文限制为 8K, 使用了 DP 和 Zero-2 来减少内存开销。在 stage 3, 作者将模型的上下文从 8K 扩展到 128K, 对应的 base frequency 从 1M 提升到 8M. 训练数据包括长视频,长文本和大规模图片。作者将优化策略调整为 Zero-1, CP 和 PP 来支持 long-context 的训练。训练时数据分布为 video:images

=24:50:26.

Post-training

Post-Training Pipeline

SFT 阶段使用了 7.5M 多模态 QA 样本进行训练。

MPO 阶段的数据相比 Keye-VL 有所减少,包含:

  1. 250K 开源样本
  2. 150K 纯文本数据
  3. 26K 人类标注数据

对于 reward model 的训练,作者使用了 SFT 和 RL 两个阶段。SFT 阶段的数据包括 R1-Reward 和 MMPR, 训练之后作者还是用比较短的 good response 来避免产生较长的回答

在 SFT 和 MPO 阶段之后,作者使用 LongCoT code-start 初步激活模型的 reasoning 能力。

作者构建了一个 5 部的自动化数据生成 pipeline, 如下图所示

LongCoT data generation pipeline

步骤如下:

  1. Multi-Source Data Collection and Enhancement:收集数据
  2. Multi-Path Reasoning Generation with Confidence Quantification: 基于 confidence 来挑选数据
  3. Comprehensive Two-Level Quality Assessment: 基于答案和过程的正确性来提高数据质量
  4. Human-in-the-Loop Quality Enhancement: 对于中等质量的数据请人类进一步进行标注
  5. Dynamic Quality Scoring and Data Utilization Strategy: 对数据进行打分,高质量数据进行上采样

接下来就是 General RL 过程。

对于通用的 RLVR 训练,作者使用了 GSPO 算法来进行训练。

在训练过程中,作者采取了 progressive hint sampling 方式,也就是提供不同程度的 hint 来提高模型的训练效率。作者将 hint 分为五个等级:

  1. Level 1 (Concept / Observation)
  2. Level 2 (Strategy / Method)
  3. Level 3 (Tools / Formula)
  4. Level 4 (Steps / Calculation)
  5. Level 5 (Complete Solution)

来提供不同程度的辅助,作者使用 Keye-VL 1.5 来确定最小的 hint level, 然后基于这个 level 提供信息进行 RL 的训练

为了进一步提高模型的表现,作者采用了一个和 Seed1.5-VL 一样的迭代式训练策略,即反复进行 SFT 和 RL 来降低训练成本,提高训练效率。

最后,再通用 RL 阶段之后,作者加入了 alignment RL 的训练来进行对齐,reward 包括三个方面:

  1. rule-based reward
  2. generative reward
  3. model-based reward

任务主要包括三个方面:

  1. instruction following
  2. format adherence
  3. preference alignment

数据介绍如下:

  1. instruction following:25 类硬约束,20 类软约束,数据包括 17K 多模态数据和 23K 纯文本数据,奖励包括 rule-based reward 和 generative reward
  2. reasoning: 12K 数学和逻辑推理数据
  3. RAG: 提高模型的搜索能力,作者使用 GSPO 算法进行训练

Experiments

模型表现如下

Performance of Keye-VL 1.5

接下来作者进行了消融实验。

首先是不同训练阶段对模型表现的影响,如下图所示

Ablation study on training strategy

实验结果显示,提高 SFT 训练数据可以有效提高模型在数学推理,逻辑推理和 OCR 任务上的表现。MPO 可以进一步提高模型的表现,Long CoT cold start 可以有效提高模型的 reasoning 表现。

作者还探究了 model merging 对模型表现的影响,作者首先基于 base model 和 OCR 数据训练得到 OCR expert, 然后进行 merge, 实验结果如下

Ablation study on model merging

实验结果显示,model merging 可以有效提高模型在 special domain 上的表现,并且还可以维持模型的通用能力

作者还发现:

  1. expert model 训练时间过长会影响最终 merge model 的表现
  2. expert mode 训练的学习率应该要设置比较小

接下来,作者探究了 alignment RL 对模型表现的影响,

Ablation on alignment RL

实验结果说明,alignment RL 可以在保持模型 reasoning 能力的同时提高模型的指令跟随能力

作者还探究了 hint 对模型表现的影响,使用不同 level hint 进行训练对模型表现影响的结果如下图所示

Ablation on hint level

实验结果显示,使用 high level 的 hint 可以有效提高模型输出的正确率。

最后作者探究了 rejection sampling 对模型表现的影响,实验结果如下图所示

Ablation on rejection sampling

结果发现,通过 rejection sampling,模型的表现有了进一步的提升。因此作者采用了 ST-RL-(RFT-SFT)-(RFT-RL) 的训练方式来进行训练

Conclusion

作者在本文中提出了 Keye-VL1.5, 一个强调 video understanding 和 reasoning 的 MLLM. Keye-VL 1.5 使用了 SlowFast video encoding strategy 来提高模型的效率和视频理解能力。作者详细介绍了模型的数据,训练和评估。

    Keye-VL 是快手在 25 年 7 月份提出的一个 8B 的多模态大模型,其亮点为短视频理解能力。预训练包括 4 个 stage,使用了 600B token,后训练包括 2 个 stage,用于提升模型的 reasoning 和 non-reasoning 能力。

    Introduction

    作者首先回顾了已有的 MLLM 工作,然后强调理解短视频仍然是一个很难的任务,特别是要求模型基于 video 和 audio 来理解视频。因此,在本文中,作者提出了 Kwai Keye-VL,一个 8B 的多模态大模型,主要用于短视频理解任务。

    Method

    Architecture

    Keye-VL 是一个标准的 ViT-MLP-LLM 的架构,其中,ViT 是 SigLIP-400M-384-14, MLP 是一个基于 SwiGLU 的 2 层 MLP,使用了和 Qwen2.5-VL 一样的 patch merge 方法,LLM 使用的是 Qwen3-8B,模型架构示意图如下

    Keye-VL model architecture

    作者针对 ViT 和 visual encoding 分别做了如下改进

    作者实现了 native resolution ViT,来处理不同分辨率的图片。

    具体做法为,作者基于 SigLIP-400M-384-14 来初始化 ViT。

    然后,作者首先采用了 interpolation 来将 ViT 的 position encoding 扩展到不同的图片精度下面去。

    接下来,作者提出了 2D RoPE 来进一步提升 position encoding 的表现。

    最后,作者加入了 NaViT 的 packing 技巧来继续预训练 ViT.

    在 ViT 预训练的过程中,作者使用了 500B 的 token

    Visual Encoding

    为了提升模型理解图片和视频的能力,作者针对图片和视频进行了进一步的处理。

    对于不同精度的图片,作者将最大 token 个数设置为 16384。

    对于视频,作者将每帧的 token 数限制在 [128,768][128,768], 每个视频的最大 token 个数设置为 24576

    对于提取的 frames,作者重新计算了 FPS, 然后在 3D RoPE 中让时间维度与真实时间严格对齐。

    Pre-training

    Data

    预训练数据一共包括 600B token,覆盖了 6 个类别:

    对于源数据,作者进行了数据清洗:

    1. 使用 CLIP 对数据进行打分,然后过滤掉低质量的数据
    2. 使用开源的 MLLM 作为 discriminator 来选择高质量的数据
    3. 去重

    Training Recipe

    预训练包括 4 个 stage:

    作者发现,预训练后的模型在下游任务上的表现对训练数据配比非常敏感。为了解决这个问题,在最后一个训练阶段,作者使用了一个 merging 的技巧,来保持模型的能力。

    Post-training

    post-training 阶段一共包含了 2 个 step, 5 个 stage, 第一个 step 包含 2 个 stage,用于提升模型的 non-reasoning 能力。第二个 step 包含 3 个 stage, 用于提升模型的 reasoning 能力

    No-reasoning Training

    第一个 step 是 non-reasoning training, 包含了 SFT 和 MPO 两个 stage, 训练 pipeline 如下图所示

    Non reasoning training pipeline

    SFT SFT 阶段一共使用了 5M 的多模态 QA 样本,为了提升数据的多样性,作者使用 TaskGalaxy 来将数据分类为 70,000 种任务类型,然后作者对每条数据,使用 MLLM 评估问题的难度,来过滤掉过于简单的问题。最后,作者请人类来进行标注,保证数据的可靠性。

    MPO 训练方面,作者使用了 MPO 进行训练。 数据方面,作者使用了:

    1. 400,000 开源的数据,作者主要进行了去重以及过滤低质量的数据
    2. 50,000 偏好数据,基于 MM-RLHF 和 MMPR 等数据构建,然后构建高质量的 negative examples
    3. 10,000 条 self-improvement 样本:基于 benchmark 和人类反馈,使用 SFT model 的回答作为 chosen samples, 然后基于 reward model 或者 rule-based rewards 评估模型输出,选择分数最低的座位 rejected samples
    4. 90,000 纯文本样本: in-house data
    5. 30,000 人类标注样本:使用开源和闭源模型进行回答,然后请人类进行排序

    Reasoning Training

    第二个 step 是 reasoning training, 包含了 CoT Cold-Start, Mix-Mode RL 和 Iterative Alignment 三个 stage, 训练 pipeline 如下图所示

    Non reasoning training pipeline

    CoT cold-start 作者收集了如下数据:

    训练时,所有样本混在一起进行训练。作者认为,将日常使用的 SFT 数据和 reasoning 数据放在一起训练,可以保持模型在通用场景下的能力。

    Mix-Mode RL 训练数据主要包括 4 个任务:

    1. Multimodal perception: 复杂文本识别和 counting 任务
    2. Multimodal reasoning: MMPR 和 MM-Eureka
    3. Text-based mathematical reasoning: 数学推理问题
    4. Agentic reasoning: 从 DeepEyes 中获取的 47,000 条样本

    作者使用了 GRPO 来训练,reward 基于 MLLM 进行,包括最终结果和思考过程。

    作者还使用 RL 来提高模型的短视频理解能力。作者发现 RL 训练之后,模型的短视频理解能力有了大幅度的提升。

    Iterative Alignment 这一步主要解决模型的重复性输出,或者 reasoning logic 不对的问题。作者使用了 rejection-sampling 数据,包括 instruction following, OCR, mathematics, charts, counting 等。

    作者基于 Rule-based score 和 model-based score 来进行打分,最后使用 MPO 算法进行训练。通过这个过程,模型的输出格式和动态思考能力都有了提升。

    Evaluation

    作者首先评估了 ViT 的表现,主要有两点:

    1. 在 SigLIP 的基础上加入 1D interpolation 之后,模型的表现所有下降,作者认为这是由于 1D 的 position encoding 无法识别 2D 的 patch 排列导致的
    2. 加入 2D RoPE 之后,ViT 与 SigLIP 的表现持平

    接下来是 Keye-VL 在公开 benchmark 上的表现,如下图所示

    Performance of Keye-VL

    作者还构建了一个内部的 benchmark, 用于进一步评估模型的能力。

    已有 benchmark 的问题:

    1. contamination
    2. 多语种覆盖不足:大部分 benchmark 都是英文的
    3. 任务和 domain 覆盖不足:大部分 benchmark 只考虑基本的 perception 和 reasoning 能力
    4. 任务难度和评估格式单调

    构建 benchmark 的原则:

    1. 在中文场景下的真实用户需求,open ended QA, 包括短视频理解能力
    2. 细粒度的评估
    3. 多样性高
    4. 没有 contamination
    5. 多角度评估策略: 正确性,相关性,理解性,流畅性和创造性

    结果如下:

    Performance of Keye-VL on the internal benchmark

    分析:

    1. Keye-VL 在 OCR 等任务上的表现有所不足,其细粒度的识别能力也有所不足,会认错人。有时候还会忽略掉一些信息
    2. 描述 temporal action 时会出现不稳定性,模型对镜头的感知能力不足。需要准确定位时间等
    3. 在需要逻辑链条和数学计算时,模型能力不足,对于特定 domain 上的任务会出现事实性错误。写作时,模型倾向于输出通用的回答,而不是定制化的回答。

    Discussion

    作者讨论了两点关键发现:

    1. reasoning 和 non-reasoning 的数据可以互相促进彼此的表现,这与 ERNIE 4.5 的发现一致。
    2. 作者认为通过 mix-mode 的训练,模型在简单和复杂任务上的表现都可以提升,因此作者使用了混合数据来进行训练,结果发现效果很好。

    Conclusion

    本文中,作者提出了 Keye-VL 8B,一个短视频理解能力出色的多模态大模型,作者详细介绍了 pre-training 和 post-training. 其中,mix-mode training 可以有效提高模型的表现。

    作者认为 Keye-VL 有如下改进的地方:

    1. 并没有优化 video encoder 或者是改进 video encoding 的策略
    2. Keye-VL 的视觉感知能力有进一步的提升空间,其 “reasoning with image” 能力依然落后于领先的 reasoning model
    3. 使用一个额外的 MLLM 作为 reward model 会极大消耗算力,如何构建一个更可靠更高效的 reward model 需要进一步探索。

    Reference