IVY: An Open-Source Tool To Make Deep Learning Code Compatible Across Frameworks

This Article Is Based On The Research  'IVY: TEMPLATED DEEP LEARNING FOR INTER-FRAMEWORK PORTABILITY'. All Credit For This Research Goes To The Researchers Of This Paper 👏👏👏

Please Don't Forget To Join Our ML Subreddit

As ML aficionados, we’ve all come across interesting projects on GitHub only to discover that they are not in the framework we want and are familiar with. It can be tedious at times to reimplement the whole codebase in our framework, let alone deal with any errors that may arise throughout the process. It is a tedious chore that no one wants to do. Isn’t it good to have something that doesn’t care what framework you’re using? It will provide you with code in your desired framework, whether it is JAX, PyTorch, MXNet, Numpy, or TensorFlow. This is what IVY is attempting to do by unifying all ML frameworks.

The number of open-source machine learning projects has surged significantly over the past. This is evident by the fast-growing number of Github repositories using the keyword Deep learning. Because of different frameworks, code sharability has been considerably hampered. Aside from that, many frameworks become obsolete in comparison to newer frameworks. For software development where collaboration is vital, this is a significant bottleneck. As newer frameworks come into the scene framework-specific code quickly becomes obsolete, and transferring code across frameworks is akin to reinventing the wheel.

Source: https://arxiv.org/pdf/2102.02886.pdf

In today’s collaborative environment, it is vital to find a common level of abstraction. The development of IVY began with the language, with Python emerging as the clear choice we go further into Python frameworks, and we see that they all operate on the same fundamental principles. A tensor can be manipulated in a variety of ways, but the core tensor operations are constant across frameworks. As a result, IVY was formed as a basic abstraction layer.

Your code has an infinite shell life with IVY since it is no longer reliant on the framework in which it was developed. There will be no more wasting time porting code across frameworks.  If a new Python framework is released in the future, adding it to IVY will make all old code compatible with the new framework.

How to use it?

Getting started with IVY is very easy. Ivy can be installed from PyPi using

pip install ivy-core

You can straightaway use IVY to train a neural network with the backend framework of your choice. IVY can serve 2 purposes:

  1. Act as a new ML framework with multi-framework support
  2. Act as a transpiler between frameworks (under development)

It is an open-source program and anyone can join their journey towards ML framework unification. 

GitHub: https://github.com/unifyai/ivy

Paper: https://arxiv.org/pdf/2102.02886.pdf

Project: https://lets-unify.ai/ivy/