ONNX: a model stops belonging to its framework
On 7 September 2017 Microsoft and Facebook jointly announced an open exchange format for neural networks. A trained model could now be moved between frameworks without being rewritten.
Why it matters
Until then the choice of framework was a choice for the life of the model: what was trained in one would not run in another without hand porting. The format broke that tie and made ordinary what is now taken for granted, training in one place and serving somewhere else.
The announcement was written by Eric Boyd, Corporate Vice President for the Azure AI Platform. Its statement of purpose, verbatim: "ONNX provides a shared model representation for interoperability and innovation in the AI framework ecosystem." Cognitive Toolkit, Caffe2 and PyTorch were named as supporting it at launch. The date is confirmed by three independent records that all land on 7 September 2017: the announcement itself, the creation of the onnx/onnx repository, and the first upload of the onnx package at version 0.1 to the Python package index. Three traces falling on one day is rare, and it makes this one of the most securely fixed dates in the collection. The format was first called Toffee and came out of the PyTorch team; it was renamed ONNX for this announcement.