Коротко про навыки ML инженера
Я считаю, что каждый ML инженер, кроме своей области ML, должен разбираться еще в двух вещах:
- алгоритмах;
- инфраструктуре, которую он использует.
В целом это верно в том числе и для дата инженеров.
Понимание алгоритмов дает вам интуицию при оценке скорости работы вашего кода (а еще иногда идеи для ускорения).
Однажды я увидел в продакшене код составления драфта рекомендаций, который при добавлении нового объекта, проверял вхождение категории этого объекта в список уже добавленных категорий. Список. Не хэшмапа, не множество, список. Теперь я считаю, что обязательно собеседовать человека на алгоритмы. Даже если ты лид — будь добр, тебе еще потом код ревью делать.
Инфраструктура обычно скользкий вопрос.
Авг ответ: а зачем я должен разбираться в этом, есть же специально обученные люди?
Ну в целом и ответ тоже базированный: может быть тогда проще научить девопса запускать фитпредикт? Заодно сэкономим на ФОТ.
Если вы понимаете, как работает инфра — вы можете быть более продуктивны. В целом считаю, что написать Gitlab CI пайплайн — это не так сложно. Уметь писать докерфайлы — базовый навык инженера уже.
В общем, теперь всегда на собесах спрашиваю что-то наподобие:
- в чем разница между cmd и run в dockerfile?
run описывает как надо собирать образ, а cmd — что нужно по дефолту запускать при старте контейнера;
- в чем разница между докер образом и докер контейнером?
Образ — описание, как нужно будет запускать исполняемую «виртуальную» среду, а контейнер — сама исполняемая среда.
Если хочется детальнее поизучать про Docker и Kubernetes, рекомендую почитать «Kubernetes в действии» Марко Лукша. Книга не первой свежести (2018 год), но все еще актуальная, хорошо описывает базу.
Post #9
844
- 🔥 9
- ❤ 2