资讯动态

VideoChat-Flash视觉塔UMT-L解析:300M视频Transformer的时序编码原理

发布时间:2026/10/17 2:05:13 来源:尧图企业网站定制
【免费下载链接】VideoChat-Flash-Qwen2_5-7B-1M_res224项目地址https://ai.gitcode.com/OpenGVLab/VideoChat-Flash-Qwen2_5-7B-1M_res224点击查看免费下载VideoChat-Flash-Qwen2_5-7B-1M_res224 是一款面向长视频理解的开源多模态大模型它由UMT-Lumt-large约 300M 参数的视觉塔 Qwen2.5-7B-1M 组成每帧仅用16 个视觉 token即可支持约 5 万帧输入。这篇文章带你从源码层面拆解 UMT-L 的视觉处理流水线视频如何被切成 tubelet、时序位置编码如何生成、以及 24 层 Transformer 如何把 784 个 token 压成 16 个——这也是它能看进 1M 上下文的关键。一、UMT-L 架构速览300M 视频 Transformer 有多大UMT-L 是一个标准的 ViT 变体核心超参定义在 build_vit 与 config.json 中参数取值含义image_size224每帧输入分辨率res224 变体patch_size16空间切块大小224÷16 14×14 196 patch/帧embed_dim1024视觉 token 维度encoder_depth24Transformer 层数num_heads16多头注意力头数mm_local_num_frames4一次送入视觉塔的局部帧数tubelet_size1时间维不合并逐帧编码mm_vision_select_layer-2取倒数第 2 层特征 一次前向的输入是4 帧 × 196 patch 784 个视觉 token这是 UMT-L 的最小工作单元。二、第一步视频切 tubeletPatchEmbed视频进入 Transformer 前先被 PatchEmbed 用一个Conv3d切成小块卷积核为(tubelet_size, 16, 16)(1, 16, 16)tubelet_size1意味着时间维度不做合并每一帧独立切成 14×14 个 16×16 patch卷积的 stride 与 kernel 相同是非重叠切块输出经flatten(2).transpose(1,2)展平成 token 序列[B, T×14×14, 1024]。与用tubelet_size2把相邻 2 帧合并成一管不同UMT-L 选择逐帧切块 后续显式时序编码让时间信息更干净地由位置编码负责。三、核心看点时序编码如何生成UMT-L 没有可学习的绝对位置嵌入而是使用sinusoid正弦/余弦位置编码定义在 get_sinusoid_encoding_table位置角 pos / 10000^(2i/d)偶数维取 sin奇数维取 cos它有两个关键设计1. 时间维可以插值到任意帧数 ⏱️预训练时 UMT-L 只见过 4 帧但推理时视觉塔按mm_local_num_frames4分组位置编码却需要覆盖mm_pos_num_frames8的帧数见 config.json。此时函数会自动执行帧数插值按 checkpoint 帧数 T 生成标准 sin-cos 表把序列 reshape 成[B, H, W, C, T]转置成[BHW, C, T]用F.interpolate(..., modelinear)沿时间维线性插值到目标帧数new_T再 reshape 回[B, T×H×W, C]加到 patch embedding 上。这套机制让 4 帧预训练的视觉塔能无缝适配任意推理帧数是 UMT-L 时序可泛化的核心。2. 空间维也可以插值高分辨率场景当输入分辨率不是 224 时会走 get_sinusoid_encoding_table2先对空间 14×14 网格做bicubic 插值再对时间维做 linear 插值一次完成空间 时序两个方向的适配。3. 视频与单图使用不同的位置编码在 forward_features 中视频模式加完整的时空 sin-cos 编码pos_embed单图模式T1见 UMTVisionTower.forward改用img_pos_embed即只含空间网格的位置编码。两种编码在初始化时分别生成避免了1 帧视频与单张图片的语义混淆。四、第二步24 层 Transformer 编码位置编码叠加后token 序列进入 24 层 Block每层结构为x x Attn(LN(x)) x x MLP(LN(x))其中 Attention 优先使用FlashAttention-2flash_attn_qkvpacked_func加速多帧 token 的全局注意力——4 帧共 784 个 token 互相看见正是模型捕捉帧间运动与时序关系的地方。最后取倒数第 2 层mm_vision_select_layer-2的输出再过一层 LayerNormwith_lnTrue得到每个 patch 的视觉特征形状还原为[B, T, 196, 1024]。五、关键魔法784 个 token 如何变成 16 个视觉塔输出的特征还太胖——5 万帧 × 196 patch 将产生近千万 token。VideoChat-Flash 的答案在投影器 ToMe16_mlp_hd64ToMe 二分软匹配bipartite_soft_matching 把 token 分成奇偶两组按相似度得分找出最像的 r 对用加权平均merge_wavg把它们合并不损失重要语义地减少 token多轮迭代merge_tokens 循环压缩直到 4 帧的 784 个 token 被压到16 × 4 64个即每帧只剩 16 个 tokenMLP 对齐两层 MLP1024 → 3584把维度对齐到 Qwen2.5-7B 的 hidden_size送入语言模型。 算一笔账每帧 16 token → 5 万帧 ≈ 80 万视觉 token加上文本恰好落在 Yarn 扩展后的1M 上下文内。这正是16 tokens per frame设计的由来。六、快速上手与文件导读 想本地体验官方用法详见 README.mdpip install transformers4.40.1 pip install av imageio decord opencv-pythonmodel AutoModel.from_pretrained(OpenGVLab/VideoChat-Flash-Qwen2_5-7B-1M_res224, trust_remote_codeTrue).to(torch.bfloat16).cuda() output, history model.chat(video_pathyour_video.mp4, tokenizertokenizer, user_promptDescribe this video in detail., return_historyTrue, max_num_frames512)核心文件导读文件作用vision_tower_builder.pyUMT-L 视觉塔PatchEmbed、sin-cos 时序编码、24 层 ViTmm_projector_builder.pyToMe token 合并 MLP 投影器modeling_videochat_flash.py视频分 4 帧一组编码、压缩后填入语言模型的主流程config.json视觉塔 / 投影器 / LLM 压缩等全部配置mm_utils.py帧采样与分辨率处理工具总结UMT-L 的时序编码原理可以浓缩为四句话切块Conv3d 按(1,16,16)逐帧切 patch时间维交给位置编码编码sin-cos 编码沿时间维线性插值让 4 帧预训练泛化到任意帧数编码后24 层 ViTFlashAttention-2 加速在全局注意力中建模帧间时序压缩ToMe 软匹配把每帧 196 token 压到 16撑起 5 万帧 / 1M 上下文。理解了这条tubelet → 时序编码 → ViT → ToMe 压缩流水线你就掌握了 VideoChat-Flash 长视频建模的视觉基石。赞分享【免费下载链接】VideoChat-Flash-Qwen2_5-7B-1M_res224项目地址https://ai.gitcode.com/OpenGVLab/VideoChat-Flash-Qwen2_5-7B-1M_res224点击查看免费下载相关推荐MochiWeb高级特性解析多部分表单、Cookie处理和头部操作MochiWeb高级特性解析多部分表单、Cookie处理和头部操作 MochiWeb是一款轻量级的Erlang HTTP服务器库专为构建高性能Web应用而设CANN稀疏注意力共享KV元数据算子SparseAttnSharedkvMetadata 产品支持情况 | 产品 | 是否支持 | | | : : | |term Ascend 950PR/As算子库人工智能大模型深度学习CANNAscend突破视觉限制Vision Transformer位置编码创新解析突破视觉限制Vision Transformer位置编码创新解析 视觉TransformerVision TransformerViT已成为计算机视觉领人工智能深度学习计算机视觉上一篇canvas-draw免费打造支持PC与移动端的手写签名画板——简单又完整的HTML5 Canvas入门指南下一篇ComfyUI效率提升终极指南mirrors/Comfy-Org/flux1-dev快捷键与工作流优化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑