Machine Learning -- не универсальное решение. Прежде чем добавлять ML в систему, нужно ответить на ключевой вопрос: можно ли решить задачу правилами?
Дерево принятия решений
Задача определена?
├── Можно написать правила вручную?
│ ├── Да → Правила работают хорошо?
│ │ ├── Да → ML НЕ НУЖЕН (используй правила)
│ │ └── Нет → Попробуй ML
│ └── Нет → ML может помочь
├── Есть достаточно данных?
│ ├── Да (>10K примеров) → ML возможен
│ └── Нет → Сначала собери данные
└── Результат можно измерить?
├── Да → ML подходит
└── Нет → Определи метрики
Когда ML оправдан
Сценарий
Пример
Почему ML
Паттерны в данных сложные
Распознавание изображений
Невозможно описать правилами
Правила постоянно меняются
Спам-фильтр
Спамеры адаптируются
Персонализация
Рекомендации
Уникальные предпочтения каждого пользователя
Масштаб данных огромный
Fraud detection
Человек не может просмотреть миллионы транзакций
Прогнозирование
Demand forecasting
Множество факторов влияют на результат
Когда ML НЕ нужен
Сценарий
Лучшая альтернатива
Простая бизнес-логика
if/else правила
Детерминированные вычисления
Формулы, алгоритмы
Мало данных (<100 примеров)
Ручная разметка, правила
Требуется 100% точность
Формальная верификация
Нет обратной связи
Невозможно обучить модель
ML Pipeline
ML pipeline -- это последовательность этапов от данных до работающей модели в production.
Общая архитектура
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Data │──▶│Feature │──▶│ Model │──▶│ Model │──▶│ Model │
│Ingestion│ │Engineer.│ │Training │ │ Serving │ │Monitoring│
└─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
Raw Data Features Artifacts Predictions Metrics
Storage Store Registry API/Batch Dashboard
Этап 1: Data Ingestion
Сбор и хранение данных -- фундамент любого ML-проекта.
Задача
Инструменты
Ключевые аспекты
Сбор
Kafka, Flink, Airflow
Батч vs стриминг
Хранение
S3, Data Lake, BigQuery
Формат: Parquet, Avro
Качество
Great Expectations, Deequ
Валидация, мониторинг
Версионирование
DVC, LakeFS
Воспроизводимость
Этап 2: Feature Engineering
Feature engineering -- преобразование сырых данных в признаки для модели.
Raw Data Features
───────── ────────
user_registered: 2023-01-15 → account_age_days: 760
purchase_history: [...] → avg_order_value: 45.2
→ purchase_frequency: 3.2/month
→ days_since_last_purchase: 12
page_views: [...] → session_duration_avg: 4.5min
→ pages_per_session: 7.3
Этап 3: Model Training
Компонент
Описание
Experiment tracking
MLflow, W&B -- логирование гиперпараметров и метрик