Часть 1
Прошлая часть серии тут
Вообще мой любимый этап собеседований.
Уникальность этого собеседования заключается в том, чтобы суметь построить полный пайплайн решения ML задачи. Всегда коррелирует с тем направлением, на которое вы собеседуетесь. Если вы пришли на вакансию по временным рядам, то скорее всего вам нужно будет спроектировать ML систему с временными рядами. Отличие этой части от описанных выше в том, что к этому просто так заранее не подготовиться (хотя я знаю кейсы, где подготовка очень зарешала), так как обсуждение системы требует не только широкого понимания моделей и процессов, но и знания различных узких мест и допущений. Обычно такое собеседование проводят уже не начальные позиции, но все же вероятность попасть на такое собеседование в начале своего пути существует.
Интересный факт - здесь вопросы надо задавать собеседующему и говорить почти что в соло, как будто ведем монолог. Можно даже представить это в виде некоторой сцены, где вы являетесь синьором в компании, а к вам пришел заказчик и просит решить для него важную задачу (такая важная, аж сам СЕО попросил). Как истинный
Как я люблю повторять, в каждом из собеседований есть свой пайплайн. Здесь это можно выразить определенную структуру:
(вообще я думаю, что этот пайплайн правильно использовать и при решении ваших рабочих задач, а не только применять для прохождения собеседований, поэтому попробую копнуть чуть подробнее)
1. Раскрытие постановки задачи
Самое главное - это вообще что конкретно мы решаем. Допустим, стоит задача “спрогнозировать количество продаж сырков в Лавке”. В одной только такой постановке задачи спрятан целый айсберг. Во первых надо уточнить, что мы понимаем под сырками и все ли вообще продаваемые нами сырки туда входят. Далее надо определиться с горизонтом прогнозирования и дискретизацией получаемых прогнозов. Допустим, мы пришли к постановке: “Спрогнозировать количество всех проданных сырков за каждый день на Лавке на следующую неделю”.
Тут надо еще уточнить, а в какой день недели мы получаем этот прогноз? Если прогноз нужен в воскресенье для развоза, то кажется надо прогнозировать на 8 дней вперед (ВС + 7 дней). А если нужно еще учесть и лаг закупок и поставок, то срок вполне может увеличиться и на неделю. То есть уже нам нужно прогнозировать на срок 1 неделю, которая будет идти за этой. Ну или в другой постановке это срок [T+8, T+14].
Далее нам нужно узнать, требуются восстановленные продажи с учетом спроса, либо мы допускаем, что итак 100% покрываем весь спрос? Подробнее можно почитать например в этой статье от коллег из Самоката.
Давайте для упрощения оставим полученную ранее формулировку задачи и зафиналим таким образом: “Спрогнозировать количество всех проданных сырков за каждый день на Лавке на следующую неделю”. (как вы наверно заметили, тут уже по заданным вопросам заметно, что человек как минимум осмысливал данную задачу в голове)
Продолжение ниже ⬇️
#interview #ml #systemdesign