Искал саммаризатор тг-каналов, а то много времени уходит. Нашел такую штуку, вроде свежая https://habr.com/ru/articles/849532/
Хабр
Как я написал бота для саммари telegram каналов
Всем привет! Меня зовут Азрет, я - CTO в AAA (читается как "трипл-эй"). Мы разрабатываем LLM приложения для бизнеса. Решаем разнообразные задачи - оптимизация внутренних процессов за счет ИИ,...
🔥5❤2
#кейсы #ML
Раз уж зашла речь про фичи.
Посвящается каунтам (counts) в проме.
В одной далекой-далекой галактике канальи-DS решили сделать счетчики числа запросов с сайтов разных тематик в месяц. А чего б не сделать – есть 2гис, есть similarweb – сиди и считай сколько в каждой категории визитов на каждый id. Да для стабильности зафиксируй связку сайт-тематика, а то вдруг из черной дыры возникнет ужасное смещение!!! Прошла пара лет как такое чудо в проме.
Другие канальи-DS строили модель, а таргеты у них были на время примерно “текущий год минус 3” или “текущий минус 2”. И тест тоже примерно на “текущий год минус полтора”. Построили эти DS модель и даже проверили «как следует» на таком вот тесте – клиент-то важный.
Только вот в проме модель странно себя повела.
Стали копать после бодрого пинка от продажников – а каунты-то все раз в 10 меньше чем на трейне. Вы не поверите, но сайты в рунете появляются новые, а старые приходят в упадок или закрываются (кто еще помнит bash.im или lurk?).
Мораль простая – каунты (практически всегда) зло, но в следующем посте вас ждет зло еще злее.
Раз уж зашла речь про фичи.
Посвящается каунтам (counts) в проме.
В одной далекой-далекой галактике канальи-DS решили сделать счетчики числа запросов с сайтов разных тематик в месяц. А чего б не сделать – есть 2гис, есть similarweb – сиди и считай сколько в каждой категории визитов на каждый id. Да для стабильности зафиксируй связку сайт-тематика, а то вдруг из черной дыры возникнет ужасное смещение!!! Прошла пара лет как такое чудо в проме.
Другие канальи-DS строили модель, а таргеты у них были на время примерно “текущий год минус 3” или “текущий минус 2”. И тест тоже примерно на “текущий год минус полтора”. Построили эти DS модель и даже проверили «как следует» на таком вот тесте – клиент-то важный.
Только вот в проме модель странно себя повела.
Стали копать после бодрого пинка от продажников – а каунты-то все раз в 10 меньше чем на трейне. Вы не поверите, но сайты в рунете появляются новые, а старые приходят в упадок или закрываются (кто еще помнит bash.im или lurk?).
Мораль простая – каунты (практически всегда) зло, но в следующем посте вас ждет зло еще злее.
#кейсы #ML
Видел в одном канале канальи-манагера пафосные рассуждения, что любого сотрудника можно оценить по масштабу последствий от ошибочно принятого этим сотрудником решения. Как обычно отвечу кейсом.
Так сложилось, что я работал в структурах где цена ошибки высока, и соотношение контролирующих и проверяющих к непосредственно делающим сильно больше двух.
Однажды нас с коллегой вызывают в переговорку – там сидят эдакий проверяющий эксперт и его начальник.
Нам вменяют ущерб в 2 трлн рублей недополученный банком прибыли. На серьезных щах и эмоционально. 🤬
В итоге кейс по существу свелся к тому что у нас распределения поехали (по мнению этого сверхразума), а сравнивал он по средним (!).
В ответ коллега набросал нехитрый скриптец вроде тех что ниже
Начальник извинился и агрессивного дурачка уволили 🙌
Но мораль истории не в том как сравнивать распределения (я думаю, вы в курсе давно).
Не стоит переоценивать влияние стечения обстоятельств и приписывать только себе как заслуги так и провалы.
PS: кстати, с тестами Колмогорова-Смирнова или PSI тоже стоит обращаться внимательно, прикладываю ссылку на исследование стат свойств PSI https://scholarworks.wmich.edu/cgi/viewcontent.cgi?article=4249&context=dissertations
Видел в одном канале канальи-манагера пафосные рассуждения, что любого сотрудника можно оценить по масштабу последствий от ошибочно принятого этим сотрудником решения. Как обычно отвечу кейсом.
Так сложилось, что я работал в структурах где цена ошибки высока, и соотношение контролирующих и проверяющих к непосредственно делающим сильно больше двух.
Однажды нас с коллегой вызывают в переговорку – там сидят эдакий проверяющий эксперт и его начальник.
Нам вменяют ущерб в 2 трлн рублей недополученный банком прибыли. На серьезных щах и эмоционально. 🤬
В итоге кейс по существу свелся к тому что у нас распределения поехали (по мнению этого сверхразума), а сравнивал он по средним (!).
В ответ коллега набросал нехитрый скриптец вроде тех что ниже
Начальник извинился и агрессивного дурачка уволили 🙌
Но мораль истории не в том как сравнивать распределения (я думаю, вы в курсе давно).
Не стоит переоценивать влияние стечения обстоятельств и приписывать только себе как заслуги так и провалы.
PS: кстати, с тестами Колмогорова-Смирнова или PSI тоже стоит обращаться внимательно, прикладываю ссылку на исследование стат свойств PSI https://scholarworks.wmich.edu/cgi/viewcontent.cgi?article=4249&context=dissertations
👍6
#кейсы #ML
Если каунты плохие, то бывают фичи и пострашнее. Есть такая неблагодарная задача – цену на недвижимость предсказывать. В будущее. Если бы без него – то базовая эвристика это среднее / медиана цены за квадрат в аналогичных квартирах, которые находятся по соседству, сверху уже можно накручивать все что в голову взбредет.
Однако когда хотим прогноз в будущее на 3 (!) года, все гораздо сложнее – квартиры в цене растут по-разному. В одну светлую мысль голову пришла мысль предсказать цену, определить по рынку дециль, в который квартира попала в своем сегменте, и использовать его как фичу при прогнозе цены в будущее. Нам так понравилось, что и для оюъектов-аналогов мы стали использовать децили.
Чуете подвох? Вот и мы не почуяли. А он есть – крайние децили оказались не сильно стабильные во времени и тут уже пришел черед каналий-аналитиков указать на кейсы нарушений бизнес-логики.
Если каунты плохие, то бывают фичи и пострашнее. Есть такая неблагодарная задача – цену на недвижимость предсказывать. В будущее. Если бы без него – то базовая эвристика это среднее / медиана цены за квадрат в аналогичных квартирах, которые находятся по соседству, сверху уже можно накручивать все что в голову взбредет.
Однако когда хотим прогноз в будущее на 3 (!) года, все гораздо сложнее – квартиры в цене растут по-разному. В одну светлую мысль голову пришла мысль предсказать цену, определить по рынку дециль, в который квартира попала в своем сегменте, и использовать его как фичу при прогнозе цены в будущее. Нам так понравилось, что и для оюъектов-аналогов мы стали использовать децили.
Чуете подвох? Вот и мы не почуяли. А он есть – крайние децили оказались не сильно стабильные во времени и тут уже пришел черед каналий-аналитиков указать на кейсы нарушений бизнес-логики.
👍3❤1
Вот так вот, сидишь , никого не трогаешь — а потом тебе в эфире рассказывают о твоих достижениях, а ты ни сном не духом
🔥5❤1
#кейсы #ML
ID как фичи 🤮
Не буду сегодня вдаваться в избитую тему, расскажу лучше про очень простой кейс. Видите график?
Это временной ряд числа записей через одну электронную систему в сервис (так как данные полностью синтетические – назовем это записями москвичей в поликлиники).
Судя по картинке, предсказывать число записей в будущем не должно быть сложно? Или нет? Почему он растет?
Базовая гипотеза – не все поликлиники сразу подключили к системе, давайте глянем на график подключения: Вроде похожи.
Отчего же модели не получаются?
Здесь произошел момент, который я так люблю 😎 – семеро каналий-аналитиков и DS пробуют саримы и прочие навороченные модели, пыхтят и мучаются пару недель.
А я пошел строить число ID на дату, и выглядело оно так:
Слили две базы! И у примерно 3 млн москвичей тоже появилась возможность записываться)
Теперь же понятно, где ограничить трейн для модели? )
ID как фичи 🤮
Не буду сегодня вдаваться в избитую тему, расскажу лучше про очень простой кейс. Видите график?
Это временной ряд числа записей через одну электронную систему в сервис (так как данные полностью синтетические – назовем это записями москвичей в поликлиники).
Судя по картинке, предсказывать число записей в будущем не должно быть сложно? Или нет? Почему он растет?
Базовая гипотеза – не все поликлиники сразу подключили к системе, давайте глянем на график подключения: Вроде похожи.
Отчего же модели не получаются?
Здесь произошел момент, который я так люблю 😎 – семеро каналий-аналитиков и DS пробуют саримы и прочие навороченные модели, пыхтят и мучаются пару недель.
А я пошел строить число ID на дату, и выглядело оно так:
Слили две базы! И у примерно 3 млн москвичей тоже появилась возможность записываться)
Теперь же понятно, где ограничить трейн для модели? )
🔥9
#кейсы
случайно удалил, восстанавливаю:
Манагерский кейс
Как-то встречаю в курилке пару тех лидов и они дружно жалуются что не могут ничего делать руками – в их продукты командировали каналью-скрама и все время встречи отнимают. А сколько встреч в день в среднем? – ну две-три. Пинаю скрама чтобы обсчитала (и объясняю методологию – включать во время встречи еще полчаса после нее на то, чтобы врубиться что происходит) – бодро докладывает что встречи занимают только (!) 9-10% рабочего времени.
Примерный календарь слева
Пришлось проводить работу с PO, CPO, Scrum и прочими на тему что если между встречами час – то ничего закодить не успеешь и для человека, работающего головой а не только лишь ртом (то есть того кто учит модели и пишет код) такой календарь превращается в тот что справа.
И я таки тоже потратил полчаса чтобы объяснить как быть – до обеда дать людям спокойно кодить (0 встреч), после обеда – встречи. Или наоборот , главное чтобы минимум 4 часа подряд было на работу каждый день
Мораль: от перемены мест слагаемых сумма меняется еще как. И особенности психики человека игнорировать нельзя.
случайно удалил, восстанавливаю:
Манагерский кейс
Как-то встречаю в курилке пару тех лидов и они дружно жалуются что не могут ничего делать руками – в их продукты командировали каналью-скрама и все время встречи отнимают. А сколько встреч в день в среднем? – ну две-три. Пинаю скрама чтобы обсчитала (и объясняю методологию – включать во время встречи еще полчаса после нее на то, чтобы врубиться что происходит) – бодро докладывает что встречи занимают только (!) 9-10% рабочего времени.
Примерный календарь слева
Пришлось проводить работу с PO, CPO, Scrum и прочими на тему что если между встречами час – то ничего закодить не успеешь и для человека, работающего головой а не только лишь ртом (то есть того кто учит модели и пишет код) такой календарь превращается в тот что справа.
И я таки тоже потратил полчаса чтобы объяснить как быть – до обеда дать людям спокойно кодить (0 встреч), после обеда – встречи. Или наоборот , главное чтобы минимум 4 часа подряд было на работу каждый день
Мораль: от перемены мест слагаемых сумма меняется еще как. И особенности психики человека игнорировать нельзя.
❤9👍7💯4
#ML
Продолжая тему данных или почему мучения каналий из прошлого поста были направсны.
Всем подписчикам знакома картинка с пандой из статьи десятилетней давности Яна Goodfellow на ICLR’15 с примером, показывающим, что если добавлять малые, но не случайные, возмущения к картинке с пандой, можно получить картинку-объект, на котором модель будет ошибаться и называть панду гиббоном. Такие объекты называются adversarial examples и чаще всего причиной их существования является underfitting моделей – слишкому уж они линейны в смысле разделяющей поверхности.
Так вот, эти adversarial examples устойчивы к добавлению случайного шума и, более того, они частично сохраняются даже при смене типов модели! 😱😱😱 (см картинку из другой его статьи тех же времен).
Если смена моделей и их тюнинг становятся похожими на перемещение кроватей в борделе – надо таки глянуть в датасет, для этого, правда, нужно обладать фантазией и кругозором.
В эпоху трансформеров, llm, агентов, канальи стали забывать формулу shit in == shit out 💩. И этому есть и организационные причины, и инженерные, о чем и поговорим дальше.
Продолжая тему данных или почему мучения каналий из прошлого поста были направсны.
Всем подписчикам знакома картинка с пандой из статьи десятилетней давности Яна Goodfellow на ICLR’15 с примером, показывающим, что если добавлять малые, но не случайные, возмущения к картинке с пандой, можно получить картинку-объект, на котором модель будет ошибаться и называть панду гиббоном. Такие объекты называются adversarial examples и чаще всего причиной их существования является underfitting моделей – слишкому уж они линейны в смысле разделяющей поверхности.
Так вот, эти adversarial examples устойчивы к добавлению случайного шума и, более того, они частично сохраняются даже при смене типов модели! 😱😱😱 (см картинку из другой его статьи тех же времен).
Если смена моделей и их тюнинг становятся похожими на перемещение кроватей в борделе – надо таки глянуть в датасет, для этого, правда, нужно обладать фантазией и кругозором.
В эпоху трансформеров, llm, агентов, канальи стали забывать формулу shit in == shit out 💩. И этому есть и организационные причины, и инженерные, о чем и поговорим дальше.
👍8
Вместо подготовки к сессии ребята из вышки и других вузов в субботу (!) пришли на ML-тренировку Kaggle, которую ведёт самый солнечный и открытый DS которого я знаю — тим лид МТС Аналитики Саша Киреев.
Прошел год как мы с ВШЭ запустили эту активность, и тренировки вели , кроме Саши, еще 2 GM и 3 мастера , участники уже завоевывали и бронзу и серебро (!) в соревнованиях.
Так что велком — будем рады вас видеть , анонсы публикуем здесь https://t.iss.one/+RWc7IMQxR5djZmNi
Прошел год как мы с ВШЭ запустили эту активность, и тренировки вели , кроме Саши, еще 2 GM и 3 мастера , участники уже завоевывали и бронзу и серебро (!) в соревнованиях.
Так что велком — будем рады вас видеть , анонсы публикуем здесь https://t.iss.one/+RWc7IMQxR5djZmNi
❤10👍5
#кейсы
Часто в компаниях функции Data Science и управление данными разделены.
К чему это приводит? DS вынуждены либо обосновывать и “заказывать” поставки, либо смириться и работать с тем, что есть (а про это мы поговорили в посте с пандой).
По поводу заказывать – самая драматичная история у меня была когда я полгода связывал бухгалтерские полупроводки в реплике одной большой системы – ибо в одной крупной компании коллеги, которые отвечали за репликацию данных, решили что связочная таблица не “бизнес-значима” и вычеркнули ее из заявки на поставку 3000+ таблиц той системы (видимо сэкономив оч много денег 🤡), скромно об этом никому не сказав. Самое печальное в этой истории, что больше трех лет ушло чтобы донести канальям-манагерам зачем нужна связочная таблица, а потом еще два года, чтобы она попала в очередь на поставку.
Второй подход, часто встречающийся в российских компаниях – (ceo)vp-feature-engineering. Классическое “жираф большой, ему видней” на каких фичах DS-ам модели строить 🤡. Приводит к тем самым каунтам в широких витринах, часто еще в каком-нибудь гениальном разрезе – типа числа продаж ватных палочек в штуках помесячно в ЦФО.
Выход – стройте фичасторы, офферсторы и эмбеддингсторы, требуйте логировать все обо всем, проактивно просвещайте каналий-манагеров и коллег, делитесь на внутренних митапах наработками, агрегируйте потребности в данных источников и эскалируйте при любом сопротивлении.
Часто в компаниях функции Data Science и управление данными разделены.
К чему это приводит? DS вынуждены либо обосновывать и “заказывать” поставки, либо смириться и работать с тем, что есть (а про это мы поговорили в посте с пандой).
По поводу заказывать – самая драматичная история у меня была когда я полгода связывал бухгалтерские полупроводки в реплике одной большой системы – ибо в одной крупной компании коллеги, которые отвечали за репликацию данных, решили что связочная таблица не “бизнес-значима” и вычеркнули ее из заявки на поставку 3000+ таблиц той системы (видимо сэкономив оч много денег 🤡), скромно об этом никому не сказав. Самое печальное в этой истории, что больше трех лет ушло чтобы донести канальям-манагерам зачем нужна связочная таблица, а потом еще два года, чтобы она попала в очередь на поставку.
Второй подход, часто встречающийся в российских компаниях – (ceo)vp-feature-engineering. Классическое “жираф большой, ему видней” на каких фичах DS-ам модели строить 🤡. Приводит к тем самым каунтам в широких витринах, часто еще в каком-нибудь гениальном разрезе – типа числа продаж ватных палочек в штуках помесячно в ЦФО.
Выход – стройте фичасторы, офферсторы и эмбеддингсторы, требуйте логировать все обо всем, проактивно просвещайте каналий-манагеров и коллег, делитесь на внутренних митапах наработками, агрегируйте потребности в данных источников и эскалируйте при любом сопротивлении.
❤12👍2
У вас был кейс, когда в обученную модель подавали фичи не в той последовательности и это аффектило результат? (понятно, что именованные фичи в каком порядке не подавай будет норм)
Anonymous Poll
62%
Да, осечка вышла
38%
Нет, всегда четко деплою модели
#кейсы #ML
Хотел рассказать вам о кейсе когда я очень долго смотрел в одну точку, а Senior, который перепутал последовательность фичей модели на инференсе (все мы бунтовали против пандаса и старались стать поближе к нампаю), думал в этот момент стоит или нет вызывать мне психиатричку.
Но поделившись этой историей с парой приятелей-ds выяснил, что и у них такое бывало.
Хотел рассказать вам о кейсе когда я очень долго смотрел в одну точку, а Senior, который перепутал последовательность фичей модели на инференсе (все мы бунтовали против пандаса и старались стать поближе к нампаю), думал в этот момент стоит или нет вызывать мне психиатричку.
Но поделившись этой историей с парой приятелей-ds выяснил, что и у них такое бывало.
итак, 58/42 в пользу людей против роботов ) что ж, придется несколько постов с ошибками чуть посложнее сделать )
Раз уж зашла речь об экономии. Экономить память -- хорошо, экономить на спичках -- плохо. Один молодой DS ставил модель в пром и искренне пытался экономить. Одна из фичей у него была -- размер баннера, и он для нее выбрал тип
Как думаете, что произошло с баннером высотой 400 пикселов? 🙈
Кстати
может кинуть ворнинг, а может и нет, а вот
точно отработает.
PS: с мидлами такие оказии тоже бывают, а заметить такую ошибку со стороны непросто.
np.uint8
Как думаете, что произошло с баннером высотой 400 пикселов? 🙈
Кстати
np.uint8(400)
может кинуть ворнинг, а может и нет, а вот
np.array(400).astype(np.uint8)
точно отработает.
PS: с мидлами такие оказии тоже бывают, а заметить такую ошибку со стороны непросто.
🙏5🫡4