Skip to main content

Tech stack, documentation, frameworks and monitoring

Machine Learning Tech Stack

  1. Pytorch
  2. Keras
  3. fastai
  4. sklearn
  5. LightGBM
  6. XGBoost

Tracking runs and experiments

  1. We are going to stick with Weights and Biases for logging and tracking everything

Hyperparameter tuning

  1. For fastai, finding the optimal learning rate Learner.lr_find()
  2. For Keras, we use keras_tuner
  3. Never did any hyperparameter tuning with Pytorch
  4. For boosting based methods
    1. Random Search
    2. Grid Search
    3. Bayesian Search: Colab Notebook
  5. Guide from Neptune.ai on different tools having hyperparameter tuning frameworks
    1. Link to the blog

Notebook documentation (nbdev1)

  1. Document notebooks as you go along
  2. Allows for creation of Python APIs with ease
  3. Will migrate to nbdev2 in the near future
  4. Allow code and documentation to live closer to each other
  5. It is setup with CI so that modules can be tested as we go along and so that things don't break once the project becomes too big
  6. Ease of writing unit tests in the notebook
    1. nbdev2 will allow exporting unit tests to a module so that it can be integrated with unittest and pytest

Notebook documentation (nbdev2)

  1. All existing projects in nbdev1 have been migrated to nbdev2.
  2. nbdev2 is not backwards compatible with nbdev1

Dev Documentation

  1. Docusaurus
  2. Dropbox
  3. Word documents

Dev Documentation

Designing end to end ML Sytems

This needs to be looked at and a tool needs to be chosen.

  1. MLFlow
  2. Metaflow
  3. Ray

Prototyping

  1. For quick prototyping and creating simple web apps, we intend to use streamlit
  2. Other frameworks that we have explored in the past include wave from h2o.ai.
  3. Something we haven't tried is gradio