#корпжиза
Про KPI и роль HR в жизни DS часть 2
В первой части было как попытка попросить каналий-HR начать нанимать DS привела к тому что внезапно и я оказался не-DS (как и ставки для найма).
Но сюр в том, что как-то за год до той истории, лично самый топовый топ поручил HR нанять не меньше половины списка ТОП 100 DS в РФ. Так как такого списка нигде не было (да и нет, к счастью), в лучших традициях корпоративного управления составить его было поручено тем же самым HR.
Как вы думаете, как же они реально закрыли поручению по найму половины списка ТОП 100 DS в РФ?
Подсказка – я в тот список попал. Потому во второй части было особенно забавно что я не DS.
Про KPI и роль HR в жизни DS часть 2
В первой части было как попытка попросить каналий-HR начать нанимать DS привела к тому что внезапно и я оказался не-DS (как и ставки для найма).
Но сюр в том, что как-то за год до той истории, лично самый топовый топ поручил HR нанять не меньше половины списка ТОП 100 DS в РФ. Так как такого списка нигде не было (да и нет, к счастью), в лучших традициях корпоративного управления составить его было поручено тем же самым HR.
Как вы думаете, как же они реально закрыли поручению по найму половины списка ТОП 100 DS в РФ?
❤4
как же HR выполнили KPI?
Anonymous Poll
1%
Честно наняли 50 крутых ребят
99%
Составили список преимущественно из тех, кто уже работал в компании
😁17
Forwarded from Sberloga (🇻 🇱 🇦 🇩)
Короч история будет длинная, сегодня будет первая серия 😁
Когда только в сбер устроился, дали задание поставить в прод рекомендательную систему для дочерней компании, которая с юл работает. Были артефакты, код для инференса, описание как поставить модель и сам отчет о построении. Выглядит все заебись👍
Ну собственно раз отчет был, я не особо решил вдаваться в подробности, да и был он листов на 15 А4😩 Наверное только его написание заняло минимум пару недель, читать его не особо хотелось и решил по максимуму сконцентрировать силы на самой задаче 💪
Как оказалось в рамках постановки в прод, должен был быть развернут postgres, и туда нужно было пролить таблицу с какимито эмбедингами по юр лицам. DS по какимто причинам подумал, что будет супер крутой идеей ее сохранить в формате csv, а каждое число хранить с точностью в 19 знаков. В итоге эта таблица оказалась 10млн х 50 в виде текста которая занимает 10Гб в не сжатом виде. Это нужно было выкачать из внутреннего контура и передать во внешнюю компанию. Как я это сделал я уж писать не буду, но я конечно удивлен, что никого после этого не уволили😅
Кстати в сериализированном виде она весила 300мб всего
Все это отдавал разрабу в дочке (у меня прав не было) и писал ему какие команды запускать. Запустилось ли с первого раза? Конечно же нет (спасибо за охеренное качества код), в общем с разрабом неделю переписывались исправляя раз за разом все новые ошибки😱
В итоге запустили рекомендашку раньше положенного, все как нужно. Но на следующий день разраб снова пишет
- Влад, а моделька то "твоя" чет хуевая, она же на сайте в риалтайм должна работать, а там время ответа 3сек. Да и то почти по всем клиентам рекомендашки одни и теже...
Ну собтвенно, я попробовал объяснить, что вообще модель то не моя, а девочки которая писала все с нами больше не работает, а ушла в яндекс. Столько мата в свой адрес я еще не слышал. Самый сок была фраза "вы что доверили кодить девушке???"😂 ну собственно по итогу так и оказалось, не стоило 😅
Короч начал копать этот великолепный код с отчетом, чтобы понять что там не так и знаете что? После csv на 10гб я догадывался, что там будут странности, но вся дичь еще впереди...
Когда только в сбер устроился, дали задание поставить в прод рекомендательную систему для дочерней компании, которая с юл работает. Были артефакты, код для инференса, описание как поставить модель и сам отчет о построении. Выглядит все заебись
Ну собственно раз отчет был, я не особо решил вдаваться в подробности, да и был он листов на 15 А4
Как оказалось в рамках постановки в прод, должен был быть развернут postgres, и туда нужно было пролить таблицу с какимито эмбедингами по юр лицам. DS по какимто причинам подумал, что будет супер крутой идеей ее сохранить в формате csv, а каждое число хранить с точностью в 19 знаков. В итоге эта таблица оказалась 10млн х 50 в виде текста которая занимает 10Гб в не сжатом виде. Это нужно было выкачать из внутреннего контура и передать во внешнюю компанию. Как я это сделал я уж писать не буду, но я конечно удивлен, что никого после этого не уволили
Кстати в сериализированном виде она весила 300мб всего
Все это отдавал разрабу в дочке (у меня прав не было) и писал ему какие команды запускать. Запустилось ли с первого раза? Конечно же нет (спасибо за охеренное качества код), в общем с разрабом неделю переписывались исправляя раз за разом все новые ошибки
В итоге запустили рекомендашку раньше положенного, все как нужно. Но на следующий день разраб снова пишет
- Влад, а моделька то "твоя" чет хуевая, она же на сайте в риалтайм должна работать, а там время ответа 3сек. Да и то почти по всем клиентам рекомендашки одни и теже...
Ну собтвенно, я попробовал объяснить, что вообще модель то не моя, а девочки которая писала все с нами больше не работает, а ушла в яндекс. Столько мата в свой адрес я еще не слышал. Самый сок была фраза "вы что доверили кодить девушке???"
Короч начал копать этот великолепный код с отчетом, чтобы понять что там не так и знаете что? После csv на 10гб я догадывался, что там будут странности, но вся дичь еще впереди...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17
#кейсы #ML
История Влада про как ему отдали чужую модель напомнила мне похожую.
Мне тоже передали модель ребят, которые уволились, последний уволившийся был на связи – и на том спасибо. Код обучения и задачу за пару дней запустить модель во внутреннем контуре на инференс, при необходиомсти -- переобучить.
Проблемы начались сразу с pymystem3 – он упорно просился в инет (судя по коду ошибки - стучался в апи яндекса, 2017й год), и первым делом я заменил его на snowball.
Ок, прогоняю код, но на выходе 💩. Смотрю в разметку – там печаль, но это цветочки -- да и поговорим мы про это в сл постах (хотя, как мне сказали, разметку делали 12 человек фуллтайм один месяц). Но самое печальное дальше, трейн состоял из двух файлов – s3.csv и s4.csv, суммарно тысяч на 9,5 строк.
Возникло два вопроса:
- А где файлы s1 и s2????!! – как выяснилось, утеряны, потому как последнему уволившемуся каналье-DS их передавал другой каналья-DS и где-то при передаче они потерялись. Минус половина трейна – работа 12 человек за 2 недели.
- Как сделать так, чтобы каналья, которая сохранила в csv таблицы с текстовыми полями, в которых в полный рост спецсимволы и символы переноса строки, пришла к просветлению и больше никого так не подставляла?
Итого, задача: нужно раскидывать семплы по классам, которых неск десятков и при доразметке появляются новые, а исходных семплов с меткой примерно 9500. Базовых фичей -- несколько сотен, такая вот задачка).
В итоге задача заняла не пару дней, а пару недель до первой пром версии и пару лет до той версии, что несколько лет стояла в проме (а мб и сейчас стоит).
PS: забавно, сейчас такое поведение pymystem3 с выключенным инетом воспроизвести не получилось:
История Влада про как ему отдали чужую модель напомнила мне похожую.
Мне тоже передали модель ребят, которые уволились, последний уволившийся был на связи – и на том спасибо. Код обучения и задачу за пару дней запустить модель во внутреннем контуре на инференс, при необходиомсти -- переобучить.
Проблемы начались сразу с pymystem3 – он упорно просился в инет (судя по коду ошибки - стучался в апи яндекса, 2017й год), и первым делом я заменил его на snowball.
Ок, прогоняю код, но на выходе 💩. Смотрю в разметку – там печаль, но это цветочки -- да и поговорим мы про это в сл постах (хотя, как мне сказали, разметку делали 12 человек фуллтайм один месяц). Но самое печальное дальше, трейн состоял из двух файлов – s3.csv и s4.csv, суммарно тысяч на 9,5 строк.
Возникло два вопроса:
- А где файлы s1 и s2????!! – как выяснилось, утеряны, потому как последнему уволившемуся каналье-DS их передавал другой каналья-DS и где-то при передаче они потерялись. Минус половина трейна – работа 12 человек за 2 недели.
- Как сделать так, чтобы каналья, которая сохранила в csv таблицы с текстовыми полями, в которых в полный рост спецсимволы и символы переноса строки, пришла к просветлению и больше никого так не подставляла?
Итого, задача: нужно раскидывать семплы по классам, которых неск десятков и при доразметке появляются новые, а исходных семплов с меткой примерно 9500. Базовых фичей -- несколько сотен, такая вот задачка).
В итоге задача заняла не пару дней, а пару недель до первой пром версии и пару лет до той версии, что несколько лет стояла в проме (а мб и сейчас стоит).
PS: забавно, сейчас такое поведение pymystem3 с выключенным инетом воспроизвести не получилось:
import pymystem3
mystem = pymystem3.Mystem()
text = 'дата канальи -- канал про каналий'
print(', '.join(mystem.lemmatize(text)))
>>> дата, , каналья, -- , канал, , про, , каналья,
👍9🫡1
#корпжиза #кейсы #ML
Москвичей испортил квартирный вопрос, а в нецентрализованной функции DSов портят KPI на фин эффекты.
Построили мы однажды на данных CRM модель оттока клиентских менеджеров.
Оно же как в b2b – продажи по личным контактам, КМ если уходит, старается клиентов с собой забрать, у нового год выходит чтобы выйти на тот же уровень дохода с тех же закрепленных клиентов.
Вопрос, куда внедрять? Попытка внедрить в hr-систему привлекла как муху на говно гопничка, назвавшегося DS тим лидом в HR. Сходу он затребовал половину фин эффекта от уже построенный и провалидированной в оффлайне модели.
Был послан на хуй, внедрили через рассылку в почте на руководителей руководителей и hrbp, провели пилоты, собрали фидбеки, защитили эффекты (кстати неплохие) у финансистов.
Так что если видите что-то внедренное очень криво, модель оттока не использует данные hr-систем и никак в них не отображается – возможно, этому были причины )
PS четверть тех, кому модель ставила высокий скор оттока – оказывались беременными
Москвичей испортил квартирный вопрос, а в нецентрализованной функции DSов портят KPI на фин эффекты.
Построили мы однажды на данных CRM модель оттока клиентских менеджеров.
Оно же как в b2b – продажи по личным контактам, КМ если уходит, старается клиентов с собой забрать, у нового год выходит чтобы выйти на тот же уровень дохода с тех же закрепленных клиентов.
Вопрос, куда внедрять? Попытка внедрить в hr-систему привлекла как муху на говно гопничка, назвавшегося DS тим лидом в HR. Сходу он затребовал половину фин эффекта от уже построенный и провалидированной в оффлайне модели.
Был послан на хуй, внедрили через рассылку в почте на руководителей руководителей и hrbp, провели пилоты, собрали фидбеки, защитили эффекты (кстати неплохие) у финансистов.
Так что если видите что-то внедренное очень криво, модель оттока не использует данные hr-систем и никак в них не отображается – возможно, этому были причины )
PS четверть тех, кому модель ставила высокий скор оттока – оказывались беременными
👍9❤8😁3🤡3
#ML
Хотел расковырять ту старинную версию pymystem3, которая стучалась в инет, нашел что-то еще веселее. Назвали бы Джон Сноу, чтоли
Хотел расковырять ту старинную версию pymystem3, которая стучалась в инет, нашел что-то еще веселее. Назвали бы Джон Сноу, чтоли
😁12👎2
Forwarded from Sberloga (🇻 🇱 🇦 🇩)
Серия вторая 😄
Отчет значит читаю неспеша, решил сперва понять, что я за эмбединги то выгружал такие, а то вдруг я что неправильно выгрузил😂
Короч изза того что клиентами были юрлица, то и эмбединги это были своего рода фичи по всем компаниям рф. Но как их сделать? Очень уж хочется понять, что компания 1 похожа на компанию 2. DS почесал то откуда руки росли и светлая мысль пришла откуда и ожидалось - у каждой компании же есть оквэд (код вида деятельности), значит их нужно использовать. Вроде даже и идея то прикольная, но при чем тут эмбеды? Т.е. банально коды в качестве фичей можно было бы использовать, но где же тут DATA SCIENCE а?🤣
В общем по всем компаниям были спарсены эти коды из интернетов, эти коды были замапплены на словарь с описанием оквэдов, т.е. теперь у каждой компании есть теперь тексты...
Чувствуете, да, чем запахло? Если вы подумали, что тут сейчас NLP бригада подъедет, то вы ошиблись, это же уже DEEP LEARNING будет, а мы рексис ващет строим, поэтому на эти тексты мы натравимword2vec обученный и усредним 😦
Я конечно прихуел... блэд, это конечно было давно, но даже тогда это дерьмо только на курсах показывали, для примера, что "queen-king=woman" и все.
Но мало всего прочего, компании то появляются новые, где их оквэды брать? Как эту базу обновлять? Кто должен этот word2vec применять, а? А у DS лапки🙂
Отчет значит читаю неспеша, решил сперва понять, что я за эмбединги то выгружал такие, а то вдруг я что неправильно выгрузил
Короч изза того что клиентами были юрлица, то и эмбединги это были своего рода фичи по всем компаниям рф. Но как их сделать? Очень уж хочется понять, что компания 1 похожа на компанию 2. DS почесал то откуда руки росли и светлая мысль пришла откуда и ожидалось - у каждой компании же есть оквэд (код вида деятельности), значит их нужно использовать. Вроде даже и идея то прикольная, но при чем тут эмбеды? Т.е. банально коды в качестве фичей можно было бы использовать, но где же тут DATA SCIENCE а?
В общем по всем компаниям были спарсены эти коды из интернетов, эти коды были замапплены на словарь с описанием оквэдов, т.е. теперь у каждой компании есть теперь тексты...
Чувствуете, да, чем запахло? Если вы подумали, что тут сейчас NLP бригада подъедет, то вы ошиблись, это же уже DEEP LEARNING будет, а мы рексис ващет строим, поэтому на эти тексты мы натравим
Я конечно прихуел... блэд, это конечно было давно, но даже тогда это дерьмо только на курсах показывали, для примера, что "queen-king=woman" и все.
Но мало всего прочего, компании то появляются новые, где их оквэды брать? Как эту базу обновлять? Кто должен этот word2vec применять, а? А у DS лапки
Please open Telegram to view this post
VIEW IN TELEGRAM
Сидел как-то в панели в Сколково, называлась в духе “Data Science от маркетплейсов до промышленности.”
Все бы хорошо, мило болтали с коллегами и ведущим (кто не любит панели? к ним же доклад готовить не нужно).
Но все хорошее заканчивается, и после панели начинаются вопросы из зала.
Первый же вопрос – так а что с промышленностью? (а у нас в составе участников нет никого из промышленности).
И действительно, мои истории будут скорее ближе к банкам, маркетплейсам, развлечениям, телекомам, рекламе, к агро, чем к заводам, хотя есть много знакомых ребят из реальной индустрии.
Но вот на днях наткнулся на небольшой канал про каналий-DS на реальном таком металлургическом заводе. Жаль, не знаком с автором, но от историй реально кайфую. @na_zavod_blyat
Все бы хорошо, мило болтали с коллегами и ведущим (кто не любит панели? к ним же доклад готовить не нужно).
Но все хорошее заканчивается, и после панели начинаются вопросы из зала.
Первый же вопрос – так а что с промышленностью? (а у нас в составе участников нет никого из промышленности).
И действительно, мои истории будут скорее ближе к банкам, маркетплейсам, развлечениям, телекомам, рекламе, к агро, чем к заводам, хотя есть много знакомых ребят из реальной индустрии.
Но вот на днях наткнулся на небольшой канал про каналий-DS на реальном таком металлургическом заводе. Жаль, не знаком с автором, но от историй реально кайфую. @na_zavod_blyat
🔥5
#ML
Все же здесь DS и знают базовые метрики?
Precision?
Precision@k?
А ничего вы не знаете, канальи! 🙈
Прошло пару лет как коллеги со светлой стороны Сбера выпустили свою замечательную статью на NIPS, примечательную такой картинкой
Про то как в разных recsys либах метрики считаются по-разному 😱
Но хотя бы precision@k вроде одинаково? Или нет? 🤔
Рассмотрим угловой кейс – на что делить, когда кандидатов сгенерилось меньше k? 🤓
Правильный ответ здесь– делить на k !!!!
Институт NIST– National Institute for Standards and Technology распространяет код как считать правильно 🥳
На для catboost закон не писан – он делит на число кандидатов 🤬😡🥵
Будьте внимательны! Или перепроверяйте за пакетами или считайте сами!
Все же здесь DS и знают базовые метрики?
Precision?
Precision@k?
А ничего вы не знаете, канальи! 🙈
Прошло пару лет как коллеги со светлой стороны Сбера выпустили свою замечательную статью на NIPS, примечательную такой картинкой
Про то как в разных recsys либах метрики считаются по-разному 😱
Но хотя бы precision@k вроде одинаково? Или нет? 🤔
Рассмотрим угловой кейс – на что делить, когда кандидатов сгенерилось меньше k? 🤓
Правильный ответ здесь– делить на k !!!!
Институт NIST– National Institute for Standards and Technology распространяет код как считать правильно 🥳
На для catboost закон не писан – он делит на число кандидатов 🤬😡🥵
Будьте внимательны! Или перепроверяйте за пакетами или считайте сами!
👍8🤔5❤4🔥2🌚2
Зачем канальям алгоритмы? Например, можно ускорить расчёт дефолтной метрики из склерн раза в три — и на тысячах экспериментов при подборе гиперпараметров это существенно сэкономит время. Как это сделать рассказывает наш тим лид финтеха — Макс Шаланкин
Forwarded from Maxim.ML - канал
Наверняка у каждого на работе бывают моменты, когда нужно просто сесть и подождать чего-либо ☕️ . Это может быть долгий запуск программы, долгий расчёт чего-либо, или просто неоптимальная работа не на вашей стороне, а на стороне коллеги, который сделал какой-то кривой процесс, который долго работает⌛️ .
Вот и у меня был один такой кейс, который удалось успешно решить. Он был связан с расчётом популярной метрики в машинном обучении в задаче классификации: ROC AUC. Ниже гайд, как можно оптимизировать и ваши расчеты тоже.
Вот и у меня был один такой кейс, который удалось успешно решить. Он был связан с расчётом популярной метрики в машинном обучении в задаче классификации: ROC AUC. Ниже гайд, как можно оптимизировать и ваши расчеты тоже.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
Ускоряем расчет метрики ROC AUC: оптимизация для максимальной эффективности
Как ускорить расчет метрики ROC AUC, понятный гайд Наверняка у каждого на работе бывают моменты, когда нужно просто сесть и подождать чего-либо. Это может быть долгий запуск программы, долгий расчёт чего-либо, или просто неоптимальная работа не на вашей стороне…
👍11❤7🔥5
Свалился под Новый год с температурой, в таком состоянии каждый убивает время по-разному.
Я вот люблю придумывать задачки вроде "приведите пример когда единичное дерево работает лучше случайного леса". Но сейчас у меня температура примерно 38 и в голову пришла совсем странная задачка -- придумать кейс когда изотоническая регрессия лучше бустинга.
И вот:
Я вот люблю придумывать задачки вроде "приведите пример когда единичное дерево работает лучше случайного леса". Но сейчас у меня температура примерно 38 и в голову пришла совсем странная задачка -- придумать кейс когда изотоническая регрессия лучше бустинга.
И вот:
from sklearn.isotonic import IsotonicRegression
import numpy as np
from sklearn.datasets import make_regression
from xgboost import XGBRegressor
import plotly.graph_objs as go
x, y = make_regression(n_samples=1000, n_features=1, random_state=42, noise=3)
ir = IsotonicRegression()
ir.fit(x, y)
y_pred = ir.predict(x)
params = {'monotone_constraints':'(1)'}
xgb = XGBRegressor(**params, n_estimators=50, max_depth=3, verbosity=0, max_bin = 70, tree_method = 'hist')
xgb.fit(x, y)
y_pred_xgboost = xgb.predict(x)
fig2 = go.Figure()
fig2.add_trace(go.Scatter(x=np.array(x).squeeze(), y=y, mode='markers', name='исходные точки'
, marker=dict(color='LightSkyBlue', size=10)))
fig2.add_trace(go.Scatter(x=np.array(x).squeeze(), y=y_pred, mode='markers', name='изотоническая регрессия'
, line=dict(color='firebrick', width=4, dash='dashdot')))
fig2.add_trace(go.Scatter(x=np.array(x).squeeze(), y=y_pred_xgboost, mode='markers', name='XGB_regressor'
, line=dict(color='Green', width=4, dash='dashdot')))
fig2.update_layout(legend_orientation="v"
, legend=dict(x=.5, y = 0.95, xanchor="center")
, title="бустинг vs изотоник"
, xaxis_title="ордината"
, yaxis_title="абсцисса"
, margin=dict(l=0, r=0, t=50, b=0)
, hovermode="x"
, height=600
, width=900
, font_family="Arial"
, font_color="black"
, font_size = 20
, title_font_family="Times New Roman"
, title_font_size = 30
, title_font_color="black"
, legend_title_font_color="black"
, legend_title_font_size=20
, separators=", .*"
)
fig2.show()
👍5😁1
Спорили на днях с товарищем почему маркетплейс моделей обречен.
Один из моих поинтов -- устаревание окружений, в которых модели деплоятся. Часто видел что кто-то из ребят собрался с силами и сделал свою либу, но уже через пару лет без бубна ее не поставить.
А возня с менеджерами пакетов -- такое, на мой вкус. Возник вопрос -- много ли DS сталкивались в работе с ними?
Один из моих поинтов -- устаревание окружений, в которых модели деплоятся. Часто видел что кто-то из ребят собрался с силами и сделал свою либу, но уже через пару лет без бубна ее не поставить.
А возня с менеджерами пакетов -- такое, на мой вкус. Возник вопрос -- много ли DS сталкивались в работе с ними?
👍5❤3🔥2
#ML
Итак, второй по популярности у нас uv, но знакомы с ним лишь 19% 😱
Время исправляться и образовываться. Утверждается, что он самый быстрый в моменте пакетный менеджер. И даже ускоряет установку больших пакетов 🤷♂️
Ну тогда попробуйте сыграть в перестановки:
или, для ценителей однострочников:
PS: результат непредсказуем
PPS:
аналогично. А вот flask так ставится без проблем
Итак, второй по популярности у нас uv, но знакомы с ним лишь 19% 😱
Время исправляться и образовываться. Утверждается, что он самый быстрый в моменте пакетный менеджер. И даже ускоряет установку больших пакетов 🤷♂️
Ну тогда попробуйте сыграть в перестановки:
$ pip install uv
$ uv pip install catboost
или, для ценителей однострочников:
$ pip install uv && uv pip install catboost
PS: результат непредсказуем
PPS:
$ uv tool install catboost
аналогично. А вот flask так ставится без проблем
👍5
Завтра в вышке ждем всех на завершающую мл-тренировку в этом году, заодно раздадим подарки активным и обсудим что будем делать в следующем
🔥6
Forwarded from Александра Сытник
Тренировки по ML
➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖ ➖
2️⃣ 8️⃣ декабря состоится последняя в этом году тренировка по машинному обучению ↩️
Мы вспомним пройденный материал. Подведём итоги и поговорим о планах. Нас ждут интересные выступления. Разбор соревнований. Подарки лидерам челленджей❤️
📢 Спикер:
⚪️ Александр Киреев, DS Team Lead МТС, 26 медалей Kaggle
📆 Когда: 28 декабря с 11:10
🗺️ Где: Покровский бульвар д. 11, ауд. R505
Подробнее про челленджи🐭
Студентам других вузов необходимо заполнить форму для заказа пропуска не позднее чем за 24 часа до дня проведения тренировок, по организационным вопросам участия в тренировках вы можете обращаться к Александре▶️
Мы вспомним пройденный материал. Подведём итоги и поговорим о планах. Нас ждут интересные выступления. Разбор соревнований. Подарки лидерам челленджей
Подробнее про челленджи
Студентам других вузов необходимо заполнить форму для заказа пропуска не позднее чем за 24 часа до дня проведения тренировок, по организационным вопросам участия в тренировках вы можете обращаться к Александре
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤4
Саша на Новый год хочет 2000 подписчиков, осталось 10. Поможем?