
InternVideo-Next原理剖析没有视频-文本监督如何练出强大视频基础模型【免费下载链接】InternVideo[ECCV2024] Video Foundation Models Data for Multimodal Understanding项目地址: https://gitcode.com/OpenGVLab/InternVideoInternVideo-Next 是 OpenGVLab InternVideo 家族最新推出的开源视频基础模型Video Foundation Model它的最大特点很反直觉整个预训练过程不依赖任何视频-文本配对数据。视频-文本数据稀缺且标注昂贵而 InternVideo-Next 通过向图文大模型蒸馏 扩散重建 自蒸馏预测的组合拳仅用无标签视频就练出了可迁移的视频表征。本文用最少代码带你拆解它的训练原理与关键实现。 为什么没有视频-文本监督很重要传统路线的视频理解模型如 CLIP 系高度依赖视频-文本对路线数据来源痛点图文对比学习网络图文对数据易得但图像缺乏时序信息视频-文本对比学习视频字幕/描述对数据稀缺、噪声大、成本高InternVideo-Next纯无标签视频绕开数据瓶颈 ✅InternVideo-Next 的思路可以概括为一句话把图文知识从现成的大规模图文模型CLIP 类教师中蒸馏出来再用两类自监督目标扩散重建 掩码特征预测在无标签视频上把教师知识内化成视频时序表征。下面这张图展示了 InternVideo 家族视频基础模型训练完成后能够覆盖的能力面——可迁移的视频-(文本)表征、长视频理解与时间常识推理这也是 InternVideo-Next 训练目标要服务的下游场景 总体框架两阶段自监督训练InternVideo-Next 的预训练分为两个阶段入口分别是 main_stage1.py 和 main_stage2.py阶段教师模型掩码策略训练目标Stage 1冻结的图文大模型SigLIP-2 1B注意力引导只保留 25% 重要 token逐 token 蒸馏 池化蒸馏 扩散重建Stage 2学生自身的 EMA 副本自蒸馏双随机掩码JEPA 风格预测被掩 token 的特征Stage 1从 CLIP 教师身上借图文知识Stage 1 的模型定义在 InternVideo_next_s1.py训练循环在 engine_for_stage1.py。整个流程有三步① 注意力引导的 token 选择教师模型先对同一批视频前向一次除了特征还会返回自注意力权重--clip_return_attn。学生模型据此投票选出信息量最大的 25% token 保留其余 75% 全部掩掉——相当于让教师告诉学生哪些区域值得学。实现见 engine_for_stage1.py对应训练脚本参数为--mask_type attention --mask_ratio 0.75exp/base/pretrain/stage1.sh。② 三路损失联合优化总损失由三部分加权组成engine_for_stage1.py权重--clip_loss_ratio 1 1 1逐 token 蒸馏损失学生可见 token 的中间层特征去对齐教师中间层特征L2 归一化后余弦相似度池化特征蒸馏损失学生用注意力池化得到的全局特征对齐教师的最终特征扩散重建损失这是关键的自监督信号——一个小型扩散网络以学生的特征为条件去预测被掩 token 对应像素块加噪后的去噪过程逼着学生特征编码足够的视觉细节。其实现见 diffloss.pyDiffLoss类含时间步嵌入与 vlb 目标。③ 教师怎么选从脚本可看到教师是一个大规模图文统一模型--clip_teacher teacher_siglip2_1b_once4all_mm_umt_res256输入 256 分辨率、16 帧中间层特征每隔约 3.33 层取一层供学生逐层对齐exp/base/pretrain/stage1.sh。教师实现参考 siglip_teacher.py。注意图文知识来自图像-文本对训练视频时完全不需要视频-文本对——这就是没有视频-文本监督的第一层含义。Stage 2自蒸馏学会预测被遮住的内容Stage 2模型定义 InternVideo_next_s2.py训练循环 engine_for_stage2.py切换到自蒸馏用 Stage 1 的学生权重初始化一个EMA 教师动量 0.998它只吃未掩 token给出标准答案特征engine_for_stage2.py每个 batch 生成两套随机掩码v1/v2JEPA 风格掩码生成器 jepa_mask.py学生分别从两个视角编码可见部分去预测被掩 token 的特征engine_for_stage2.py预测与目标同样用余弦相似度约束不重建像素直接在表征空间学习。这一步相当于让学生互相考试把 Stage 1 蒸馏来的图文知识彻底内化为时序视频表征同时摆脱对外部教师前向依赖训练更省算力。 值得细看的技术细节骨干网络标准 ViT 结构patch size 14、224 输入、16 帧采用 3D 可学习位置编码初始化自 3D sincos 编码并插入 4 个 cls token 增强全局信息聚合全局特征通过注意力池化头AttentionPoolingBlock投影到 768 维 CLIP 风格空间便于零样本检索与分类InternVideo_next.py。模型规模官方提供 Base12 层、768 维与 Large24 层、1024 维两档注册函数见 InternVideo_next.py。训练工程默认启用 FlashAttention、融合 RMSNorm 与 FusedMLP 加速算子配合 DeepSpeed ZeRO-1 与 bf16 混精Base 版在 128 卡上训练 62 个 epochexp/base/pretrain/stage1.sh。 如何获取预训练权重与复现训练内容位置预训练权重Base / Largepatch14-224-16帧MODEL_ZOO.md论文与技术报告信息、CitationREADME.mdBase 版两阶段训练脚本exp/base/pretrain/Large 版两阶段训练脚本exp/large/pretrain/复现时只需替换脚本中的DATA_PATH为你的无标签视频数据集路径按 Stage 1 → Stage 2 顺序启动即可Stage 2 通过--stage1_checkpoint加载 Stage 1 权重。训练完成后的视频基础模型表征可直接用于视频问答、视频描述等下游多模态任务。例如这样的视频多轮对话理解场景指令数据构造方式见 Data/instruction_data/README.md✨ 小结InternVideo-Next 给出了数据受限时代训练视频基础模型的一个务实答案不造数据借知识从图文大模型蒸馏绕开视频-文本对瓶颈注意力选 token让教师指路学生只学最重要的 25% 视觉内容扩散重建兜底保证特征不丢失像素级细节自蒸馏收尾EMA 教师 双掩码预测低成本强化时序表征。这套蒸馏 → 自监督 → 自蒸馏的两阶段范式对想训练视频/多模态基础模型但拿不到配对数据的同学是一份很值得研读的开源范本。【免费下载链接】InternVideo[ECCV2024] Video Foundation Models Data for Multimodal Understanding项目地址: https://gitcode.com/OpenGVLab/InternVideo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考