Learning step of a Machine Learning application

After working mainly in Jupyter Notebooks, I have a question about deploying a Machine Learning application as a web application with streamlit.

I know that it is necessary to make the difference between the platform chosen for the deployment and the technology used. As a platform I know there is Amazon AWS, Google Cloud Platform, Microsoft Azure, Heroku… and even Streamlit Cloud!

As a beginner who wants to easily and quickly build a portfolio, I chose streamlit as technology AND as deployment Cloud.

However, I have an important question that is probably common to all deployment solutions. In an ML project there is obviously a step of data collecting, data cleaning and especially training of a model (which can be very time consuming with Deep Learning for example). It is clear that these first steps are to be done ONLY ONCE. My question is therefore the following: how to deploy an ML application in such a way that the training step is done only once and NOT each time a user will use my application.

Maybe there are multiple answers (some of which don’t use streamlit). All of them interest me, but which are considered as good practice?

Pierre (from France)

There is an article in the docs about optimizing apps when expensive operations are involved:

1 Like