资讯详情

Agnes-3.0-Flash视觉塔架构拆解:27层ViT如何把图片压缩进5120维Token空间

📅 2026/9/24 15:50:29 | 华诺云谱 👁 阅读
Agnes-3.0-Flash视觉塔架构拆解:27层ViT如何把图片压缩进5120维Token空间
Agnes-3.0-Flash视觉塔架构拆解27层ViT如何把图片压缩进5120维Token空间【免费下载链接】Agnes-3.0-Flash项目地址: https://ai.gitcode.com/hf_mirrors/Agnes-AI/Agnes-3.0-FlashAgnes-3.0-Flash 是一款开源多模态大模型它的视觉塔Vision Tower由 27 层 ViT 组成负责把图片和视频压缩成 5120 维的视觉 Token直接送入语言模型。这篇文章用最少的话讲清楚一张图片如何一步步变成语言模型能读懂的 5120 维向量序列 一、视觉塔在 Agnes-3.0-Flash 中的位置Agnes-3.0-Flash 的架构是典型的双塔设计模块作用关键参数视觉塔AgnesVisionModel图像/视频 → 视觉 Token27 层 ViT隐藏维度 1152语言模型AgnesTextModel多模态生成与推理72 层混合注意力隐藏维度5120融合器AgnesVisionMerger把 1152 维升到 5120 维2×2 空间合并 两层线性投影两者通过隐藏维度对齐视觉塔输出的每个 Token 都被投影到5120 维与文本 Token 共用同一个词嵌入空间和位置编码体系语言模型无需任何特殊处理就能无缝读取图像信息。完整配置见 config.json 中的vision_config字段。二、27 层 ViT 的完整结构一览视觉塔的规格定义在 AgnesVisionConfig 中结构部件数值说明网络深度depth27层标准 Pre-Norm Transformer 块隐藏维度hidden_size1152每个 patch Token 的维度注意力头数num_heads16每头维度 1152 / 16 72MLP 中间维度intermediate_size4304约为隐藏维度 3.7 倍激活函数GELU (tanh)经典 ViT 配置位置嵌入表2304 个48×48 的二维网格双线性插值复用每一层AgnesVisionBlock都是教科书式的结构见 modeling_agnes.pyLayerNorm → 双向注意力带 2D RoPE→ 残差 → LayerNorm → MLP → 残差两个值得注意的细节双向注意力与语言模型不同视觉塔使用is_causalFalse的全局注意力每个 patch 都能看到整张图的所有 patch这是 ViT 理解全局语义的关键。双位置编码除了 48×48 网格的可学习二维位置嵌入通过双线性插值适配任意分辨率还叠加了二维 RoPE见 AgnesVisionRotary让模型对相对位置敏感。三、从像素到 Token四步流水线视觉塔的前向流程AgnesVisionModel.forward可以拆成四步第 1 步3D 卷积切 PatchAgnesVisionPatchEmbed 用一个 kernel 为(2, 16, 16)的 3D 卷积完成两件事空间上每16×16 像素切成一个 patch时间上每2 帧合并成一组这是视频理解的基础——单帧图片等效为 T1 的视频一个 patch 卷积后直接变成 1152 维向量无需额外的线性投影层。第 2 步叠加可学习位置嵌入num_position_embeddings2304对应 48×48 的标准网格。实际图片分辨率往往不是 48 的整数倍模型通过双线性插值get_vision_bilinear_indices_and_weights在 4 个相邻格点间平滑取值任何分辨率都能获得准确的位置信号。第 3 步27 层 Transformer 反复提炼每个 patch Token 在 27 层中逐层交换信息注意力让它聚合邻域与全局上下文MLP 让它完成非线性特征变换。最终每个 patch 都携带了丰富的语义信息。第 4 步2×2 合并 投影到 5120 维这是压缩的核心由 AgnesVisionMerger 完成操作维度变化含义2×2 空间合并4 个 1152 维 → 1 个 4608 维每 4 个相邻 patch 拼成 1 个 TokenToken 数量降为 1/4Linear GELU4608 → 4608非线性融合Linear 投影4608 →5120对齐语言模型隐藏维度注意一个巧妙设计虽然空间上 4 个 patch 合并成 1 个 Token但时间维度不合并temporal_patch_size2已在卷积阶段处理因此视频保留了逐帧的时间分辨率。四、算一笔账一张图到底占多少个 Token预处理器preprocessor_config.json、image_processing_agnes.py采用动态分辨率策略最短边不低于 256 像素最长边不超过 4096 像素边长自动对齐到 32 16 像素 patch × 2 合并的整数倍以一张 2048×2048 的图片为例计算过程2048 ÷ 16 (patch) 128 个 patch / 边 128 ÷ 2 (合并) 64 个 Token / 边 64 × 64 4096 个视觉 Token也就是说图片尺寸视觉 Token 数256×256最小256 个512×5121024 个2048×20484096 个4096×4096最大16384 个这解释了 262,144 Token 的上下文窗口为何如此重要——一张高清图片最多吃掉1.6 万个 Token剩余空间仍足以容纳数十万字文本图文混合分析因此成为可能。五、视觉 Token 如何与文本在同一序列中相处视觉 Token 进入语言模型后通过特殊标记定位configuration_agnes.pyvision_start_token(248053) /vision_end_token(248054) 标记视觉内容边界image_token(248056) /video_token(248057) 在词表中占位更精妙的是三轴旋转位置编码mrope文本序列的 (时间, 高, 宽) 三个轴同步递增而视觉 Token 的三轴位置由图片网格决定见 get_vision_position_ids。这让语言模型在 72 层混合注意力54 层 delta-rule 循环 18 层全局注意力中既能正确引用图中左上角的物体也能保持与文本的因果顺序一致。六、小结设计取舍背后的工程智慧回顾整个视觉塔几个关键决策都值得借鉴27 层、1152 维视觉塔参数远小于语言模型主干视觉特征提取够用就好把算力留给推理。16 像素 patch 2×2 合并等效 32 像素的有效感受野配合动态分辨率在 Token 预算和细节保留之间取得平衡。可学习位置嵌入 RoPE 双保险前者提供绝对空间坐标后者赋予相对位置泛化能力两者互补。5120 维统一空间视觉与文本共享隐藏维度、位置编码和注意力机制融合器就是唯一的翻译官架构简洁且可扩展。如果你想继续深入可以从这几个文件入手视觉塔配置configuration_agnes.py 中的AgnesVisionConfig视觉塔模型modeling_agnes.py 的 PatchEmbed / Attention / Merger 三个类图像预处理image_processing_agnes.py 与 processing_agnes.py推理服务部署sglang_patch/README.md【免费下载链接】Agnes-3.0-Flash项目地址: https://ai.gitcode.com/hf_mirrors/Agnes-AI/Agnes-3.0-Flash创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。