InternVideo三阶段训练流程揭秘:从自监督预训练到8B视频对话模型
【免费下载链接】InternVideo[ECCV2024] Video Foundation Models & Data for Multimodal Understanding项目地址: https://gitcode.com/OpenGVLab/InternVideo
InternVideo 是上海AI实验室开源的视频基础模型系列,它的核心是一套三阶段训练流程:先用无需人工标注的自监督预训练"看懂"视频,再通过图文多模态对齐学会"图文匹配",最后与 7B 语言模型拼成InternVideo2-8B 视频对话模型。本文带你完整拆解这条从数据到模型的成长路径,新手也能轻松看懂每一步在做什么。
整体思路:为什么要分三个阶段?
视频理解是比图像理解更难的任务:视频既有时序动态,又要和文本、音频对齐。InternVideo 的解法是把"能力"分层学习:
| 阶段 | 目标 | 输入数据 | 监督信号 |
|---|---|---|---|
| 阶段一 | 视觉自监督预训练 | 纯视频 | 无标签(掩码重建 + 教师蒸馏) |
| 阶段二 | 视频-文本多模态对齐 | 图文/视频文本对 | 对比学习 + 蒸馏 + 交叉对齐 |
| 阶段三 | 视频对话 | 视频 + 文本指令 | 对话数据微调 |
三个阶段分别对应仓库里的三个模块:
- 阶段一代码:InternVideo2/single_modality/run_pretraining.py
- 阶段二代码:InternVideo2/multi_modality/
- 阶段三(InternVideo3):InternVideo3/
阶段一:自监督预训练,让模型"看懂"视频 🎬
阶段一的核心思想是不需要任何人工标注,让视频编码器从海量视频中自学视觉表征,主要依赖两种学习信号:
- 生成式学习(掩码重建):随机遮盖视频中的大量时空 token(
mask_type=tube管状掩码、mask_ratio=0.75),让模型根据可见部分还原被遮盖的内容。相关参数定义见 run_pretraining.py。 - 判别式学习(教师蒸馏):用两个强大的教师模型"带学生"——视觉教师InternVL(图像-视频 CLIP 模型)和多模态教师VideoMAEv2,让 1B 参数的学生模型对齐教师的特征。注册逻辑见 run_pretraining.py。
训练脚本非常直观,运行一条命令即可启动 1B 模型预训练:
bash ./scripts/pretraining/1B_pt.sh对应文件位于 InternVideo2/single_modality/scripts/pretraining/。预训练完成后,你会得到一个与文本无关的通用视频编码器(InternVideo2-Stage1-1B/6B),它能提取出高质量的纯视觉特征,是后续一切能力的地基。
阶段二:视频-文本对齐,从"看懂"到"对得准" 🤝
阶段二把纯视觉编码器升级为多模态模型:在视觉编码器上接一个文本编码器(BERT 或 LLM),并引入一组互补的损失函数,让视频特征和文本特征在同一个空间里"对得准"。
核心损失配置见 scripts/pretraining/stage2/1B/config.py:
| 损失项 | 作用 |
|---|---|
| VTC | 视频-文本对比学习,拉近匹配对、推远不匹配对 |
| MLM | 掩码语言建模,增强文本编码能力 |
| VTM | 视频-文本匹配(含难负样本挖掘),用于检索场景 |
阶段一预训练的视觉编码器直接作为初始化(pretrained=1B_stage1.pth),同时保留 CLIP 教师蒸馏(clip_teacher相关参数见 config.py)。训练命令同样是单行启动:
bash scripts/pretraining/stage2/1B/run.sh该阶段还衍生出一个CLIP 后预训练分支(scripts/pretraining/clip/),用 LLM 做文本编码器,支持中英文检索。阶段二的产出是InternVideo2-Stage2模型,在 60 多个视频/音频任务(动作识别、时间定位、图文检索等)上达到当时 SOTA,其中 Kinetics-400 动作识别准确率达92.1%。
阶段三:8B视频对话模型,会看视频还会聊天 💬
阶段三把前两阶段的成果"合体":将阶段二训练好的1B 视觉编码器与一个7B 语言模型(如 InternLM 系列)通过适配器拼接,得到InternVideo2-Stage3-8B视频对话模型。"8B"即 1B 视觉 + 7B 语言,它能直接接收视频帧和文字指令,进行视频问答、详细描述与推理。
最新的InternVideo3-8B-Instruct沿用了同样的"视觉编码器 + LLM"范式,并在此基础上强化了长视频与智能体式推理能力,其整体架构如下:
InternVideo3 的训练配方同样遵循分阶段思想:继续预训练(CPT)→ 短到长监督微调(SFT)→ 基于规则强化学习 → 在线蒸馏,详见 InternVideo3/README.md 中的 Training Recipe 章节。在公开权重的模型中,它在 Video-MME、MLVU、EgoSchema 等长视频基准上取得了领先成绩:
小结:三阶段流程一张图看懂 🧭
| 阶段 | 模型规模 | 关键能力 | 入口代码 |
|---|---|---|---|
| ① 自监督预训练 | 1B / 6B | 通用视频视觉表征 | single_modality |
| ② 多模态对齐 | 1B / 6B | 视频-文本检索与理解 | multi_modality |
| ③ 视频对话 | 8B | 视频问答与推理 | InternVideo3 |
这套"自监督 → 多模态对齐 → 对话微调"的三阶段训练流程,是 InternVideo 系列能同时拿下识别、检索、定位、对话等几十项任务的关键。如果你想复现或魔改,可以从 InternVideo2/single_modality/MODEL_ZOO.md 的模型列表入手,逐阶段跑通整条流水线。
【免费下载链接】InternVideo[ECCV2024] Video Foundation Models & Data for Multimodal Understanding项目地址: https://gitcode.com/OpenGVLab/InternVideo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考