Розроблення моделей машинного навчання для продакшну
Sinan Ozdemir
Data Scientist, Entrepreneur, and Author
Методи пакування
Серіалізація — зберігання та відновлення моделі ML
Пакування середовища — узгоджуване й відтворюване середовище для моделі ML
Контейнеризація — пакування моделі, залежностей і середовища в один "container"
Серіалізація моделі sklearn за допомогою pickle:
import pickle
model = ... # Train the scikit-learn model
# Serialize the model to a file
with open('model.pkl', 'wb') as f:
pickle.dump(model, f)
# Load the serialized model from the file
with open('model.pkl', 'rb') as f:
model = pickle.load(f)
Серіалізація моделі sklearn у форматі HDF5:
import h5py
import numpy as np
from sklearn.externals import joblib
model = ... # Train the scikit-learn model
# Serialize the model to an HDF5 file
with h5py.File('model.h5', 'w') as f:
f.create_dataset('model_weights',
data=joblib.dump(model))
# Load the serialized model from the HDF5 file
with h5py.File('model.h5', 'r') as f:
model = joblib.load(f['model_weights'][:])
Серіалізація моделі PyTorch:
import torch
# Train a PyTorch model and store it in a variable
trained_model = ...
# Serialize the trained model to a file
serialized_model_path = 'model.pt'
torch.save(trained_model.state_dict(), serialized_model_path)
# Load the serialized model from a file
loaded_model = ... # Initialize the model
loaded_model.load_state_dict(
torch.load(serialized_model_path))
Серіалізація моделі Tensorflow:
import tensorflow as tf
# Train a Tensorflow model
trained_model = ...
# Save the trained model to a directory
saved_model_directory = 'model/'
tf.saved_model.save
(trained_model, saved_model_directory)
# Load the saved model from the directory
loaded_model = tf.saved_model.load(
saved_model_directory)

# Use an existing image as the base image
FROM python:3.8-slim
# Set the working directory
WORKDIR /app
# Copy the requirements file to the image
COPY requirements.txt .
# Install the required dependencies
RUN pip install -r requirements.txt
# Copy the ML model and its dependencies to the image
COPY model/ .
# Set the entrypoint to run the model
ENTRYPOINT ["python", "run_model.py"]
<---- Використайте базовий образ Python 3.8
<---- Встановіть робочий каталог
<---- Скопіюйте файл requirmentes.txt
<---- Встановіть пакети-залежності моделі
<---- Скопіюйте модель у контейнер
<---- Вкажіть, як запускати контейнер
Серіалізуйте навчений ML-модель у форматі на кшталт pickle, HDF5 або PyTorch.
Законтейнеризуйте серіалізовану модель ML, її залежності та середовище
Розгорніть Docker-образ у цільовому середовищі, напр., у хмарі
Запустіть Docker‑контейнер із розгорнутого образу та виконайте модель ML.
Використовуйте модель у контейнері через API або іншу точку доступу.

Розроблення моделей машинного навчання для продакшну