🟢 📦 开源 2026年4月28日星期二 · 3 分钟阅读

ONNX v1.21.0发布,引入Opset 26:新增CumProd和BitCast运算符、2位类型支持及Python 3.14自由线程实验

分层神经网络图的抽象图示,突出显示新运算符和2位张量的数字标识,象征Opset 26版本。

为什么重要

Linux Foundation AI & Data Foundation于2026年4月27日发布了ONNX v1.21.0——引入包含CumProd和BitCast运算符的Opset 26、2位类型支持、实验性Python 3.14自由线程,以及整数除法一致性和编译器安全性改进。

Linux Foundation AI & Data Foundation于2026年4月27日发布了ONNX v1.21.0——这是机器学习模型交换开放标准的渐进式但有实质意义的更新。最重要的新特性是Opset 26,该运算符标准的新版本使模型能够「表达更多功能并在更广泛的工具和运行时上运行」。

Opset 26的主要新增内容

标准目录中新增了两个运算符:

  • CumProd——在张量上执行累积乘法。功能上类似于执行累积求和的已知CumSum运算符,但使用乘积代替求和。对于概率模型、阶乘计算和递归序列很有用。
  • BitCast——允许无需复制即可重新解释数据。该运算符类似于某些编程语言中的bit_cast函数——取相同的位序列并将其视为相同大小的另一种类型。对于需要在不产生内存复制开销的情况下在例如float32和int32表示之间切换的性能关键管道部分非常重要。

2位支持:边缘和移动领域的信号

最突出的架构变化是对2位数据类型的支持。使用2位权重或激活表示的模型能够:

  • 大幅减小模型尺寸——2位比8位小4倍,比32位小16倍;
  • 减少运行时内存占用
  • 在内存带宽受限的硬件上提升性能

这对边缘、移动和嵌入式系统尤为相关,2位量化在这些领域正成为越来越常见的大型模型压缩选择。ONNX层面的标准化意味着框架(PyTorch、TensorFlow、TVM)和运行时(ONNX Runtime、Triton)可以无需自定义转换地与2位模型互操作。

其他改进

较不明显但重要的变化:

  • 整数除法一致性——不同运行时历史上对边缘情况(例如除以0、负整数除法)的处理方式不同;此版本统一了语义;
  • 扩展的版本转换辅助工具——简化了遗留模型从旧版opset升级到新版本;
  • Python 3.14自由线程实验性支持——Python 3.14引入了无GIL(全局解释器锁)工作选项,ONNX添加了对该执行模式的实验性兼容,可能有助于多线程ML服务;
  • 增强的编译器加固——生产安全改进,应减少原生ONNX C++代码中内存损坏错误的风险。

对生态系统的意义

三项对用户的实践启示:

  • 量化为2位的模型现在在整个技术栈中拥有标准化路径——从PyTorch中的训练,通过ONNX转换,到ONNX Runtime上的执行。在此之前,用户需要进行自定义扩展。
  • 框架间互操作性——CumProd和BitCast运算符在现代ML模型中很常见,但此前经常通过基本运算符的复杂组合进行模拟。标准化简化了导出和导入。
  • 遗留模型迁移工具——扩展的版本转换辅助工具降低了将旧模型升级到较新opset版本的运营成本,这对于运行多年的大型模型组合的组织非常重要。

LF AI宣布的未来计划

版本公告还提到了未来版本的几个发展方向

  • 生成式AI扩展运算符——RoPE、GQA和专门attention变体等典型模式需要旧opset没有的运算符;
  • 改进的量化能力——除2位外,预期还将支持混合精度;
  • 概率编程新工作组——专注于ONNX框架内的贝叶斯推断和模型。

实践建议

对于已使用ONNX的团队:

  • 检查运行时兼容性——Opset 26需要更新的ONNX Runtime或其他支持新运算符的引擎;
  • 在候选模型上尝试2位量化并测量内存和精度差异;
  • 如果组织有Opset 17或更低版本的遗留模型,关注版本转换工具

完整发布说明可在ONNX项目的GitHub仓库中获取,社区定期举行公开会议并收集反馈。该项目网址为onnx.ai

🤖

本文由人工智能基于一手来源生成。