As AI and deep learning have gone mainstream, a wide range of companies have announced they’ll bring compatible products to market. Everyone from Google and Nvidia to AMD and Fujitsu have thrown their hats into this particular ring. But the software that runs on deep learning and AI-specific hardware is still typically a custom solution developed by individual companies. Microsoft and Facebook are teaming up to change that, with a new common framework for developing deep learning models.
The Open Neural Network Exchange (ONNX) is described as a standard that will allow developers to move their neural networks from one framework to another, provided both adhere to the ONNX standard. According to the joint press release from the two companies, this isn’t currently the case. Companies must choose the framework they’re going to use for their model before they start developing it, but the framework that offers the best options for testing and tweaking a neural network aren’t necessarily the frameworks with the features you want when you bring a product to market. The press release states that Caffe2, PyTorch, and Microsoft’s Cognitive Toolkit will all support the ONNX standard when it’s released this month. Models trained with one framework will be able to move to another for inference.
Facebook’s side of the post has a bit more detail on how this benefits developers and what kind of code compatibility was required to support it. It describes PyTorch as having been built to “push the limits of research frameworks, to unlock researchers from the constraints of a platform and allow them to express their ideas easier than before.” Caffe2, in contrast, emphasizes “products, mobile, and extreme performance in mind. The internals of Caffe2 are flexible and highly optimized, so we can ship bigger and better models into underpowered hardware using every trick in the book.” By creating a standard that allows models to move from one framework to another, developers are able to take advantage of the strengths of both.
There are still some limitations on ONNX. It’s not currently compatible with dynamic flow control in PyTorch, and FB alludes to other incompatibilities with “advanced programs” in PyTorch that it doesn’t detail. Still, this early effort to create common ground is a positive step. Most of the ubiquitous ecosystems we take for granted — USB compatibility, 4G LTE networks, and Wi-Fi, just to name a few — are fundamentally enabled by standards. A silo’d go-it-alone solution can work for a company developing a solution it only intends to use internally, but if you want to offer a platform others can use to build content, standardizing that model is how you encourage others to use it.
The major difference between Microsoft and the other companies developing AI and deep learning products is the difficulty Redmond faces in baking them into its consumer-facing lineup. With Windows 10 Mobile effectively dead, MS has to rely on its Windows market to drive people towards Cortana. That’s an intrinsically weaker position than Apple or Google, both of which have huge mobile platforms or Facebook, which has over a billion users. ONNX should benefit all the players working on AI, but it’s probably more important for MS than for other companies with larger user bases. When you own the most popular phone OS on Earth, you don’t have to worry much about whether someone else’s neural network models play nicely with yours.
Now read: Artificial neural networks are changing the world. What are they?