Время Валеры
25.5K subscribers
166 photos
6 videos
1 file
354 links
Мне платят за то, что я говорю другим людям что им делать.
Автор книги https://www.manning.com/books/machine-learning-system-design
https://venheads.io
https://www.linkedin.com/in/venheads
Download Telegram
Если меня попросят описать самый часто встречаемый дата лик при работе с моделями машинного обучения, то бесспорным номером один будет прогноз прошлого через будущее.

Возникает он, очевидно, когда есть какая то стрела времени, что как несложно догадаться - довольно частый случай.

Две основных причины возникновения таких ликов :

1. рассчет статистик через временное окно, затрагивающее будущее
2. Разбиение выборки(train/test) по user ID без учёта временной компоненты

Почему это происходит? Видимо людям тяжело, когда появляется дополнительная размерность в виде времени

Что делать? Универсальный ответ - обучение и проверка модели должны полностью воспроизводить сценарий реального применения. Например, если нужен прогноз на октябрь и делается он в сентябре, не получится посчитать скользящее среднее захватывая Октябрь, этих данных просто ещё нет, значит и при обучении так делать не надо.

Если хочется прогнозировать отток в октябре, мы не можем обучить модель на тех кто ушел в отток в октябре, потому что их ещё нет. Поэтому если мы обучим и проверим модель на сентябрьских данных, это тоже будет некорректно, ведь в реальности проверяя октябрь, мы не имели октября для обучения, поэтому и проверяя сентябрь, мы не можем иметь его в датасете для обучения

Такого типа проблему я видел везде, от Биг Теха, до маленьких стартапов
Почти 4 года назад я помогал одной арабской конторе в проекте с predictive maintenance нефтяных установок. Основным контактом был чел, который в принципе толи ничего не понимал в мл, толи очень мало, зато был PhD в области AI.

В последнее время он начал спамить в Linkedin что как непросто, но в тоже время круто быть контрибьютором в open source и назвал себя в профиле Keras-core contributor, я удивился и подумал ничего себе чел сделал прогресс, дай-ка посмотрю что делает. И посмотрел.

Есть в принципе и не совсем плохие, где он увеличивает test coverage (хотя если уже детально рассматривать все варианты, то неплохо бы и сообщать какой именно кейс выпал). Как минимум один раз он пофиксил что-то действительно некорректное

Вывод: Хотите лычку core контрибьютора в Open Source - это можно сделать довольно просто
Читаю комментарии ревьюеров к книге, что ни комментарий - то улыбаюсь
Вышла девятая глава книги. Нельзя не упомянуть помощь Богдана, который активно принимал участие в написании этой главы и чья помощь неоценима. Кроме того по мотивам он недавно накатал статью на Хабр.
На неделе выдалось четыре свободных часа и понятное дело я решил потратить их на прототипирование платформы АБ тестов

Ничего необычного: встроил туда бутстрап и стат тесты, CUPED, симуляции А/А и А/Б + проверка как долго по времени держится репрезентативность групп относительно друг друга и соотвественно как долго можно держать эксперимент.

Безусловно все делается в многопоточность + немного оптимизации, что позволило ускориться в два раза по сравнению с первой версией (умноженное сверху на количество ядер). Описал типы переменных и выходов для всех функций и классов, подключил управление через конфиг и запилил логирование, конечно же окружил все разными эксепшенами, чтобы понимать что ломается. Также обложил все юнит-тестами и наконец-то нашел где использовать Data Class в питоне, это не считая некоторых встроенных проверок в сами модули, заодно кстати и по модулям все раскидал. Полирнул все через isort, yapf и black, попутно угождая прихотям pylint

Получил редкое наслаждение от процесса и подумал в очередной раз, что chatGPT (Я пользовался им и он конечно здорово ускоряет процесс. Co-pilot дальше чем автозаполнение для док стрингов и типов, и то которе нужно править, пока не зашел) расширяет пропасть между опытными и начинающим, потому что будь на моем месте человек неопытный, он бы все принимал за чистую монету и chatGPT его бы жестко надурил и не раз. Даже не потому что он злой или тупой, а потому что оперирует естественным языком, потому свойственна неопределенность. Кроме того, сэкономил он мне время так, где мозги были не особо нужны, а нужна была рутина, занимающая кучу времени.
Еще каких-то 7 лет назад я ходил на лекции Александра Петрова в Питере, а сегодня мы оба живем в одном Королевстве.

Его статья "gSASRec: Reducing Overconfidence in Sequential Recommendation Trained with Negative Sampling," co-authored with Craig Macdonald, получила награду the Best Paper award at ACM RecSys 2023

И пожалуй более крутого признания в его области нет
Однажды, когда я работал инженером по прикладным разработкам в компании Foss, я поехал на элеватор в Мордовию.
По пути из Саранска на Элеватор таксист рассказывал про своего знаменитого земляка - Жерара Депардье

В лаборатории этого Элеватора был установлен ряд приборов, требующих осмотра. Путь был непрост, так как лифта не было, инструменты были тяжелые, а лаборатория находилась на 11 этаже с очень большими пролетами на каждой лестничной клетке.

Когда Эверест был покорен и я наконец-то зашел в лабораторию, передо мной оказали две очень грустные девчонки, которые смотрели на мышь. Мышь исполняла нижний брейк на бумажке с клеем. То есть просто лист бумаги А4, на который сначала щедро нанесли клей, а затем и мышь. Я тоже начал смотреть, не каждый день видишь нижний брейк в исполнении грызуна.

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

Девочки перестали смотреть на мышь и стали пристально смотреть на меня. Стало жутко. Захотелось проверить не наступил ли я на бумажку с клеем

Туалет на первом этаже, ответили они
#CoolStory
Однажды, когда я работал инженером по прикладным разработкам в компании Foss, я поехал на элеватор в Мордовию.

Там мне не удалось попить чаю, но зато удалось починить ряд приборов. Чинил я их в компании инженера и кандидата наук, который рассказывал как он ненавидит ЕГЭшников. Я решил не говорить ему что тоже сдавал ЕГЭ (правда только по русскому языку) и что мне нравится сама идея. Не захотелось прерывать его байки про криворуких ЕГЭшников, да и меня он к счастью не раскусил. Или тоже решил не говорить.

В итоге, когда я вскрывал прибор для выделения жиров - он с радостью рассказал как прибор пару раз у них взрывался и они меняли почти все внутренности. Жиры в воде не растворяются, а в эфире растворяются, потому их вымывают через смесь эфиров. Если не ставить хорошую вентиляцию, испарения эфира накапливаются и становятся взрывоопасными. Так как все ресурсы, понятное дело, ушли на клей и бумагу для мышей, на вентиляцию ничего не осталось, отсюда и взрывы. Я решил, что во время тестового прогона, спуститься в туалет на первый этаж с одиннадцатого, не такая уж и плохая идея

Вскрыв прибор, я обнаружил причину неполадок. Одна из трубок была цинично сожрана мышью. Инженер подтвердил, что это действительно любимая трубка мышей(или одной опытной мыши?), трубка из такого материала там была одна, по ней как раз сливался Эфир. Либо материал этой трубки был особенно притягателен, либо после клея мышам хотелось Эфира. Опираясь на людское поведение, я бы поставил на второе. Забавно, что обычно сначала тестируют на мышах и только затем на людях, здесь вышло наооборот

Сразу после замены трубку и проверки прибора, инженер, с некоторым блеском в глазах, спросил, есть ли у меня еще такие трубки?
Я серьезно задумался, включил прибор и пошел на первый этаж.
#CoolStory
За что уважаю статьи от Саши Сахнова? За то что они полезные и понятные: https://habr.com/ru/companies/X5Tech/articles/763656/ Легко и просто написано, каким же является оптимальный размер группы А и групп Б, когда групп Б > 1 во время А/Б тестов

Хотят тут я бы посмотрел, а что если бустрапить группу А_синт, равную размером группе Б из всего изначального А?
Однажды я работал в Х5 большим начальником и так вышло, что мы организовали квиз от Х5, собрав команды случайным образом.

Наша структура была уже довольно крупной, больше полутысячи человек, поэтому в лицо никто всех не знал.

За столом мне довелось сидеть с одной девушкой, которая в какой то момент не выдержала напора моего интеллекта и спросила. Ты что, самый умный? В ответ я лишь удивлённо улыбнулся и пристально посмотрел на нее, чтобы запомнить, ведь ответа на этот вопрос я в тот момент не знал.

Затем поочередно стали вызывать больших начальников, чтобы наградить отличившихся в квизе.

Когда пришла моя очередь и назвали мое имя и должность, на лице девушки отразилась гримаса удивления переходящего в ужас.

Вот бы также делали в магазинах оптики, подумал я.
#CoolStory
Где-то год назад я писал, что Симулятор ML в активной разработке. Сейчас Симулятор ML всё ещё в активной разработке и всегда там будет, потому что сделать его до конца невозможно. Но кое-что все-таки можно - отсюда и отчет

– Почти 70 задач по запросам студетов и по нашему хотению. Симулятор запустили, когда их было меньше 30, теперь же их хватает чтобы иметь вменяемое разделение по четырём уровням и семи темам: динамическое ценообразование, рекомендательные системы, деплой, прогнозирование, тестирование, матчинг и все остальное, что еще недостаточно большое для выделения в отдельную тему

– Каждый месяц прибавляется в среднем по три задачи, а сам Симулятор работает как подписка.

– Появился чат-бот Ева, виджет ChatGPT для круглосуточной помощи, и обновилась система грейдера, которая теперь наглядно показывает ошибки.

– Направление пет-проектов. Один из пет-проектов вы скорее всего уже видели в комментариях – бот Spam Killer, который защищает чат этого канала (бывало что и от меня) и чат karpovꓸcourses от порно, крипты и пропаганды. За второе конечно обидно

– Комьюнити из 300 человек, которые активно участвуют в вебинарах, кодинг-сессиях, самостоятельно объединяются в команды для разработки проектов и участия в соревнованиях. (пока не найдется Onodera наших дней)
Мне очень нравятся заметки от Рони Кохави, потому что они совпадают с моим мнением.

Сейчас прочитал новую - дисс на когортный анализ

Сложно с ним не согласиться, меня всегда удивляло то, с какой настойчивостью аналитики в компаниюх делают когортный анализ для тонких выводов. Ладно еще понять, ничего ли не сломалось или как в целом (и то если сильно) менялось поведение пользователей

Но делать на этой основе какие то выводы о таких вещах как например retention (метрика с большим лагом) через когортный анализ (анализ с большим лагом и в разные периоды) - это просто трата времени на красивые графики ради графиков

TL; DR: Cohort analysis supposedly “allows you to see patterns clearly against the lifecycle of a customer” (Croll and Yoskovitz 2013). In Reforge’s Growth Series (Fishman 2023), it is touted as a great way to measure retention over time. The theory seems to make sense, and the colorful graphs, such as the one in Figure 1, are beautiful. However, without any measure of statistical significance, and with such fine-grained segmentation of the population into small cells, it is likely to be showing colorful noise. Furthermore, the analysis of lagging metrics like retention is unlikely to provide many actionable insights.
В очередной раз понял, что давно живу в будущем
Наткнулся на видео - The Rise of the "New-Age" Machine Learning Engineer

Подумал что интересно - вдругой какой новый звери зверь, тем более слово правильное, MLE послушаю
Оказалось что New-Age ML Eng умеет писать код и деплоить + разбирается какую из предобученных LLM использовать. Примерно как выпускник Hard ML. А MLE это просто новое название DS, который перекидывет ноутбуки

В целом, конечно, уровень конента и дискусси опечалил
Если я усну и проснусь через сто лет и меня спросят, что сейчас происходит в ML, я отвечу: не умеют писать код и не понимают что делают
В очередной раз понял, что давно живу в будущем
Наткнулся на статью - A New Study Says AI Is Eating Its Own Tail
Да и фантасты писали об этом давно

Если кратко - для обучения моделей нужны оригинальные данные, но обученные модели загрязняют интернет сгенерированным "мусором"

Впрочем о том что это случится, сильные пацаны говорили еще давным давно, и не раз, модели коллапсируют
Karpov Courses ищут экспертов на наш с Евгением курс System Design

Курс про то, как подготовиться к system design интервью или закрыть свои пробелы в дизайне систем (кстати сейчас его активно дорабатываем, расширяем чтобы сделать еще более полезным для тех кто создает)

На пути обучения студентам необходимы помощь и поддержка от экспертов, которые помогут понять, где студент свернул в размышлениях не туда, или подсказать, что он упускает из виду, а также ответят на другие вопросы по курсу.

Если есть желание и интерес позаниматься этим — нужно просто написать по ссылке или напрямую HR: @bogdasha2208
Наконец то долетел до Чикаго.
Сначала долго чистили самолёт, а затем потеряли третьего пилота, пришлось вызывать нового (потому что по закону меньше трёх нельзя, впрочем а союзе это всегда знали), что заняло суммарно четыре часа сверху.

Почему наконец то? Последнии десять лет, регулярно, раз в квартал, снится сон как я лечу в США и постоянно что-то происходит и я не могу прилететь

Зато посмотрел шедевр мирового кинематографа, фильм - Cocaine Bear, про 500 фунтового медведя, который нанюхался огромного количества кокаина и пошел во все тяжкие.

After ingesting a staggering amount of cocaine, a 500-pound apex predator goes on a rampage

Фильм кстати на удивление неплохой, если нравится абсурдный юмор
#coolstory