Skip to content

HangenYuu/SeeFood101

Repository files navigation

SeeFood101

Part 1

My evolving first personal in deep learning, specifically in image classification. The biggest objective is to teach me PyTorch. This can be divided into finer objectives:

  1. Finish the process of training a model end-to-end, which includes:
    1. Get the data.
    2. Get the model.
    3. Run the train + validation loop.
    4. Save the model.
    5. All within Jupyter Notebook.
  2. Fine-tune a pre-trained model instead of training from scratch.
  3. Export the useful helper functions into a folder for reusability.
  4. Use the most basic tool i.e., TensorBoard to track the training result.
  5. Replicate (the architecture, not the training data or computing resource) one research paper.
  6. Deploy the model to the simplest option: HuggingFace Space (and keep it alive through a Discord Bot).

Update 30/06/2023: Part 1 is completed. I am officially confident about implementing PyTorch, in the sense that now I know enough to get started on any project and trust that I can find my way through if I am stuck.

The model is deployed at https://huggingface.co/spaces/HangenYuu/SeeFood101v1.

Let's start on Part 2.

Part 2

Machine learning engineering is 10% machine learning and 90% engineering.

Chip Huyen, my intellectual hero

In production i.e., where it actually matters for many people, training and saving a model on its own does not matter. The details can be summarized into this table taken from Designing Machine Learning Systems from Huyen Chip.

Research Production
Requirements State-of-the-art model performance on benchmark datasets Different stakeholders have different requirements
Computational priority Fast training, high throughput Fast inference, low latency
Data Static Constantly shifting
Fairness Often not a focus Must be considered
Interpretability Often not a focus Must be considered

Hence, for someone wanting to become an MLE (such as the writer), learning how to train a model is not enough. I also need to learn how to deploy, monitor, and maintain the model.

So again, the biggest objective is to teach me MLOps (at least the part that you can learn before going into a job). The finer objectives are...

UPDATE: Move part 2 to a separate GitHub repo at https://github.com/HangenYuu/SeeFood102