Course Abstract

Training duration : 2.5 hours

Machine learning models are only useful if they’re used. Although that might be ridiculously obvious, it’s much easier to build a model than it is to use it in production. Consequently, models, more often than not, never find their way out of the notebook. Never actually interact with a customer. And just generally collect digital dust... Learn how to break out of the Jupyter notebook and continuously deploy your machine learning models to an API end-point with Dokku and FastAPI. Once setup, pushing changes will be as easy as git push!

DIFFICULTY LEVEL: INTERMEDIATE

Learning Objectives

  • How to structure and serialize sklearn code for model deployment

  • How to create API endpoints for machine learning code

  • How to continuously deploy changes to modeling code

Instructor

Instructor Bio:

Distinguished Faculty Member | General Assembly

Max Humber

Max Humber is the creator of gazpacho, the author of Personal Finance with Python, and a Distinguished Faculty Member at General Assembly.

Course Outline

Introduction ( 10 | 10 minutes ) 

  • Who am I, and who are you?

  • The problem with Jupyter

  • The Data Hierarchy of Needs

  • Model deployment overview


Model Preparation ( 20 | 30 minutes )

  • Model Scaffolding

  • ML and pipeline objects

  • Model serialization options

  • Exercise: Serialize a machine learning model


API Development ( 30 | 70 minutes )

  • FastAPI Overview

  • FastAPI for Flask Users

  • FastAPI and ML models

  • Exercise: Connect a machine learning model to an API endpoint


Deploying to Heroku ( 20 | 95 minutes )

  • Setup and configure Heroku

  • Connect a repo to Heroku

  • Deploy changes to Heroku

  • Exercise: Deploy a API endpoint to Heroku


Deploying to Dokku ( 25 | 110 Minutes )

  • Benefits of Dokku

  • Server setup and configuration

  • Dokku configuration and deployment

  • Connect a custom domain to Dokku

  • Exercise: Deploy an ML-enabled endpoint to Dokku


Conclusion ( 5 | 115 minutes )

Background knowledge

  • Data Scientists/Engineers who work with Jupyter notebooks

  • Engineers that deploy machine learning APIs

  • Experience with Python, pandas and scikit-learn

  • Experience with Flask will be helpful, but is not required