ONNX v1.21.0发布,引入Opset 26:新增CumProd和BitCast运算符、2位类型支持及Python 3.14自由线程实验
为什么重要
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。
本文由人工智能基于一手来源生成。