站点图标 高效码农:前沿AI、IT技术与开发者分享

快手重磅发布Kwai Keye-VL 1.5:80亿参数如何颠覆视频理解?

Kwai Keye-VL 1.5:重新定义视频理解的多模态大模型

概述:为什么视频理解如此困难?

视频理解一直是人工智能领域最具挑战性的任务之一。与静态图像不同,视频不仅包含丰富的空间信息,还具有复杂的时间维度。现有的多模态大模型在处理视频时往往面临一个根本性困境:如何在有限的计算资源下,平衡时间覆盖范围和空间分辨率?增加帧数意味着降低每帧的分辨率,而提高分辨率又不得不减少帧数。这个难题一直制约着视频理解模型的发展。

Kwai Keye-VL 1.5 的出现彻底改变了这一局面。作为快手Keye团队推出的新一代多模态大语言模型,它在仅80亿参数规模下,在视频理解任务上实现了突破性进展,同时在通用视觉-语言任务上保持强劲性能。

核心创新:三大技术突破

Slow-Fast视频编码策略:智能分配计算资源

Keye-VL 1.5的核心创新之一是Slow-Fast视频编码策略。这一策略模仿人类观看视频的方式——我们对快速变化的场景会投入更多注意力,而对相对静态的画面则只需瞥一眼。

技术实现原理
模型首先通过基于图像块的相似度函数分析视频帧之间的差异。第一帧总是被标记为”慢帧”(Slow frame),后续每一帧都会与最新的慢帧进行比较。如果相似度超过95%,该帧被标记为”快帧”(Fast frame);否则成为新的慢帧。

慢帧处理 pathway 使用高分辨率但帧数较少,确保关键视觉细节不被丢失;快帧处理 pathway 则使用较低分辨率但覆盖更多帧数,保证时间连续性。快帧的token预算被设置为慢帧的30%,从而在总token预算内实现最优平衡。

实际应用场景
在体育赛事分析中,Slow-Fast策略能够对关键时刻(如进球瞬间)使用高分辨率分析,而对球员跑位等相对连续的动作使用低分辨率但高时间覆盖率的处理方式。这种自适应方法大幅提升了视频理解的效率和准确性。

渐进式四阶段预训练:从8K到128K的上下文扩展

Keye-VL 1.5采用精心设计的四阶段预训练策略,系统地扩展模型的上下文长度。

阶段一:跨模态对齐
在此阶段,视觉编码器和语言模型的参数被冻结,仅训练投影MLP层。通过大规模数据集,建立强大的跨模态特征对齐,为后续学习阶段奠定基础。

阶段二:多任务预训练
所有模型参数解冻,进行端到端优化。训练数据涵盖图像描述、OCR、定位、VQA和交错图文数据等多种视觉-语言任务,显著增强模型的基础视觉理解能力。

阶段三:退火阶段
在精选的高质量数据上进行微调,解决第二阶段大规模训练中高质量样本曝光不足的问题。通过优化的学习策略和数据混合,进一步提升模型的细腻理解能力。

序列长度扩展到128K
在前两个阶段,序列长度限制在8K token,采用数据并行和Zero-2优化策略减少内存开销。在最终退火阶段,将上下文长度从8K扩展到128K,同时调整RoPE逆频率,并切换到Zero-1优化策略,采用上下文并行和管道并行支持长上下文训练。

数据配比优化
在128K上下文长度下,通过控制实验确定了最优的token分配比例:24%分配给视频,50%分配给图像,26%分配给文本。这一比例在视觉能力(图像和视频理解)和文本能力之间取得了良好平衡。

全面后训练流程:推理增强与人类偏好对齐

后训练过程专注于两个关键方面:增强推理能力和对齐人类偏好。

5步思维链数据构建
设计了一个全面的数据构建流程,生成高质量的冷启动数据。通过多路径推理生成和置信度量化,为每个增强的QA对生成多个推理轨迹,并系统性地提取和量化模型在逐步和整体响应层面的置信度。

基于GSPO的强化学习
采用GSPO算法进行可验证奖励的强化学习训练。对于模型在多次尝试中持续失败的困难样本,提供不同级别的提示,提高采样效率。使用RL模型生成更好的SFT数据,然后基于SFT模型进行下一轮RL训练,持续迭代。

渐进式提示采样
基于最小干预原则设计分层提示系统,分为五个级别:概念/观察、策略/方法、工具/公式、步骤/计算和完整解决方案。对于每个困难案例,将提示信息放在查询之后,从低级别到高级别逐步提供提示。

对齐强化学习
通过多样化任务系统和奖励建模框架,提升模型在指令遵循、格式遵守、偏好对齐和RAG能力方面的表现。奖励系统包括基于规则的奖励、生成奖励和基于模型的奖励,引导模型产生准确、道德和情境适当的输出。

模型架构与技术实现

Keye-VL 1.5采用经典的多模态大语言模型架构,包含三个核心组件:视觉Transformer(ViT)、MLP投影器和语言解码器。

视觉编码器
使用开源的SigLIP-400M-384-14作为视觉编码器,实现原生动态分辨率处理。通过插值技术将固定长度的可学习位置嵌入扩展为分辨率自适应位置嵌入,保持预训练工作流程。引入2D旋转位置嵌入(RoPE)增强视觉信息建模能力,并结合NaViT打包和FlashAttention技术,在不同分辨率的图像上继续训练ViT。

语言解码器
采用广泛使用的Qwen3-8B作为语言解码器,提供通用的世界语义知识理解能力。

投影器
随机初始化其参数,并在第一阶段进行全面预训练。

训练数据与策略

多样化高质量数据管道

Keye-VL 1.5的训练数据涵盖了六个主要类别:图像描述数据、OCR和VQA数据、定位和计数数据、交错文本-图像数据、视频数据以及纯文本数据。总数据量超过1万亿token,来自公共数据集和专有内部数据。

数据质量控制
针对大规模中等质量数据,使用CLIP分数进行初步过滤;针对小规模高质量数据,使用开源MLLM作为判别器进行数据选择。同时执行严格的基于图像的去重操作,避免训练语料库和评估基准之间的潜在数据泄露。

图像描述数据增强
为了避免模型退化为标题生成器并损害其指令跟随和复杂推理能力,实施了多描述/问答对的数据增强策略,包括多种数据格式和指令跟随图像描述/QA任务。

OCR与VQA数据
通过多种技术合成内部中文数据,包括使用SOTA MLLM合成、字体渲染工具合成、结构化文档和代码理解以及指令跟随OCR数据集。

训练基础设施优化

为高效训练MLLM,Keye-VL 1.5在基础设施层面进行了深度优化,解决三大挑战:架构异构性、负载不平衡和I/O瓶颈。

异构混合并行策略
针对ViT和LLM完全不同的计算特性和资源需求,设计异构混合并行策略。对计算模式相对固定的ViT组件,仅使用数据并行(DP)最大化吞吐量;对高度参数化和内存密集的LLM,采用结合管道(PP)、张量(TP)和数据并行(DP)的混合并行策略。

动态负载平衡机制
预估计每个样本的时间复杂度,然后使用贪心算法在不同GPU间分配样本,平衡所有GPU的总步长时间,提高整体硬件利用率。

灵活可扩展的数据加载器
设计灵活可扩展的数据加载器,深度感知并行训练的拓扑结构。实现I/O服务器架构,将视频解码等CPU密集型任务从训练节点卸载,有效解决复杂媒体处理引起的CPU瓶颈。

性能评估与实验结果

零样本图像分类能力

通过广泛的零样本图像分类基准分析验证了继续训练的原生分辨率ViT能够捕获有希望的视觉表示。评估覆盖六个基准数据集:ImageNet-1K、ImageNet-V2、ImageNet-A、ImageNet-R、ImageNet-S和ObjectNet。

实验结果表明,加入2D RoPE修改后,ViT能够清晰感知图像形状,与基础SigLIP性能显示竞争性结果(最佳和次佳结果)。性能提升的原因可能是继续预训练语料库与MLLM共享相同分布,而非图像-文本匹配任务。

Slow-Fast视频编码策略验证

在VideoMME基准上对不同设置下的Keye-VL-1.5-Base和Qwen-2.5-VL进行比较分析。Keye-VL-1.5-Base是配备SlowFast技术的预训练模型,而Qwen-2.5-VL采用2D卷积合并技术进行视频压缩。

关键发现

  • 在VideoMME的整体得分上,Keye-VL-1.5-Base表现出与Qwen-2.5-VL相似的性能趋势,但Keye-VL-1.5-Base在384帧处达到最佳性能,Qwen在128帧处达到峰值
  • 在子类别性能上,Keye-VL-1.5-Base在短、中、长视频三个类别上的拐点出现得更晚,表明SlowFast策略使LLM能够更有效地整合多帧信息
  • 在LLM端的视频token使用上,Keye-VL-1.5-Base在帧数低时生成更多视觉token,在帧数高时生成更少视觉token,表明SlowFast策略更加灵活,计算资源利用更高效
  • 在不同FPS设置下,Keye-VL-1.5-Base的评估结果比Qwen-2.5-VL更稳定

公共基准测试结果

在通用视觉-语言任务上,Keye-VL-1.5在大多数基准测试中表现出竞争性性能,通常达到SOTA或接近SOTA的结果,总体上优于其他模型。

在大型通用基准测试OpenCompass、MMMU_val和AI2D上,Keye-VL-1.5分别获得79.5%、71.4%和86.7%的分数,超过所有其他模型。在MMBench和MMStar上,Keye-VL也实现了最佳性能。

在数学推理任务中,Keye-VL-1.5显著优于Qwen2.5-VL 8B和InternVL3-8B,与MiMo-VL 7B-RL实现相当的结果。

在以视频为中心的场景中,Keye-VL-1.5表现出优于其他开源模型的能力。在公共视频基准测试中,Keye-VL-1.5显著优于其他模型,特别是在Video-MMMU上,绝对改进达到6.5%。

内部基准测试

尽管在广泛的公共视频基准上进行了大量评估,但这些基准存在许多局限性,需要专注于开发专有的内部评估套件。

主要问题包括

  • 有限的任务覆盖范围:当前公开可用的基准主要关注基本感知和简单推理能力,对专业领域和时间理解任务的覆盖不足
  • 过于简化的问题格式:现有评估任务倾向于采用过于简单的提问方式,无法充分反映现实世界的复杂性
  • 限制性的答案方法:为了便于准确性计算,问题通常被抽象为是/否响应或多选格式,显著偏离自然用户交互模式
  • 数据污染风险:由于数据集公开可用,模型在训练过程中可能已经遇到这些数据,导致性能指标膨胀和评估有效性受损
  • 语言和文化偏见:许多现有测试集对英语场景存在偏见,限制了我们对模型在中文使用环境中性能的理解

实际应用案例

视频时间定位案例

在一个26秒的视频中,创作者详细介绍了充电宝的性能、优势和特点。手提包仅在视频最后约两秒钟出现。Keye-VL-1.5准确 pinpoint 了这个时间范围,精度达到0.1秒。

提示:手提包在这个视频中出现的时间段是什么?
模型响应:手提包在视频中出现的时间段是从22.3秒到23.8秒,即[22.3s-23.8s]

视频行为理解案例

在一个视频中,字幕显示狗爸爸通过按住小狗来阻止小狗吃餐桌上的食物。问题询问大狗咬小狗耳朵的原因。Keye-VL-1.5准确关联视频内容和字幕,确定大狗咬小狗耳朵的目的与按住小狗相同——都是为了教导小狗不要吃餐桌上的食物。

提示:大狗咬小狗耳朵的目的是什么?
模型响应:大狗咬小狗耳朵是为了纠正它试图从桌子上偷食物不当行为,使用轻咬来传递警告并使小狗服从。

复杂场景描述案例

在一个描述森林中下冰雹的罕见现象的视频中,即使没有先验知识,人类观众也很容易将下落的冰雹误认为是花瓣或雨滴。虽然Keye-VL-1.5未能将下落物体识别为冰雹,但它提到了降水,其余内容被正确识别。

提示:请详细描述视频中的场景。
模型响应:视频的主要场景是一个被茂密森林包围的潮湿角落。画面中央是一个古老破损的石阶,石头有裂缝,表面覆盖着绿色的苔藓和杂草,呈现出风化和磨损的外观。周围是高耸的深色树木,树枝上挂着新鲜绿叶。柔和漫射的光线透过树叶,为场景增添了一层朦胧的氛围。地面上散落着白色小花或真菌,与绿色苔藓交织在一起,形成了充满活力的地面覆盖物。背景中,森林向远处延伸,树木逐渐模糊,为场景增添了深度和神秘感。空气中似乎充满了细密的雾气,使地面和石阶显得潮湿,偶尔有雨滴落下,进一步增强了潮湿的气氛。整体色调以绿色和棕色为主,呈现出一个宁静、自然且略带荒凉的原始森林图像。

安装与使用指南

环境安装

Keye-VL-1.5可以通过pip简单安装:

pip install keye-vl-utils

基础推理示例

from transformers import AutoModel, AutoTokenizer, AutoProcessor
from keye_vl_utils import process_vision_info

# 加载模型
model_path = "Kwai-Keye/Keye-VL-1.5-8B"

model = AutoModel.from_pretrained(
    model_path,
    torch_dtype="auto",
    device_map="auto",
    trust_remote_code=True,
)

processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True)

# 非思维模式
messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "image": "https://example.com/image.jpg",
            },
            {"type": "text", "text": "描述这张图片。/no_think"},
        ],
    }
]

# 准备推理
text = processor.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs, mm_processor_kwargs = process_vision_info(messages)
inputs = processor(
    text=[text],
    images=image_inputs,
    videos=video_inputs,
    padding=True,
    return_tensors="pt",
    **mm_processor_kwargs
)
inputs = inputs.to("cuda")

# 推理生成输出
generated_ids = model.generate(**inputs, max_new_tokens=1024)
generated_ids_trimmed = [
    out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)

使用vLLM部署

对于快速部署和推理,推荐使用vLLM:

pip install keye-vl-utils "vllm>=0.9.2"

离线推理示例:

from transformers import AutoProcessor
from vllm import LLM, SamplingParams
from keye_vl_utils import process_vision_info

model_path = "/path/to/Keye-VL-1.5-8B"

llm = LLM(
    model=model_path,
    limit_mm_per_prompt={"image": 10, "video": 10},
    trust_remote_code=True,
)

sampling_params = SamplingParams(
    temperature=0.3,
    max_tokens=256,
)

# 视频消息示例
video_messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "video",
                "video": "http://example.com/video.mp4",
            },
            {"type": "text", "text": "描述这个视频。/think"},
        ],
    },
]

processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True)
prompt = processor.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)
image_inputs, video_inputs, video_kwargs = process_vision_info(
    messages, return_video_kwargs=True
)

mm_data = {}
if image_inputs is not None:
    mm_data["image"] = image_inputs
if video_inputs is not None:
    mm_data["video"] = video_inputs

llm_inputs = {
    "prompt": prompt,
    "multi_modal_data": mm_data,
    "mm_processor_kwargs": video_kwargs,
}

outputs = llm.generate([llm_inputs], sampling_params=sampling_params)
generated_text = outputs[0].outputs[0].text

print(generated_text)

性能优势与实际价值

Keye-VL-1.5-8B在多个维度展现出显著优势:

卓越的感知能力:在权威的公共视频基准测试(包括Video-MME、Video-MMMU、TempCompass、LongVideoBench和MMVU)上,模型性能显著超过同类规模的顶级模型。

强大的推理能力:在需要复杂逻辑推理和数学问题解决的评估集(如WeMath、MathVerse和LogicVista)上,展现出强劲的性能曲线,突显其先进的逻辑推理和复杂定量问题解决能力。

实用的上下文长度:支持长达128K token的上下文长度,能够处理更长的视频和更复杂的视觉内容,为实际应用提供更多可能性。

反思与见解

在深入研究Keye-VL 1.5的技术细节后,我深刻体会到多模态模型发展的几个关键趋势。首先,单纯增加模型参数规模已经不是提升性能的最优路径,而是需要通过架构创新和训练策略的精细化设计来实现突破。Slow-Fast编码策略的成功证明,模仿人类认知机制的计算分配方式往往能带来意想不到的效果提升。

其次,高质量的训练数据比以往任何时候都更加重要。Keye-VL团队在数据清洗、增强和质量控制上的投入,直接反映在模型的最终性能上。这提示我们,在追求模型架构创新的同时,绝不能忽视数据工程的重要性。

最后,我注意到强化学习在后训练阶段的作

退出移动版