🏢 Ситуация
Понедельник, 9:30. Вы — новый Junior ML Engineer в компании Datacore — маркетплейсе с 2 млн активных пользователей и собственным финтех-продуктом (рассрочка и кошелёк).
Вас встречает Лена, тимлид ML-команды:
«Добро пожаловать! Наша команда — это я, сеньор дата-сайентист Игорь, дата-инженер Аня и теперь ты. Мы делаем модели, которые реально влияют на деньги: рекомендации товаров, антифрод, прогноз спроса, скоринг рассрочки. Сегодня без кода — разберись, как вообще устроен ML-проект у нас. В среду синк с продактом Максом, он любит спрашивать новичков, чем ML отличается от "просто написать if-else". Подготовься.»
🎯 Ваша задача
- Понять, что такое машинное обучение и когда оно нужно, а когда — нет.
- Разобраться в жизненном цикле ML-проекта.
- Понять роли в команде: кто за что отвечает.
📚 Теория
Что такое машинное обучение
Классическое определение Артура Самуэля (1959): машинное обучение — это область, которая даёт компьютерам способность обучаться без явного программирования.
Практическое определение для синка с Максом:
- Обычный код: человек пишет правила → программа применяет их к данным → получаем ответ.
- ML: человек даёт данные и ответы (примеры) → алгоритм сам находит правила (модель) → модель даёт ответы на новых данных.
ML нужен, когда правил слишком много, они неочевидны или постоянно меняются. Отличить кота от собаки на фото через if-else невозможно — а по 100 000 размеченных фото модель обучается.
Когда ML — плохая идея
Джуны часто хотят «прикрутить ML» везде. Опытные инженеры сначала спрашивают:
| Вопрос | Если ответ «нет» — ML не нужен |
|---|---|
| Есть ли данные (много и релевантных)? | Без данных модель не обучить |
| Правила сложно выписать вручную? | 3 понятных правила → пишите if-else |
| Допустимы ли ошибки? | ML всегда ошибается в каком-то % случаев |
| Есть ли способ измерить качество? | Без метрики нельзя понять, работает ли модель |
Типы задач машинного обучения
- Обучение с учителем (supervised): есть примеры «вход → правильный ответ».
- Регрессия — предсказать число (цену доставки, спрос).
- Классификация — предсказать класс (уйдёт клиент / останется, фрод / не фрод).
- Обучение без учителя (unsupervised): ответов нет, ищем структуру в данных (кластеризация клиентов, поиск аномалий).
- Обучение с подкреплением (reinforcement): агент учится через награду (рекомендации в ленте, робототехника).
В Datacore 90% задач — supervised. Так почти во всём бизнесе.
Жизненный цикл ML-проекта
Andrew Ng в курсе Machine Learning Specialization описывает цикл так, и в реальных командах он выглядит одинаково:
Важные правды из практики:
- 60–80% времени уходит на данные, а не на модели.
- Первая модель должна быть простой — бейзлайн. Сначала логистическая регрессия, потом нейросети.
- Проект не заканчивается деплоем: данные «дрейфуют», модель деградирует, её надо мониторить.
Роли в команде
| Роль | Что делает | В Datacore |
|---|---|---|
| Data Engineer | пайплайны данных, хранилища, качество данных | Аня |
| Data Scientist | исследования, гипотезы, модели, метрики | Игорь |
| ML Engineer | модели + продакшен: сервисы, деплой, мониторинг | вы |
| Product Manager | бизнес-задача, приоритеты, ценность для пользователя | Макс |
| Team Lead | архитектура решений, ревью, рост команды | Лена |
Границы размыты: в маленьких командах ML-инженер делает всё от EDA до деплоя. Именно поэтому симулятор проведёт вас через весь цикл.