Aspiring Data Science
285 subscribers
360 photos
9 videos
5 files
1.18K links
Заметки экономиста о программировании, прогнозировании и принятии решений, научном методе познания.
Контакт: @fingoldo

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
Forwarded from New Yorko Times (Yury Kashnitsky)
Книга про ML собеседования
#ml #books #career #interview

Дочитал драфт книги Chip Huyen про ML интервью https://huyenchip.com/ml-interviews-book

Чип https://twitter.com/chipro - незаурядная личность: популярная вьетнамская писательница, выпускница Стэнфорда, поработала в NVIDIA, Netflix и паре стартапов, сейчас свой тащит и преподает ML system design. Я делал обзор на ее книгу Designing Machine Learning Systems» тут https://t.me/new_yorko_times/43

Книга про интервью рассматривает виды работы в области ML (research, applied science, ML engineering), мл сисдиз и MLOps (это по сути краткая выжимка упомянутой выше книги). Далее обсуждаются типы интервью, поведенческие тоже, что говорить и что нет. Далее - что делать с оффером, как переговариваться, как устроена компенсация оплаты в бигтехе. Рассматриваются ресурсы для подготовки (одсовцы найдут целых две пасхалки в части 4.2 про блоги и 4.3.1 про курсы) и наконец, добрая половина книги - это список вопросов к собесам по математике, CS и ML.
#ml #mlops #featurestore

Хочу на новом МЛ проекте попробовать такое новшество как feauturestore . Кто может хорошее посоветовать?
#mlops #dvc

Уже в который раз смотрю материалы про dvc, и никак не могу понять, нафига это нужно. А вы пользуетесь DVC или каким-либо другим инструментом версионирования данных?

https://www.youtube.com/watch?v=FbIyKjOdiI8
#mlops #mlflow

Продолжаю изучать mlflow. Очень понравилась, что по обученной модели можно быстро получить список метрик и значимостей признаков. А ещё можно даже настроить критерии приёмки модели в бой, абсолютные (точность не менее X%) и относительные (точность не менее Y% лучше чем DummyClassifier). Ложка дёгтя в том, что указанный в доке вызов mlflow.models.list_evaluators() не работает.

https://mlflow.org/docs/latest/models.html#model-validation
#mlops #tracking #mlflow

Несколько классных трюков для продуктивной работы с mlflow. Мне оч понравилась встройка кастомных веб-страничек и дочерние эксперименты (UI с прошлого года поддерживает многоуровневость).

По идее, в МЛ эксперимент может равняться фичерсету+таргету, а запуски (runs) могут соответствовать разным конвейерам обработки (с/без FS,RS,OR,ES,HPT).

Дочерние запуски нужны, если хотим логировать промежуточные модели, обученные на фолдах CV. Или если хотим на одних и тех же данных/конвейере сравнить несколько моделей разных классов (gbdt, ann). Или если включено HPT, тогда каждый запуск порождает N субмоделей с разными гиперпараметрами.

К сожалению, вложенными могут быть только запуски, но не эксперименты, хотя это вроде бы на поверхности. У нас же в рамках одного проекта может быть несколько датасетов, несколько задач, у каждой много таргетов. (+Желательны свои уровни допуска разным юзерам, но об этом умолчим). Сейчас пользователям MLFlow приходится, видимо, эту иерархию разворачивать в плоские структуры. Или как-то лепить в тэги.

https://towardsdatascience.com/5-tips-for-mlflow-experiment-tracking-c70ae117b03f
#ml #mlops #mlflow #me #metrics #multimodel

Очень срезонировало это выступление. Я сейчас разрабатываю как раз такую систему, с мультиметриками, несколькими моделями разных классов. Даже ещё добавляю сразу ансамбли. Про ME (Maximum Error) как обязательную regression-метрику кажется очень полезно, никогда раньше не слышал. От себя бы добавил в обязательные метрики классификации что-то калибрационное: MAE/std над бинами калибрационной кривой, к примеру.

https://www.youtube.com/watch?v=VJWrSTAlxEs
#trading #scalping #erema #mlops #experimenting #mlflow

Потратил много времени на кодинг платформы, позволяющей экспериментировать с группами фичей, блоками ML-конвейеров, таргетами, моделями, ансамблями.

Иногда при работе над очередным проектом думаешь: а что лучше, отдать работу с категорийкой на откуп бустингу, или попробовать что-то из category_encoders? И вообще, что считать категориальными факторами, то, что имеет тип данных categorical/object, или что имеет мало уникальных значений? А "мало" - это мало вообще, или по отношению к конкретному типу данных и диапазону? А может, вообще все непрерывные побить на с помощью KBinsDiscretizer, что тогда будет, лучше или хуже, и насколько? Или может, вообще удалить категорийку, вдруг будет не сильно хуже, но быстрее?

А пропуски как обрабатывать? А всё это вместе взятое сколько комбинаций составит?

Раннюю остановку использовать или нет, и когда?

Какая модель в итоге лучше сработает, бустинг или нейронка? Блин, а нейронке-то напрямую нельзя подать категориальные фичи, надо выкручиваться.

А если гиперпараметры тюнить? А фичи отбирать? А что, если вообще поработать с группами фичей по отдельности (например, рыночные, новостные, фундаментальные), какого результата каждая достигнет??

А если потом модельки от разных в групп в ансамбль объединить, лучше станет, и насколько?

А вообще, какие таргеты мы можем лучше предсказывать, что, если мы можем немного варьировать их, к примеру, предсказываем продажи на неделю или 2 или 3 вперёд. Где выше прогннозируемость и при каких условия, на чём сконцентрировать усилия? Если сравнивать в лоб, на препроцессинг уйдёт тонна времени, тут нужно умное кэширование.

А всё это же ещё надо на CV считать... А так как число комбинаций, которые хочется проверить, огромно, лучше считать на кластере или хотя бы на нескольких нодах, с централизованным хранением результатов (предсказаний, метрик, графиков).

А как всё это грамотно отобразить, чтобы не потеряться в тысячах комбинаций? А как при этом работать в команде?

Наверняка к подобным вопросам со временем, или при работе над особо сложным проектом, приходит любой дата сайентист/кэгглер, который хорошо делает свою работу. Настало и моё время )

Трейдинговый проект #erema меня просто ошеломлял количеством факторов, возможных таргетов и ML опций, которые хотелось проверить. Так что после 2 месяцев работы я получил процедуры, которые на базе mlflow как раз позволяют разбить всё многообразие опций на блоки и проверить их по отдельности.
MLOps Guide by Arthur Olga, Gabriel Monteiro, Guilherme Leite and Vinicius Lima

This site is intended to be a MLOps Guide to help projects and companies to build more reliable MLOps environment. This guide should contemplate the theory behind MLOps and an implementation that should fit for most use cases.

What is MLOps?
MLOps is a methodology of operation that aims to facilitate the process of bringing an experimental Machine Learning model into production and maintaining it efficiently. MLOps focus on bringing the methodology of DevOps used in the software industry to the Machine Learning model lifecycle.

In that way we can define some of the main features of a MLOPs project:
- Data and Model Versioning
- Feature Management and Storing
- Automation of Pipelines and Processes
- CI/CD for Machine Learning
- Continuous Monitoring of Models

What does this guide cover?
- Introduction to MLOps Concepts
- Tutorial for Building a MLOps Environment

Link: Direct

Navigational hashtags: #armknowledgesharing #armguides
General hashtags: #mlops #ml #operations

@data_science_weekly