Зачем ml - специалисту навыки разработчика
Когда я только устраивался ml-специалистом, то имел представление только о Kaggle. Думал, что буду целый день крутить данные и делать модели. А пользу для бизнеса они уже сами как нибудь принесут. Но реальность оказалась совсем другой.
Оказалось, что модель должна быть в ПРОДе. Код применения модели необходимо покрыть тестами, добавить типизацию, прогнать линтеры и так далее. Далее код необходимо положить в гит. И не просто положить, а по определенным правилам и в определенную ветку, чтобы CI/CD процесс его подхватил и понес дальше на ПРОД или ПРЕПРОД.
Ок, кажется, что такое могут делать, например, MLOPS, адаптируя код ml-специалиста и отправляя его в прод (в крупных компаниях так и организовано). Где же нужна разработка при обучении моделей? Честно сказать, кажется, что везде!
Когда-то Евгений Соколов сказал: в классическом ML все "танцы с бубном" вокруг создания факторов, а в DL - вокруг инженерии (а все потому, что постоянно что-то не заводится или не запускается). Вот и первый пример - DL. Действительно, завести какую-нибудь нейронку со своими данными бывает ой как не просто.
Какие еще примеры? 🔵 Создание библиотек - тут паттерны проектирования, сборка библиотеки 🔵 Переиспользование кода - создали, например, скрипт сбора факторов. Конечно лучше его оформить, сделать универсальным и выложить для всей команды 🔵 Передача модели на внедрение - если batch модель, то нужно передать окружение и код, например, в py файлах. А вот если онлайн модель - то там и сервис нужно написать, и system design применить 🔵 И т.д.
Таких примеров может быть много, но самый главный пример - это создание ценности для заказчика/компании. То есть бОльшая ценность - это не разработка модели, а ее работа для клиентов (ведь именно в это время она приносит ценность). А в эру хайпа LLM без навыков разработчика вообще никуда.
В итоге, закончу известной в некоторых кругах фразой: разработчика обучить ML относительно просто, а вот ml-специалиста обучить разработке …! PS: Подставь свое))