Introduction of MotokoLearn V0.1: on-chain training and inference of machine learning models


Motokolearn is a Motoko package meant to facilitate on-chain training and inference of machine learning models where having a GPU is not a requirement.

Project github: GitHub - ildefons/motokolearn

Why on-chain training and inference of machine learning models is interesting?​

  • Web3 services using on-chain trained models can inherit security and verification capabilities from the underlying Internet Computer protocol ​
  • Overall dapp architecture can be simplified by eeliminate dependencies with external web2 providers and/or avoid using pre-compiled WASM modules of pre-trained machine learning models

Why do we care about small to mid-sized data problems not requiring a GPU?​

  • Small to medium size data problems of heterogenous “tabular” data is often better solved with ensemble of boosted trees​
  • From personal experience, 1) many Kaggle challenges are better solved with ensembles of trees; and 2) last year alone, I consulted with three medium sized startups and all projects involved data bases below 100 megabytes and none of them required the use of large neural network nor GPUs.

Installation and tutorial: motokolearn/ at master · ildefons/motokolearn · GitHub

Next steps:

:white_check_mark: Final Dfinity Grant milestone review
2) Do mops package
3) Integration of linear algebra library (linear solver and matrix decomposition functionalities)
4) Development of filtering methods for efficient sequential model updates (Kalman filter, recursive least squares)
5) Development of clusting methods (K-means, spectral clustering)
6) Community support

Please, let me know if you are interested in prioritizing a particular machine learning method


Not a machine learning dev, but as a Motoko dev I appreciate when people decide to expand the Motoko ecosystem. Nice work