Robust Transformer

Abhijit Gupta

Abhijit Gupta

Pune, Maharashtra

0 0
  • 0 Collaborators

A tool for designing reproducible Machine learning experiments. It’s an end to end functional style data transformation distributed pipeline built on top of Intel OneAPI and Google JAX. ...learn more

Project status: Published/In Market

oneAPI, HPC, Artificial Intelligence

Groups
Student Developers for AI, DeepLearning, Artificial Intelligence India

Intel Technologies
DevCloud, oneAPI

Docs/PDFs [1]Code Samples [1]

Overview / Usage

Robust Transformer - a tool for designing reproducible Machine learning experiments. It’s an end to end functional style data transformation distributed pipeline built on top of Intel OneAPI and Google JAX. The functional style and fine controlled training protocols will help users in getting clean reproducible results with minimum hassle. It’s inspired from Haskell, so most of the functions and annotations might seem familiar to Functional programming enthusiasts.

Here's an example of our approach:

Obtaining reproducable results from Nested Cross validation(double CV) is as easy as composing the outer fold and inner fold together. Function composability provides the user with a streamlined workflow.

toolz.compose(lambda x: inner\_loop((yield from x)), outer\_loop) (key=rng\_input, raw\_data=tester\_df, n=5)  

Methodology / Approach

One of the key challenges machine learning researchers and practioners face today is reproducability. More often than not use of several impure functions in conjunctions lead to poor reproducability, especially when working on small datasets. One of the key components in our approach is use of JAX-PRNG(pseudo random number generator) Among other requirements, the JAX PRNG aims to: (a) ensure reproducibility, (b) parallelize well, both in terms of vectorization (generating array values) and multi-replica, multi-core computation. In particular it should not use sequencing constraints between random function calls. Here, we can tightly control how we generate random numbers which are then used in splitting our dataset for (a) cross-validation (b) Distributed double cross-validation, which involves hyperparameter tuning along with model evaluation. There are several other functions that will be made available for efficient and parallelizable data transformation workflow. We ensure that all of them follow our core design principle of composability and chaining. This ensures no data leaks between different sub tasks and hence multiple experimental runs are all reproducable.

Technologies Used

We have used Intel DevCloud powered by Intel OneAPI as our deployment and testing machine. Google JAX was used for writing pure functional implemnetation of many common machine learning subtasks.

Documents and Presentations

Repository

https://github.com/abhijitmjj/Robust-transformer

Comments (0)