news 2026/10/19 4:14:21

【Jev】VideoJev: System One Model for Video Understanding and Interaction

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Jev】VideoJev: System One Model for Video Understanding and Interaction

note

  • VideoJev:Qwen3.5 + Scoring Head + 两阶段多任务 SFT + 视频 KV Cache 复用
  • VideoJev 把传统视频大模型的「生成式问答」,改成了「直接对候选答案或视频时间位置打分」,并通过视频缓存和多 Query 联合推理降低时延。它比一般的 Yes/No Decision 模型更值得关注的一点是:把视频时间定位(Temporal Grounding)和视频多选问答(Video QA)统一成同一种候选评分机制。
  • 三个贡献:
    • 任务统一:用共享 Scoring Head 同时处理时间定位和视频多选问答,而不只是普通分类。
    • 视频计算复用:通过 Cached / Joint Inference 解决同一视频被反复提问的计算浪费。
    • 针对视频时序定位的训练设计:BCE + SoftIoU,兼顾逐时间位置判断与完整事件区间。
  • 研究动机: 传统 Video-LLM 依赖自回归生成答案,存在推理时延高、重复处理视频等问题。
  • 核心方法:
    • 统一决策架构: 基于 Qwen3.5 增加 PointerHead(两个 Linear + QK 点积),将视频时间定位和多选问答统一为 Query-Candidate 匹配打分。
    • 两阶段训练: 先冻结 Backbone 训练 Head,再联合微调语言 Backbone;时间定位采用 BCE + SoftIoU,多选问答采用 CE。
    • 高效推理: 支持视频 KV Cache 复用及多 Query 联合推理,避免重复编码与自回归生成。
  • 实验结果: 相同训练数据下,相比 Qwen3.5 AR SFT,视频问答准确率由 72.8% 提升至 74.7%,时间定位 mIoU 由 64.1 提升至 65.4。

文章目录

  • note
    • 一、研究动机
    • 二、论文核心
      • 1. 统一架构:共享打分头
      • 2. 时序定位:从"选区间"到"拼片段"
      • 3. 消除位置偏见
      • 4. 可复用的视觉计算(本文效率核心)
      • 5. 训练方案
    • 三、实验结果
      • 时序定位(3 个 benchmark)
      • 多选视频问答(4 个 benchmark)
      • 与自回归微调的受控对比(相同数据 + 相同设置)
    • 四、分析

一、研究动机

VideoJev: System One Model for Video Understanding and Interaction
⚡️首个视频理解Jev模型,大幅度提高精度的同时提速3-100倍
🔗https://huggingface.co/papers/2610.18615
🌟https://github.com/MCG-NJU/VideoJEV

概括:VideoJev 把"看视频做决策"这件事,从"逐字生成答案"改成了"直接给选项打分",让视觉智能体既能理解语义,又能毫秒级响应。

视觉智能体的核心痛点不是"看不懂",而是"反应慢"。

现有方案存在一条难以弥合的鸿沟:

路线优势致命短板
判别式视觉模型预测高效依赖任务特定的模型设计、标签空间固定
视频多模态大模型(MLLM)语义理解广、语言接口灵活决策必须靠逐 token 自回归生成——生成时间戳或答案文本,哪怕最终输出只是一个紧凑的结构化选择

而智能体交互的真实场景是:同一个视频,连续追问。一个做饭助手要先确认"盐加了没",再决定"下一步加什么"。每一次追问都重新编码视频、重新生成一遍,计算浪费极其严重。

这正是 System One 范式的用武之地——Jev 已经证明,可以输出"类型化的概率判断"供软件直接使用,无需逐 token 生成。但 Jev 面向的是图像,视频还多了一层要求:时间结构,以及跨查询共享昂贵的视觉上下文。

核心洞察:把视频理解统一成"结构化判断"(structured judgment),就能在不牺牲语义灵活性的前提下,获得高效、可复用的决策接口。


二、论文核心

VideoJev 围绕两条原则构建:直接候选打分+可复用的视觉计算。

1. 统一架构:共享打分头

关键改造(对预训练 MLLM 动刀):

  • 删掉最后的 MLP 层和语言模型输出头
  • 新增两个特殊 token:<|option_end|>(候选读出)和<|decide|>(查询级决策读出),初始化自<|im_end|>
  • 两个线性投影把隐状态映射到 512 维并归一化,用余弦相似度算 logit:

s i = 10 u ⊤ v i + b s_i = 10 \, u^\top v_i + bsi​=10u⊤vi​+b

固定缩放系数 10 + 可学习偏置 b,控制输出 logit 的量级。

一个头,两种任务,靠候选与输出规则区分:

任务候选监督方式输出
时序定位(Temporal Grounding)时间戳文本区间多标签二分类 BCE + 软 IoU 损失解码出连续事件片段
多选视频问答(Video QA)答案文本选项交叉熵(softmax)最高概率选项

对应头的代码:

classPointerHead(nn.Module):"""One query/key similarity per native two-frame temporal group."""def__init__(self,hidden,dimension=256,head_norm='none',*,similarity='dot_product',logit_scale=10.0):super().__init__()ifhead_normnotin('none','layernorm'):raiseValueError('Unknown pointer head normalization')ifsimilaritynotin('dot_product','cosine'):raiseValueError('Unknown pointer head similarity')ifnotmath.isfinite(logit_scale)orlogit_scale<=0:raiseValueError('Pointer head logit scale must be finite and positive')self.similarity=similarity self.head_norm=head_norm self.q=nn.Linear(hidden,dimension)self.k=nn.Linear(hidden,dimension)self.bias=nn.Parameter(torch.zeros(()))self.dimension=dimension self.scale=dimension**-.5ifsimilarity=='dot_product'elsefloat(logit_scale)nn.init.normal_(self.q.weight,std=.005)nn.init.normal_(self.k.weight,std=.005)nn.init.zeros_(self.q.bias)nn.init.zeros_(self.k.bias)# Keep the historical initialization/RNG order and state keys unchanged# when disabled. Each branch has its own learnable affine parameters.ifhead_norm=='layernorm':self.q_norm=nn.LayerNorm(hidden,eps=1e-5,elementwise_affine=True)self.k_norm=nn.LayerNorm(hidden,eps=1e-5,elementwise_affine=True)defforward(self,pairs,query):# FP32 scoring, including under AMP.ifself.head_norm=='layernorm':keys=self.k(self.k_norm(pairs.float()))q=self.q(self.q_norm(query.float()))else:keys=self.k(pairs.float())q=self.q(query.float())ifself.similarity=='cosine':# Normalize the projected vectors, not the incoming LLM features.# The scale is fixed; the existing scalar bias remains trainable.keys=nn.functional.normalize(keys,dim=-1,eps=1e-6)q=nn.functional.normalize(q,dim=-1,eps=1e-6)returntorch.einsum('bgd,bd->bg',keys,q)*self.scale+self.bias

2. 时序定位:从"选区间"到"拼片段"

  • 骨干网络对时间做 2 倍压缩,每两帧一组,得到 K 个候选区间
  • BCE 损失监督每个区间是否落在标注事件内(多标签,允许多个区间同属一个事件)
  • 软 IoU 损失(按区间时长加权)显式奖励"覆盖完整事件",弥补 BCE 只看局部不看病程整体的缺陷
  • 解码:用固定阈值 τ=0.25 调整 logit,Kadane 算法 O(K) 时间找出和最大的连续非空区间

3. 消除位置偏见

训练时对不依赖选项位置的题目做可复现、与答案无关的排列打乱并更新正确项索引;涉及选项位置或前序轮次的题目保留原顺序。推理时按给定顺序,取最高p i p_ipi​。

4. 可复用的视觉计算(本文效率核心)

因果语言模型天然让视频前缀独立于后续查询,因此:

  • Cached 推理:视频编码 + prefill 一次,后续查询从缓存分支,只需跑查询/候选/读出 token
  • Joint 推理:多个查询及其候选列表共用一个视频前缀,各带独立<|decide|>,一次前向拿全部分数
  • 训练同款布局:同视频的多查询拼接,共享视频计算

5. 训练方案

  • 骨干:Qwen3.5-4B(稠密)与 Qwen3.6-35B-A3B(MoE)
  • 数据:
    • 时序定位:TimeLens-100K + TimeLens2-93K,区间转候选级标签
    • 多选 QA:约24 万题 / 1.9 万视频的自建语料,涵盖游戏、体育、烹饪、音乐舞蹈、户外、手工,视频 4 分钟至近 2 小时
  • 两阶段训练:先冻结骨干、训新打分头(让打分头在稳定表征空间里起步,类比 MLLM 的 projector 对齐),再微调语言骨干

Video-LLM 时间定位训练流程

阶段训练参数Loss
Stage 1:Head Warmup只训练新增 Scoring Head,冻结 BackboneGrounding:BCE;QA:CE
Stage 2:Joint Training训练语言 Backbone、标记 Embedding 和 Head,视觉编码器保持冻结Grounding:BCE + 2×SoftIoU;QA:CE

训练数据包括:

  • TimeLens-100K
  • TimeLens2-93K
  • 团队整理的约19K 视频、240K 道多选问题

这里最有意义的是SoftIoU Loss:除了判断每个时间位置是否属于事件,还直接优化预测时间段与 GT 时间段的整体重合程度。论文消融显示,加入 SoftIoU 后:

  • Grounding 平均 mIoU:60.7 → 65.3
  • 提升 4.6 个百分点

三、实验结果

时序定位(3 个 benchmark)

相对各自骨干的Instruct 模式,VideoJev-4B 与 VideoJev-35B-A3B 的平均 mIoU 分别提升 6.7 / 10.8 点,实测推理加速2.8–3.1×。

多选视频问答(4 个 benchmark)

两个模型性能与其骨干的 Thinking 模式相当,同时推理加速超过 100×。(计时生成式基线同样复用了视频前缀,以保证对比公平。)

与自回归微调的受控对比(相同数据 + 相同设置)

模型平均 grounding mIoU 优势平均 QA 分数优势
VideoJev-4B vs 自回归微调+1.3+1.9

这直接证明:性能增益来自"直接决策学习"本身,而非单纯数据红利。


四、分析

强在哪里

  1. 范式迁移做得干净。用"候选打分 + 输出规则"这一个杠杆撬动了两类任务,既不牺牲 MLLM 的语义先验,又彻底绕开生成开销。
  2. 效率与质量兼得,且可组合。Cached 适合流式追问,Joint 适合批量查询,同一套视频前缀机制在训练和推理对齐,是真正的系统工程闭环。
  3. 消融有说服力。与自回归微调的等数据对照,把"架构收益"从"数据收益"里剥离出来,论证链完整。

需要留意的边界

  1. 任务形式受限。统一接口目前只覆盖"时序定位 + 多选",开放生成(描述、长回答、工具调用)仍需另想办法,作者也把"开放行为"寄托于"结构化判断的组合"而非直接生成。
  2. 阈值与解码依赖超参。τ=0.25、窗口 1、Kadane 解码都是经验设定,在极长视频或稀疏事件上是否鲁棒,需更多 ablation。
  3. 位置打乱的副作用值得审视。多数题打乱是好事,但"依赖选项位置"的题需保留原序——这个判定本身若有误,就会成为隐患。
  4. 数据透明度。24 万 QA 为内部自建语料,外部难以复现与横向对比;骨干版本(Qwen3.5/3.6)也较新,需留意其官方基线是否对等。
  5. 速度数字的口径。100× 是与 Thinking 模式比,而非与 Instruct 或纯生成比;Cached/Joint 的加速还依赖命中率与批大小,落地时实测为准。

总体判断:这是一篇"动机清晰—设计统一—工程扎实"的工作,核心价值不在于提出新损失或新模块,而在于重新定义了视频智能体的决策接口——把昂贵的理解变成可缓存、可批处理的打分,让视频 MLLM 从"会回答"走向"能干活"。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 4:14:01

Open Code Review:基于Git+CLI+LLM的开源式代码审查范式

1. “open-code-review”不是工具名&#xff0c;而是一类新型代码审查范式的代号很多人第一次看到“open-code-review”这个词&#xff0c;第一反应是——这是某个新开源项目的名称&#xff1f;是不是像git或prettier那样&#xff0c;装个 CLI 就能跑起来&#xff1f;我最初也这…

作者头像 李华
网站建设 2026/10/19 4:13:38

NTP网络子母钟系统断电场景风险与应对策略

关键词&#xff1a;数字子母钟、gps子母钟系统、ntp子母钟、NTP子钟NTP网络子母钟系统的可靠性不能只依靠简单的“掉电保存参数”功能&#xff0c;项目评审、现场验收更关注不同断电工况下系统的动态表现&#xff1a;母钟上电后时间基准如何恢复、是否引发子钟时间跳变倒走&…

作者头像 李华
网站建设 2026/10/19 4:13:32

ObjectARX自定义实体实例:从AcDbEntity派生到CAD原生图元

简介&#xff1a;ObjectARX自定义实体是AutoCAD二次开发中的核心环节&#xff0c;这份实例以创建简单直线实体为切入点&#xff0c;面向熟悉C和VC的CAD开发者&#xff0c;完整展示从项目初始化到实体注册的编码流程。资源压缩包共含70个文件&#xff0c;以头文件h、源文件cpp、…

作者头像 李华
网站建设 2026/10/19 4:12:46

开源代码审查工具:基于AST与规则引擎的自动化实践

刚接手团队里代码审查这件麻烦事的时候&#xff0c;我最大的感受就是&#xff1a;人肉 review 太累了。每天十几个 MR 堆在那里&#xff0c;每个都要逐行看&#xff0c;等看完后面又堆上来一批&#xff0c;更别提那些反复出现的低级问题——硬编码密钥、SQL 拼接、空指针隐患—…

作者头像 李华
网站建设 2026/10/19 4:12:30

2026毕设实战:SSM+Vue酒店管理系统设计与实现全攻略

1. 项目概述与选题价值又到了一年一度的毕业设计季节&#xff0c;每年这个时候&#xff0c;后台总有不少同学来问我&#xff1a;"酒店管理系统这个题目还能不能做&#xff1f;""SSM Vue 是不是已经过时了&#xff1f;" 我的答案一直是&#xff1a;能做&am…

作者头像 李华
网站建设 2026/10/19 4:12:12

模拟前端芯片HI3593实战:集成PGA+16位ADC的信号链设计要点

简介&#xff1a;面向航空电子与嵌入式系统开发者&#xff0c;这是一份HI3593模块的使用说明与驱动例程合集&#xff0c;专注于解决微控制器SPI接口与ARINC 429总线之间的通信问题。该模块基于CMOS工艺设计&#xff0c;片内集成协议处理单元&#xff0c;开发者仅需通过SPI读写寄…

作者头像 李华