Ответ
Мой опыт охватывает полный цикл — от тренировочного ноутбука до работающего в продакшене сервиса. Я настраивал пайплайны с использованием 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) для автоматического переобучения моделей при изменении данных.