Какой у вас опыт в области MLOps?

«Какой у вас опыт в области MLOps?» — вопрос из категории MLOps и деплой моделей, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Мой опыт охватывает полный цикл — от тренировочного ноутбука до работающего в продакшене сервиса. Я настраивал пайплайны с использованием MLflow для трекинга экспериментов и DVC для версионирования данных и моделей.

Для деплоя чаще всего использовал FastAPI-сервисы, упакованные в Docker-контейнеры и оркестрируемые через Kubernetes. Вот пример минимального сервиса для инференса:

# app.py
from fastapi import FastAPI
import joblib
import numpy as np

app = FastAPI()
model = joblib.load('model.pkl')

@app.post('/predict')
async def predict(features: list):
    prediction = model.predict(np.array(features).reshape(1, -1))
    return {'prediction': int(prediction[0])}
# Dockerfile
FROM python:3.9-slim
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY app.py model.pkl .
CMD ['uvicorn', 'app:app', '--host', '0.0.0.0', '--port', '8000']

Также работал с мониторингом дрейфа данных через Evidently AI и настройкой CI/CD (GitHub Actions/GitLab CI) для автоматического переобучения моделей при изменении данных.