微软发布ONNX Runtime 1.0

ONNX Runtime在发布预览版一年之后,终于来到了1.0正式版,这个新版本改进了API稳定性,使API的使用方式更清楚,也增加了对ONNX 1.6的支持,除了更新现有Execution Provider,还加入一系列新的Execution Provider预览,而且微软还发布了新的ONNX Go Live工具,让用户方便地交付ONNX模型。

ONNX是脸书与微软共同开发的模型格式,而ONNX Runtime是一个单一推理引擎,在多平台和硬件上都提供良好的运行性能。开发者可以使用任何热门的框架,诸如TensorFlow或PyTorch来训练模型,将模型输出或转换成ONNX格式,就可以使用ONNX Runtime在Windows、Linux和Mac平台同时利用CPU和GPU进行模型推理。

ONNX Runtime 1.0更新了API,让整体的使用方法更加清楚,现在C API与ABI兼容,并且遵循语义版本控制,而目前与ONNX Runtime函数库连接的程序,在新版本中不需要改变任何客户端程序代码,或是重新连接就能继续使用,另外,微软还增加了Python和C# API的新能力,以实现功能检测(Feature Parity)。

ONNX Runtime也紧跟ONNX的规范,并囊括支持全面的功能,ONNX Runtime现在支持1.2之后的所有ONNX版本,具有向前与向后兼容性,可执行各种ONNX模型。ONNX Runtime 1.0也改进了性能,添加加Execution Provider以执行硬件加速,同时也尽量减少推理运算所默认的CPU和GPU延迟。

为了促进用户在正式生产环境中使用ONNX Runtime,微软发布了ONNX Go Live工具,该工具可以通过将模型转换、正确性测试和性能调校集成到单一工作管线中,成为一系列Docker镜像文件,以自动化ONNX模型的交付程序,此外,微软还更新量化工具,以支持改进ONNX Runtime中,推测量化模型的性能和精确度。

ONNX Runtime已经被微软大量用在一系列消费型产品中,包括Office、Bing、Windows和Skype中等60种模型,处理的内容范围涵盖图像和文本,ONNX Runtime有效提升模型的性能达2.5倍,表现比过去的推测解决方案都还要好。微软提到,除了性能提升之外,由于ONNX模型格式的高互通性,提高了基础设施的灵活性,让他们得以使用一个通用的Runtime,就能在大量的硬件上大规模部署模型。