Занимались ли разработкой ML-моделей?

Ответ

Нет, я не занимался полноценной разработкой и обучением ML-моделей "с нуля". Мой опыт лежит в смежной области — создании и поддержке инфраструктуры для машинного обучения (MLOps) и интеграции готовых моделей в production-системы. Например:

  • Разработка ETL-пайплайнов для подготовки данных.
  • Создание сервисов-оберток (REST API на FastAPI) для предобученных моделей (например, для классификации текста или рекомендаций).
  • Настройка CI/CD пайплайнов для версионирования моделей и их автоматического деплоя.
  • Работа с инструментами вроде MLflow для трекинга экспериментов.

Ответ 18+ 🔞

Давай я тебе на пальцах объясню, чтобы не было никаких иллюзий. Я не тот чувак, который сидит и с нуля нейросети из говна и палок собирает, чтобы они котиков от собак отличали. Нет, блядь.

Моя история — это про то, что происходит после того, как эти умники-датасаентисты свою модель натренируют. Представь: у тебя есть эта самая хитрая модель, которая, допустим, текст понимает. И что? Она в ноутбуке у какого-то Вани сидит, в питоновском скрипте. А бизнесу надо, чтобы к ней можно было обращаться из приложения, чтобы она масштабировалась, не падала, и чтобы, если новая версия выкатилась, всё не накрылось медным тазом.

Вот тут-то я и появляюсь. Моя работа — это взять эту хрупкую штуку и запихнуть её в такой железный ящик, чтобы она работала как часы, а не как мартышлюшка с гранатой.

Чего я понаделал, например:

  • ETL-пайплайны для данных. Это когда надо из кучи разных источников (базы, логи, файлы) вытащить данные, почистить их от всякого говна (типа пропусков или аномалий), преобразовать и сложить в одно место, где модель сможет их хавать. Без этого — нихуя не получится, модель будет плеваться мусором на входе.
  • Сервисы-обёртки (REST API на FastAPI). Беру готовую, предобученную модель (скачал с Hugging Face или из внутреннего хранилища), заворачиваю её в веб-сервис. Получается такая штука: ты шлёшь на адрес /predict JSON с текстом, а тебе в ответ — классификация, там, "спам" или "не спам". Всё, теперь к модели можно обращаться из любого другого сервиса, как к обычному API. Удобно, ёпта.
  • CI/CD для моделей. Это вообще отдельная песня. Ну вот обучили новую версию модели, она вроде лучше старой. Как её безопасно выкатить? Чтобы не сломать продакшен? Я настраиваю пайплайны, которые автоматически: 1) упакуют новую модель, 2) прогонят тесты, 3) развернут её рядом со старой (A/B тестирование, канареечный деплой), и только если всё ок — переключат трафик. А старая версия сохранится, на случай если новая — пиздопроебибна.
  • MLflow для трекинга. Чтобы не было бардака. Каждый эксперимент (какие данные, какие гиперпараметры, какая получилась метрика) логируется. Потом можно открыть и посмотреть: ага, вот эта модель, обученная в прошлый четверг, дала accuracy 0.92, а вот эта, с другим алгоритмом — только 0.87. Всё прозрачно, а не "ой, а где та версия, которая вчера хорошо работала?".

Короче, если сравнивать с автомобилем, то я не инженер, который придумывает новый двигатель. Я — тот, кто строит гоночный пит: настраивает заправку, меняет колёса за три секунды, следит за телеметрией и делает так, чтобы болид мог ехать быстро и стабильно на протяжении всей гонки, а не только на тестовом круге. Без этой всей инфраструктуры самая крутая модель — просто игрушка в песочнице.