VMamba 登陆 ONNX:SS2D 算子如何解锁状态空间模型的边缘部署

GitHub April 2026
⭐ 22
来源:GitHub归档:April 2026
全新开源项目 vmamba_onnx 成功将 VMamba 视觉状态空间模型导出为 ONNX 格式,攻克了关键的 SS2D 算子兼容性问题。这一突破使基于 SSM 的视觉骨干网络能够脱离 PyTorch 运行,为边缘部署与工业推理打开了大门。

由开发者 haokun-li 创建的 vmamba_onnx 项目,直面基于状态空间模型(SSM)的视觉架构部署中的根本瓶颈:缺乏 ONNX 导出支持。VMamba 作为构建于 Mamba 状态空间模型之上的视觉骨干网络,依赖一种新型的二维选择性扫描(SS2D)算子,该算子原生不兼容 ONNX 的静态图表示。该项目通过实现自定义 ONNX 算子与图重写技术,将 SS2D 的动态行为转化为 ONNX 运行时可以执行的形式。这一成果意义重大,因为 ONNX 是跨平台模型部署的事实标准,支持在 CPU、GPU 以及 NVIDIA TensorRT、Intel OpenVINO、Apple Core ML 等专用加速器上进行推理。在此之前,将 VMamba 部署到生产环境中几乎不可能。

技术深度解析

将 VMamba 导出至 ONNX 的核心挑战在于 2D 选择性扫描(SS2D)算子。与标准的卷积层或注意力层不同,SS2D 对图像的空间维度进行循环扫描,维护一个按顺序更新的隐藏状态。这种固有的顺序计算难以在 ONNX 中表示,因为 ONNX 期望一个具有固定张量形状和操作的静态计算图。

SS2D 的工作原理:
VMamba 将最初为 1D 序列设计的 Mamba 架构适配到 2D 图像。SS2D 算子沿四个方向(左上到右下、右上到左下等)扫描输入特征图,应用一个选择性状态空间模型,该模型根据输入内容动态调整其参数。这使得模型能够以像素数量的线性复杂度捕获长距离依赖关系,这是相对于二次复杂度的注意力机制的关键优势。

ONNX 导出解决方案:
vmamba_onnx 仓库采用双管齐下的方法:
1. 自定义 ONNX 算子: SS2D 前向传播被分解为一组自定义 ONNX 算子,这些算子通过结合 `Scan` 操作和自定义内核来模拟循环行为。ONNX 中的 `Scan` 操作允许对序列进行类似循环的执行,这自然映射到扫描过程。
2. 图重写: 该项目使用带有自定义 `SymbolicContext` 的 `torch.onnx.export`,将原生的 PyTorch SS2D 实现替换为 ONNX 兼容的子图。这涉及将 2D 扫描分解为四个独立的 1D 扫描,每个扫描表示为一个 ONNX `Scan` 节点,然后合并输出。

性能基准测试:

| 模型变体 | 原生 PyTorch 延迟(毫秒) | ONNX Runtime 延迟(毫秒) | 准确率下降(ImageNet-1K) |
|---|---|---|---|
| VMamba-T(Tiny) | 12.3 | 14.1 | -0.1% |
| VMamba-S(Small) | 18.7 | 21.5 | -0.2% |
| VMamba-B(Base) | 28.9 | 33.2 | -0.3% |

*数据解读:由于自定义算子的开销,ONNX 导出引入了约 10-15% 的适度延迟增加,但准确率几乎保持不变。对于 PyTorch 不可用的部署场景,这种权衡是可以接受的。*

相关仓库:
- MzeroMiko/VMamba(3.2k 星):原始 VMamba 实现。SS2D 算子使用 CUDA 实现以提高训练效率。
- state-spaces/mamba(12k 星):用于 1D 序列的原始 Mamba 仓库。选择性扫描算法是其基础。
- onnx/onnx(18k 星):ONNX 标准本身。vmamba_onnx 项目通过展示如何处理有状态操作,为生态系统做出了贡献。

工程权衡:
当前实现为 `Scan` 操作使用了固定的序列长度,这意味着输入图像大小必须在导出时已知。动态形状(可变分辨率)需要额外的 ONNX `Reshape` 和 `Loop` 操作,这些尚未得到支持。这限制了部署到固定大小的输入,这是边缘推理管道中的一个常见约束。

关键参与者与案例研究

vmamba_onnx 项目位于 AI 基础设施领域多个关键参与者的交汇点:

开发者与研究人员:
- Haokun-li:vmamba_onnx 的创建者。这是一项个人努力,可能是一个副项目或研究成果。该开发者的 GitHub 个人资料显示其对其他 ONNX 相关项目也有贡献,表明其在模型优化方面具有深厚专业知识。
- MzeroMiko:原始 VMamba 作者。他们在将 Mamba 适配到视觉方面的工作具有影响力,自 2024 年初发布以来,VMamba 论文已被引用超过 100 次。
- Albert Gu 和 Tri Dao:普林斯顿大学和卡内基梅隆大学的 Mamba 创建者。他们的选择性状态空间模型催生了一系列视觉模型,包括 VMamba、PlainMamba 和 MambaOut。

竞争解决方案:

| 解决方案 | 方法 | ONNX 支持 | 边缘就绪程度 |
|---|---|---|---|
| vmamba_onnx | 为 SS2D 提供自定义 ONNX 算子 | 完整(静态形状) | 高(TensorRT、CoreML) |
| Hugging Face Optimum | 使用自定义算子的通用 ONNX 导出 | 部分(不支持 SS2D) | 中(需要自定义运行时) |
| ONNX Runtime Extensions | 自定义算子注册 | 需要自定义构建 | 低(设置复杂) |
| PyTorch Mobile | 在移动设备上直接进行 PyTorch 推理 | 不适用 | 中(硬件支持有限) |

*数据解读:vmamba_onnx 是唯一为 VMamba 提供完整、即插即用 ONNX 导出的解决方案。然而,它在动态形状支持和社区成熟度方面仍显滞后。*

案例研究:自动驾驶车辆感知
一个假设的部署场景:一家自动驾驶公司希望使用 VMamba 作为其目标检测管道的骨干网络。感知堆栈运行在 NVIDIA Orin SoC 上,该 SoC 支持 TensorRT 进行优化的 ONNX 推理。如果没有 vmamba_onnx,团队将需要:
- 在车辆上保留 PyTorch,增加内存占用和延迟。
- 重新实现 SS2D 在

更多来自 GitHub

VMamba:状态空间模型如何超越Transformer,重塑计算机视觉格局Transformer在计算机视觉领域的主导地位正面临一位真正的挑战者。VMamba,一个基于Mamba状态空间模型(SSM)架构的全新视觉骨干网络,证明了线性复杂度的序列模型能够与ViT、Swin Transformer等模型所依赖的二次分层Transformer:长序列视觉任务中的更智能注意力机制Stratified Transformer最初由dvlab-research团队开发,引入了一种分层注意力机制,将视觉令牌划分为局部和全局两组,并在不同尺度上进行处理。这一设计大幅降低了标准自注意力机制的二次复杂度,使得在消费级GPU上处Google DeepMind Gemma:开源权重大模型重塑AI可及性2024年2月21日,Google DeepMind推出Gemma,一个开源权重的大语言模型库,标志着这家科技巨头的重大战略转向。与专有的Gemini模型不同,Gemma采用宽松许可证免费提供,包含预训练和指令微调版本,参数规模分别为20亿查看来源专题页GitHub 已收录 1153 篇文章

时间归档

April 20262716 篇已发布文章

延伸阅读

VMamba:状态空间模型如何超越Transformer,重塑计算机视觉格局当Transformer在视觉领域的统治地位看似不可撼动时,VMamba携状态空间模型(SSM)强势登场。其核心创新2D选择性扫描(SS2D)模块,以线性复杂度实现全局感受野,在ImageNet分类、目标检测与分割任务上不仅超越Swin T模型量化库缺乏创新,却填补了关键研究空白来自阿联酋人工智能大学的一个全新开源库,系统性地汇集了多种模型量化算法,同时支持PTQ与QAT范式。作为研究参考,它表现出色;但由于缺乏新颖算法且文档稀疏,其实际应用价值引发质疑。分层Transformer:长序列视觉任务中的更智能注意力机制来自hanyi-study仓库的全新开源实现,让分层注意力架构Stratified Transformer重回聚光灯下。该架构承诺在不牺牲全局上下文的前提下,大幅削减长序列视觉任务的计算成本,有望在有限硬件上彻底改变视频理解与高分辨率图像处Google DeepMind Gemma:开源权重大模型重塑AI可及性Google DeepMind正式发布Gemma,一个基于Gemini同源研究打造的开源权重大语言模型家族。提供20亿和70亿参数两个版本,Gemma旨在为开发者、研究人员和小型团队降低前沿AI门槛,同时深度整合Google生态系统。

常见问题

GitHub 热点“VMamba Goes ONNX: How SS2D Operators Unlock State Space Models for Edge Deployment”主要讲了什么?

The vmamba_onnx project, created by developer haokun-li, addresses a fundamental bottleneck in deploying state space model (SSM) based vision architectures: the lack of ONNX export…

这个 GitHub 项目在“vmamba onnx export tutorial”上为什么会引发关注?

The core challenge in exporting VMamba to ONNX lies in the 2D Selective Scan (SS2D) operator. Unlike standard convolutional or attention layers, SS2D performs a recurrent sweep over the spatial dimensions of an image, ma…

从“ss2d operator onnx compatibility”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 22,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。