VideoChat-Flash是什么?一文看懂OpenGVLab的1M超长视频对话大模型
【免费下载链接】VideoChat-Flash-Qwen2_5-7B-1M_res224项目地址https://ai.gitcode.com/OpenGVLab/VideoChat-Flash-Qwen2_5-7B-1M_res224点击查看免费下载VideoChat-Flash 是 OpenGVLab 开源的长视频理解与视频对话大模型。本文介绍的 VideoChat-Flash-Qwen2_5-7B-1M_res224 版本基于 UMT-L300M视觉编码器与 Qwen2.5-7B-1M 构建每帧仅需16 个视觉 token借助 YaRN 将上下文窗口扩展到1M最多可一次性输入约50,000 帧视频画面——轻松看完数小时的电影级长视频。VideoChat-Flash 是什么一句话概括一个能看超长视频、还能和你对着视频聊天的多模态大模型。它把视频抽帧后的画面特征压缩成极少的 token 喂给语言模型再依托百万级上下文窗口实现对长视频的全局理解超长上下文1M token 上下文窗口原生 Qwen2.5-7B-1M 为 128k经 YaRN 扩展而来配置见 config.json 中的max_position_embeddings: 1010000极致压缩通过 ToMe 风格的 token 合并每帧只保留 16 个 token5 万帧视频约占 80 万 token正好塞进 1M 窗口多轮对话支持围绕同一视频连续提问例如先问描述这个视频再追问视频里出现了几个人⚡Flash Attention语言模型部分针对注意力计算做了加速实现长序列推理更高效技术架构三大核心模块VideoChat-Flash 的眼睛、神经和大脑分别由三个模块组成对应仓库中的源码文件模块作用核心文件视觉编码器 UMT-L300M把每一帧画面编码为视觉特征vision_tower_builder.py压缩投影器 ToMe16将每帧数百个 token 两两合并压缩到 16 个再映射到语言模型维度mm_projector_builder.py语言模型 Qwen2.5-7B-1M理解与生成支持 1M 上下文modeling_qwen2_flash.py视频抽帧、时间信息注入等预处理逻辑位于 mm_utils.py对话模板定义在 conversation.py主模型入口含chat方法在 modeling_videochat_flash.py。 名字里的_res224表示视频帧的处理分辨率为 224是压缩率与清晰度之间更偏向长视频场景的平衡选择。性能基准它在视频理解榜单上表现如何根据 README.md 中的官方数据该模型在主流视频理解基准上的准确率如下基准测试准确率考察重点Perception Test75.4基础视频感知MLVU74.1多任务视频理解MVBench73.4综合视频理解能力LongVideoBench66.5长视频理解同系列最佳VideoMME无字幕63.5多模态视频理解LVBench46.0超长视频理解与同系列其他版本对比同样来自 README.md模型MVBenchLongVideoBenchVideoMME(w/o sub)最大输入帧数VideoChat-Flash-Qwen2_5-2B44870.058.357.010,000VideoChat-Flash-Qwen2-7B22473.264.264.010,000VideoChat-Flash-Qwen2_5-7B-1M22473.466.563.550,000VideoChat-Flash-Qwen2_5-7B_InternVideo2-1B22474.364.565.110,000VideoChat-Flash-Qwen2-7B44874.064.765.310,000可以看到本版本的最大优势是50,000 帧的输入上限和 LongVideoBench 第一名的成绩是系列中最适合超长视频场景的型号。快速上手一键安装依赖开始前先安装 Python 依赖建议 GPU 环境 CUDApip install transformers4.40.1 pip install av imageio decord opencv-python # 可选安装 Flash Attention 2 进一步加速 pip install flash-attn --no-build-isolation模型权重通常通过模型仓库直接加载如果网络受限也可以先克隆仓库再指向本地路径git clone https://gitcode.com/OpenGVLab/VideoChat-Flash-Qwen2_5-7B-1M_res224最短调用代码三步和视频对话得益于trust_remote_code机制加载并提问只需几行from transformers import AutoModel, AutoTokenizer import torch model_path OpenGVLab/VideoChat-Flash-Qwen2_5-7B-1M_res224 # 或本地克隆目录 tokenizer AutoTokenizer.from_pretrained(model_path, trust_remote_codeTrue) model AutoModel.from_pretrained(model_path, trust_remote_codeTrue).to(torch.bfloat16).cuda() max_num_frames 512 # 控制最多读入的帧数 gen_cfg dict(do_sampleFalse, temperature0.0, max_new_tokens1024, top_p0.1, num_beams1) # 单轮对话 answer, history model.chat( video_pathyour_video.mp4, tokenizertokenizer, user_promptDescribe this video in detail., return_historyTrue, max_num_framesmax_num_frames, generation_configgen_cfg ) print(answer) # 多轮追问带上上一轮返回的 history 即可 answer2, history model.chat( video_pathyour_video.mp4, tokenizertokenizer, user_promptHow many people appear in the video?, chat_historyhistory, return_historyTrue, max_num_framesmax_num_frames, generation_configgen_cfg ) print(answer2)完整的示例与参数说明可参考 README.md 的 How to use the model 部分。使用建议与注意事项语言模型以英文语料为主训练中文仅有基础理解能力强烈建议用英文提问回答质量最佳️帧数控制max_num_frames决定模型看多少画面。默认示例为 512 帧处理 1 小时以上的长视频时可逐步调大理论上限约 50,000 帧帧数越多显存和耗时越高⚙️全局压缩可选设置mm_llm_compressTrue并配合llm_compress_typeuniform0_attention可开启 LLM 层内 token 压缩进一步降低长序列开销显存7B 模型以bfloat16加载建议准备 16GB 以上显存的 GPU项目文件结构速览文件说明modeling_videochat_flash.py主模型视觉模块组装、多模态输入拼接、chat对话入口modeling_qwen2_flash.py加速版 Qwen2 语言模型Flash/Sdpa Attention 实现vision_tower_builder.pyUMT-L 视觉塔构建与加载mm_projector_builder.pyToMe16 token 合并压缩 MLP 投影mm_utils.py视频读取、抽帧策略含load_videoconversation.py对话模板qwen_2等constants.pyimage等特殊 token 常量config.json模型结构配置1M 上下文、压缩参数等常见问题 FAQQ1它和普通的视频大模型有什么区别核心在长。大多数视频模型只能处理几千帧VideoChat-Flash 通过16 token/帧 1M 上下文的组合把可输入帧数推到约 5 万帧并且压缩是在分层视觉层 LLM 层完成的信息保留更充分。Q2224 分辨率够清晰吗对于长视频的场景定位、剧情理解完全够用若需要识别画面中的文字等细节可考虑同系列 448 分辨率版本但输入帧数上限会降到 1 万帧左右。Q3中文对话效果差怎么办请用英文提问、英文回答。例如把描述一下这个视频换成 Describe this video in detail.效果会明显更好。总结VideoChat-Flash-Qwen2_5-7B-1M_res224 是 OpenGVLab VideoChat-Flash 系列中的长视频旗舰 1M 上下文 每帧 16 token 多轮视频对话是目前开源社区里处理数小时长视频的首选方案之一。如果你的需求是让大模型看完一整部电影再回答你的问题这个模型就是答案。赞分享【免费下载链接】VideoChat-Flash-Qwen2_5-7B-1M_res224项目地址https://ai.gitcode.com/OpenGVLab/VideoChat-Flash-Qwen2_5-7B-1M_res224点击查看免费下载相关推荐VideoChat-R1_7B是什么开源视频理解大模型完全入门指南VideoChat R1_7B是什么开源视频理解大模型完全入门指南 VideoChat R1_7B 是上海 AI LabOpenGVLab开源的 视频理解AMD-OLMo-1B-SFT-DPO_rai_1.8.0_medusa_1.0_npu是什么一文读懂这款NPU加速开源1B对话模型AMD OLMo 1B SFT DPO_rai_1.8.0_medusa_1.0_npu是什么一文读懂这款NPU加速开源1B对话模型 AMD OLMo 1B大模型人工智能tidyverse包冲突解决终极指南如何优雅处理R函数命名冲突问题 tidyverse包冲突解决终极指南如何优雅处理R函数命名冲突问题 在使用R语言进行数据分析时tidyverse包集合无疑是数据科学家和统计师的得力助创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考