Unified Machine Learning



We're on a mission to unify all ML frameworks

pip install ivy-core, join our community, and lets unify!

Get Started!
run any
code
in any
pipeline
with any
backend
on any
hardware
GPU
TPU
CPU
Multi Node

Any Code

Take any code that you'd like to include. For example, an existing TensorFlow model, and some useful functions from both PyTorch and NumPy libraries

Any Pipeline

Choose any framework for writing your higher level pipeline, including data loading, distributed training, analytics, logging, visualization etc.

Any Backend

Choose any backend framework which should be used under the hood, for running this entire pipeline

Any Hardware

Choose the most appropriate device or combination of devices for your needs.

Any Model


Example

Your ML pipeline is written in PyTorch

DeepMind releases an awesome model on GitHub, written in JAX. We'll use PerceiverIO as an example

You'd like to try this out in your pipeline

Current Solution

Implement the model in PyTorch yourself, spending time and energy ensuring every detail is correct

Otherwise, wait for a PyTorch version to appear on GitHub, among the many re-implementation attempts that appear (a, b, c, d, e, f)

Despite best efforts, there are subtle bugs and deviations from the original

Ivy Solution

Instantly transpile the JAX model to PyTorch

This creates an identical PyTorch equivalent of the original model

Any User


Example

You have written a PyTorch library, and released this on GitHub

JAX, TensorFlow and other ML developers cannot use your library

Your library is only useful to a subset of all ML developers

Current Solution

Limit your audience to users of your chosen framework, in this case PyTorch

Wait for others in the community to create similar spin-off tools for the other frameworks, which address the needs of these users independently

Ivy Solution

Open up your library to all ML developers simultaneously, without any code changes

Add examples, showing how Ivy can transpile any function in your library to any target framework

One Library


Example

You want to create a new suite of ML tools, and open-source these for the community

You could write these tools in one framework, but this would limit your users, preventing many in the ML community from using it

Current Solution

Duplicate all of the work, re-implementing the entire library or creating similar variants in multiple frameworks independently

For example, LucidLucent, Speech CommandsHonk, torchvisionflaxvision, Graph NetsJraph, TensorFlow ProbabilityDistrax and SonnetHaiku

Ivy Solution

Write your library in Ivy

Users will be able to use your library with any framework, including ones not yet invented

All code can be stepped through line-by-line, which is not the case when transpiling individual functions from pre-existing non-Ivy libraries

One Pipeline


Example

You want to provide tools for the higher level ML pipeline: data loading, distributed training, experiment tracking, logging, visualization etc.

Writing these tools using a single framework would make the pipeline incompatible with all other frameworks

Current Solution

Patch things together as best you can, with framework-specific subfolders, so that the codebase supports multiple frameworks where possible

For example: RLlib, transformers, einops, DGL, Horovod, Determined, PennyLane, TensorLy, cvxpylayers

Ivy Solution

Write your pipeline tools in Ivy

Developers can use your pipeline with any framework, including ones not yet invented

Anyone can step through your pipeline line-by-line when using it, regardless of framework

Coming Soon


Get Involved!


All are welcome to join our discord, raise issues, make pull requests or apply to join our team!

This applies to veteran developers and also to total beginners, everyone is welcome on board!