70% фейлят ML System design 😱



За последние пару месяцев я провел 20+ ml system design собеседований.

~70% кандидатов после него оценил на грейд ниже ожиданий / неподходящие к вакансии (но Ок на другие) / no hire

Дам несколько советов, как можно улучшить результаты на таких собесах 🚀



У вас будет +- 40 минут на дизайн всей системы:

- Понять бизнес-проблему

- Сформулировать, зачем мы ее решаем + на какие бизнес-метрики влияем

- Перевести все это в ML-задачу

- Определить X, y

- Не забыть про loss и ml metrics (часто это разные вещи)

- Рассказать про алгоритм

- Способ валидации

- Обсудить, как катить все это дело в прод

- Проведение А/В

- Выкатка на 100%, мониторинг в проде и пару слов о дальнейшем развитии



1. Потренируйся хотя бы 2-3 раза

Как видите, пунктов много. Забыли хотя бы один - огромный минус. Потренируйтесь проходить такой тип собесов

У меня был кандидат, который пришел на ML system design, но даже не погуглил, что это - конечно это был фейл 🥲



2. Используйте Miro / draw.io

Если вы рисуете хорошую схему архитектуры, то становится в разы понятнее + вы точно не забудете детали. Но опять же, потренируйтесь рисовать схемы - иначе вы просто будете терять время на рисование непонятных квадратиков



3. Расскажите бейзлайн подробно, SOTA - кратко

Цель собеса - сделать рабочее решение. Показать свои знания SOTA - важно, но вторично. Поэтому сначала сделайте бейзлайн-решение со всеми пунктами выше, кратко упоминая как можно его улучшить. Останется время - в конце вернетесь к пункту Х и расскажете подробнее про SOTA



Хорошо: В бейзлайн версии переводим текстовое название и описание товара в вектор предобученным FastText. Потом можно потестировать файнтюн BERT / E5 / your_fancy_model

Плохо: Переводим текстовое описание в вектор через GPT-4о



В плохом варианте сразу возникнут вопросы, на которые вы НЕ успеете ответить: Как же стоимость api? как на проде это будет работать? что с перс данными? а кандидат точно знает, как работает gpt? и тд. Даже если вы знаете ответы - можете не успеть их рассказать, и впечатление будет смазанным



4. Простой как пробка продакшен

Вы даже не представляете, сколько кандидатов посыпалось на дизайне real-time рекомендаций, потому что это правда сложно

Если можете задизайнить batch-предикт для продакшена раз в ночь - сделайте лучше так. Останется время - попробуете вместо рассказа про SOTA прикинуть, как можно делать batch-предикт раз в пару минут или real-time



5. Не забывайте, что вы решаете бизнес-проблему

Очень легко в задаче "Удержания клиента" закончить на дизайне классификатора оттока. Проблема в том, что сам классификатор проблему не решает 🧠

Нужно еще поверх него накрутить логику push-рассылок с промокодами, понять издержки на них, выбрать оптимальную скидку и много всего вот этого бизнесового. Хорошо расскажете про бизнес - почти гарантированно получите +1 грейд



Прочитали? Вспомните п.1 и потренируйтесь -- решите хотя бы в 5-минутном MVP варианте дизайн для "Матчинг товаров нашего маркетплейса с маркетплейсом-конкурентом для прайсинга: Хотим ставить цены не дороже конкурента". Готов после ответов в комментариях накидать каверзные вопросы ⬇️



тг-канал @ml4value

#system_design #career