Заметки дата-сатаниста
272 subscribers
43 photos
1 video
31 links
Про повседневность ML инженера, мотивацию, вызовы, работу с данными и истории из жизни.
Download Telegram
После 4 месяцев в тепле вернулся в РФ.
Впечатления двоякие.

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

С другой стороны - вернуться в родное кресло, в привычный круг общения и к любимому хобби достаточно приятно. Социальной инфраструктуры в РФ для меня больше, это удобно. Заграницей инфраструктуру приходилось строить заново.

Боюсь представить, сколько сил нужно при релокации на ПМЖ.
Когда в компании говорят про ML-проекты, многие ДСы, назначенные большими талантами, бросаются сразу делать модели. Как будто обед начинается с десерта - вкусно, соблазнительно, но очень вредно.

Так же с ML-проектами. Если в компании нет опыта внедрения таких проектов, то первые проекты могут провалиться из-за проблем с дизайном, разных ожиданий у заказчиков/исполнителей, дискоммуникации и разных других.

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

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

Нестыковки обесценивают индивидуальную работу и приводят к конфликтам. В итоге проект двигается сильно сложнее из-за экономии времени на дизайне решения.

Надеюсь скоро найти книги/курсы по систем дизайну и глубже проникнуться ценными идеями.
Про важность обратной связи

Говорят, обратная связь помогает человеку развиваться. Но иногда я вижу, что обратная связь лишь напоминает человеку о его “зонах роста”, в которых он так и не вырос. Получается противоположный эффект: обратная связь подсвечивает отсутствие прогресса и еще больше демотивирует.
Что с этим делать?
Стоит выяснить, действительно ли та зона роста, в отношении которой дается обратная связь, является для человека зоной роста. Или это просто хотелка из разряда “похудеть к лету”?
Однажды Эрнест Хемингуэй поспорил, что сможет написать самый короткий рассказ, способный растрогать любого. Он выиграл спор, написав это.

А если серьезно, то недавно в сеть утекла кодовая база Яндекса на ~45Гб. Просматривал архив с кодом и нашел много интересного, например эту фразу, на которой обучалась Алиса.
Про важность окружения.

Иногда встречаются люди, от общения с которыми ты заряжаешься энтузиазмом и желанием сделать что-то большое.
Появляется уверенность, что любая задача тебе по плечу. Все из-за того, что человек в тебя верит и поддерживает здоровое общение. Такие люди встречаются не часто, а если вы еще и работаете вместе - это большое везение.

Недавно провел почти полтора часа за беседой с таким человеком и ощутил бодрящий прилив сил.
Такой вот рабочий допинг.
Знакомый, опытный разработчик 1С, поинтересовался, как сейчас обстоят дела на рынке труда питонистов и легко ли джунам живется. Хочет сменить сферу, но пока не выбрал направление.
Разговор зашел про различия между грейдами. Мы пытались понять, где та грань, отделяющая джуна от мидла и выше. Это мог быть вечный диалог.
Он говорил про опыт и хард скилы, я - про зону ответственности и стратегическое видение.
Но в одном мы сошлись - команда создает эффект регрессии к среднему.
Ты выше среднего по набору скилов? Будешь старшим разрабом, а может даже лидом. Учиться тебе не у кого, будешь учить младших.
Знаешь синтаксис и немного алгоритмов? Будешь младшим, быстро нахватаешься и сможешь называться мидлом.

В итоге то, на какой грейд тебя позовут, зависит на 90% не от тебя, а от среднего уровня команды.
Любителям sudo посвящается
Все новое - хорошо забытое старое
☑️ #чек_лист

Делюсь собственным чек-листом готовности идеи ML проекта к внедрению👇
1. Определение задачи: как машинное обучение может улучшить бизнес-процессы или определенные операции.
2. Оценка ценности: определение потенциальных экономических преимуществ, которые может принести внедрение проекта.
3. Доступность данных: оценка доступности и качества данных, необходимых для обучения моделей.
4. Культура компании: насколько компания готова к изменениям и внедрению новых технологий.
5. Планирование: разработка роадмапа внедрения проекта с определением ролей и зон ответственности.
6. Наличие ресурсов и компетенций: есть ли у вас необходимые ресурсы, вычислительные мощности, данные и квалифицированные специалисты, чтобы выполнить проект.
7. Оценка рисков: возможные риски, связанные с внедрением проекта, и меры по их минимизации.
8. Поддержка и улучшение качества: создать план поддержки и повышения качества, чтобы обеспечить успешное внедрение и дальнейшее развитие проекта.

В идеальном мире галочки должны стоять напротив каждого пункта. Но в реальности будет хорошо, если 4-5 пунктов будут зелеными.
#тру_стори

Один знакомый последние полгода активно продвигает идею проекта и пытается внедрить его. Проект по своей сути - адаптация кода из одного популярного курса под локальную архитектуру компании. Если проще - обезьянничество.

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

И самый интересный вопрос: почему это меня так тригерит? 🤔

Го в комментарии - это оттачивание навыков, одобряем, или обезьянничество и не одобряем?
Media is too big
VIEW IN TELEGRAM
Новая компания и привычная структура
#мануал

Когда я впервые услышал про авто-ML, то представлял себе чудесную кнопку "fit_predict", которая делает все за нас. Так сильно я еще не ошибался.

Готовлю мануал по интересной библиотеке PyCaret.
Если хочется получить бейзлайн в 5 строк кода, то вот ссылка на ноутбук с примером.

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

Теперь можно провести эксперименты с данными за 15-минутный перерыв на кофе между созвонами ☕️
#мануал

В самом разгаре идет соревнование от МТС по очень распространенной и в каком-то смысле игровой задаче - классификации. Предлагают по куки определять пол и возраст юзера, доступно 200+ млн строк.
Здесь можно скачать бейзлайн от организаторов и посмотреть на работу с данными с помощью PyArrow - библиотеки для работы с большими данными, оптимизированной под работу in-memory analytics.

Кстати призовые за первое место - 350к деревянных.

А здесь ссылка на само соревнование.
Сегодня вышла, кажется, единственная ААА игра от российских разработчиков - Atomic Heart.
Сюжет про СССР 50х годов, где наступили времена киберпанка.
Музыкальным сопровождением игры занимался Мик Гордон, который работал над саундтреками к Doom. Он сделал ремиксы на популярные советские хиты группы "Мираж", Аллы Пугачевой и некоторые другие. Музыка уже появилась в сторах и можно испытать новые ощущения со знакомым привкусом.

Средняя оценка Atomic Heart на Metacritic составляет 79 баллов из 100 на базе 19 рецензий, что вполне неплохо для дебюта, но все-таки по 19 рецензиям судить рано. Возможно их оставили просто вежливые люди.

Интересно то, что для создания изображений человекоподобных роботов вероятно использовались Dreambooth и Textual Inversion подходы, которые по сути переобучают нейронку на переданный образ и позволяют генерить различные изображения объекта, на который сеть переобучилась.
AB-тесты в несколько строк кода?

Помню как тратил временя на дизайн АБ-теста и в голову все время шла идея, что механики расчетов можно оформить в библиотеку. Команда Big Data МТС в конце 2022 года выложила в open source такую библиотеку, уже поставил им звезду.

Подготовил #мануал по расчету размера датасета с использованием этой крутой библиотеки, которая называется ambrosia.

В мануале для понижения дисперсии применил CUPED с несколькими ковариатами. Да, библиотека и в такое умеет.

🔗 Вот ссылка на колаб с кодом.

А что ты используешь для дизайна АБ-теста? Может есть еще более крутая либа?
#тру_стори

Как я пришел в ML?
Бизнес всегда мне был интересен с точки зрения его эволюции.
Компания - сложный организм из людей, интересов, авторитетов, денег, влияния и многого другого. По сути - небольшой мир, в котором мы живем каждый день.
Мой внутренний перфекционист ворчит, когда что-то внутри бизнеса, за который я болею душой, происходит не оптимально. В начале карьерного пути я глубоко погружался в важные для бизнеса темы и испытывал жгучее желание делать его лучше. Это желание все еще живет, оно научило многому и привело меня в ML.

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

Бывают дни, когда меня преследует ощущение бесполезности. Можно ли потерю времени как-то измерить?
Спишь ночью 8 часов и на утро не жалеешь о потери времени. Почему?

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

Последние два месяца практикую периоды полной фокусировки и они уже дали свои плоды. Помогает таск-менеджер, правильное питание и наушники. В среднем в день получается 4 часа наибольшего фокуса, когда можно учится/делать сложный проект/проводить важный звонок.
Работаю над увеличением своего времени до 5 часов - идет сложно.

А как ты управляешь своим вниманием? Знаешь для этого лайфхаки?

P.S. Слышал про пьяное программирование, но это скорее шутка, чем лайфхак 🍸