S

Samaritan

A Distributed Model Training and Monetization Utility A system that accepts complete Docker Image or model specifications from users and concurrently trains models on idle Android devices and PCs.

S

Samaritan

A Distributed Model Training and Monetization Utility A system that accepts complete Docker Image or model specifications from users and concurrently trains models on idle Android devices and PCs.


The problem Samaritan solves

We aim to solve a very targeted problem of the lack of computational juice for the heavyweight task of training models. Existing cloud solutions and GPU enabled machines mildly mitigate the problem, but skewed availability is still a barrier.
Samaritan is a volunteer computing product, wherein we harness the untapped potential of the ever incrementing computing power of multiple Android devices and laptops distributed over a network to train your deep neural networks.
We do not boast of attending to the issue of distributed computing in its entirety, ranging from futile, breakable tasks like checking for huge primes or the impossible tasks that can't be broken down into parallel subtasks, however, we managed to build and achieve highly accurate trained Deep neural nets on Android devices alone (which is the real bottleneck to the problem statement).

We aim to target two audience:

  1. Experts in the field of deep NNs, who'd know their stuff and would upload dockers of complete scripts and datasets.
  2. Novice people, who'll be able to create a model by just specifying the layers and providing the dataset.

Challenges we ran into

  1. Open source support was inadequate, Tensorflow and PyTorch donot support model training on Android devices.
  2. Scarce resources/tools/strategies/algorithms for distributed training of models (both data and model distribution)
  3. Automated script generation from a mere interactive UI for specifying layers for the model desired.

Technologies used

Discussion