Сегодня поговорим про инженерную инфру в DS, всякий MLOps #MLOps
Начнем с #Jupyter -а...
Jupyter конечно говно, но очень удобное. Код, текст, графики, вывод: все в одном месте, как статья. Можно заставить на жирном сервере, не давать доступ по ssh, не мучаться с удаленным запуском, профилировать процессы
Поругайтесь на jupyter или выступите адвокатом дьявола. Можно выговориться как на кушетке у терапевта. После рабочих встреч и пары тасочек вернусь и пожалею вас. А еще расскажу свою историю с notebook-ами
Познакомился с Jupyter notebook-ом я на HighLoad 2014 (красиво закольцевал, да? вчера HighLoad, сегодня HighLoad) @facultyofwonder делал там доклад про анализ в рекламе и примеры демонстрировал в Jupyter-е
В этот момент я прозрел, до этого я обрабатывал данные на плюсах и джаве, работу с OpenCV делал через шарп.
Да, на работе был python и java, но анализировать данные на Python в голову мне не приходило
Для некрофилов доклад можно посмотреть тут
Все визуализации были на ggplot2
Когда пришел домой, поставил jupyter, тогда он еще назывался IPython Notebook, и воспроизвел весь код с концы (фотографировал слайды на телефон)
Дальше начал экспериментировать
В 2015 году мы начали решать DS задачи в HeadHunter. На одной жирненькой тачке мы запускали jupyter каждый для себя (нас было 2е)
Когда в команде было уже 4-5 пользователей, решили что это уже не очень удобно, а тачку подтянули еще дирнпе
Ну и я зафигаяел jupyterhub на сервер
Он конечно был. Ыроват, но мне повезло: репозитории hh на github, и oauth2 работал тут отлично
Я тащился делать микро-оптимзации, доп.библиотеки и различные улучшегия
Когда я пришел в юлу, там был python, r, pyspark и sparkR
Все работало через jupyter
Первым делом мы отказались от R
SparkR работал ну прям ужасно, иногда ложил кластер
Благо в отделе у меня были просто лучшие и безболезненно перешли на pyspark
Мы отказались от Cassandra - и попытались перед ти на hive. Spark streaming иногда подводил
Вообще хранить кликстрмм в Cassandra, наверно самый большой посттравматический синдром того времени
Одна из особенностей, чтоб заставить jupyterhub,нужно было оформить это все в виде RPM пакета.
DevOps такой DevOps
Но тут мне тоже очень повезло с коллегами из DevOps, это были затяжные вечера, но с обоюдным желанием докатить все до конца
Следующий jupyter на моем пути был в Lamoda
Когда я пришел, все пользовались одним инстансом
Тут наверно стоит сказать о проблемах: 1) вы не можете нестарнуть свой jupyter, рестартанет всех 2) вы видите чужие ноутбуки и можете их случайно (или нет) прибить 3) никогда нельзя понять, кто отъел CPU и RAM
С классным Data Engineer-ом, с позволения классной команды DS-ов мы заставили JupyterHub
тут рассказывал про некоторые фишки
самый популярный мой доклад на ютубчике, почти 40к просмотров
А это продолжение про расширения и jupyterhub
Что вообще стоит докручивать в Jupyter? 1) слать метрики cpu, gpu, ram по ноутбукам и пользователям в графану, чтоб знать кто или что забило память 2) авто-шатдаун ноутбука, если там давно (например сутки) ничего не выполняется...
3) если у вас используется Spark, я бы не делал pyspark ядро. почему?
3.1) частый кейс, тебе нужно всего лишь посмотреть старый ноутбук, копипастить какой-то код или посмотреть на результаты, а это создаст spark-контекст...
3.2) появляются сотрудники (аналитики, джуны), которые не знаю, что за этим скрывается и что такое контекст и какие там параметры
3.3) код нельзя превратить в py и запустить как скрипт
3.4) не все параметры контекста можно поменять по горячему...
Единственное, что можно сделать - вынести инициализацию контекста в отдельную функцию/либу и дать возможность менять параметры контекста до запуска)
4) автошатдаун Spark контекста - это тоже хорошо 5) запретить консоль - а кому нужно, дать ssh 6) вместо htop использовать glances.readthedocs.io/en/latest/ 7) сделать Шеринг папку для того, чтоб делиться ноутбуками) 8) если вы хотите на GitHub свой код, посмотрите reviewnb.com
Пожалуй все.
Не подсаживайтесь на jupyter, много красивого, дашборды по кнопке - но слезать с этого будет больно
Посмотрите в сторону удаленного запуска кода и его дебаг, функционал встроен в pycharm/idea, но вроде только в Pro версиях
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Меня часто спрашивают, как пройдет датафест 1) зарегистрируйтесь datafest.ru/2021/ обязательно! 2) 22 мая будут стримы и нетворкинг, нужно обязательно зарегистрироваться, чтоб ничего не пропустить... #datafest
3) с 23 мая начнется публикация докладов и прочих активностей, но обязательно зарегистрироваться, чтоб не пропустить доклады и прочее расписание 4) в некоторые субботы мы проведём стримы-прямые_включения, 29 мая стрим будет из Ярославля, но обязательно зарегистрируйтесь...
5) вся движуха пройдет до 18 июня, а 19 июня будет финальный стрим
Много дат, да? А знаете как их не забыть и не пропустить?
Возможно вы еще помните такое приложение, как clubhouse? Если уже не помните, давайте смахнем пыль. Вот, что расскажу.
В феврале мы начали там проводить дата завтраки... #datazavtrak
Каждое утро (последний месяц только пн, ср, пт) в 9:30 мы стартуем комнату в clubhouse, где обсуждаем все вопросы связанные с данными: задаем вопросы, отвечаем, обсуждаем новости и питчим идеи
Сейчас дата завтрак проходит камерно, но в начале в пике в нем было 700 человек. Второй дата завтрак продлился 9 часов (плавно перетек в дата ужин)
Добавим немного личных историй про HighLoad. В программный комитет онтиковских конференций я попал 2 с небольшим года назад, пригласил меня туда Роман Поборчий. Роман тогда хотел сделать дата-конференцию под онтиковских брендом. В итоге она прошла в 2019 году- UseData #conference
Так же я стал ПК конференций онтико, где есть дата секции: хайлоады Москвы, Питера и Сибири.
Что дает членство в ПК онтико: бесплатные билеты на все конференции онтико, даже где ты не ПК. Где ты ПК - еще и трансфер , если это другой город. Часовую ставку за обслуживание докладов и тп (ее я не оформлял) и, наверное, самое важное, хорошая компания других членов ПК.
Канада!
Не могу не начать с хорошей новости, которую вы наверняка уже слышали - только в 2021 году Канада хочет принять овер 400к иммигрантов
No time like the present ;) cicnews.com/2021/05/canada…
Я попала туда по программе PNP - Provincial Nominee Program
Есть другой путь - Express Entry, где нужно набрать опр. количество баллов по разным критериям полезности для страны - языковые скиллы, опыт работы, возраст и тд
С PNP всё гораздо проще и ВНЖ через пару лет гарантирован
Проще, потому что не нужно сдавать экзамены на знание языка, участвовать в конкурсе баллов и тд
Вам нужна desperate enough провинция (== штат), где не хватает специалистов, оффер оттуда и...в принципе всё, можно считать, что канадский паспорт на руках :)
Это, наверное, самая тихая неделя в сообществе :)
Наверное, мне должно было бы быть стыдно, что не справилась, не придерживалась плана и тд, но знаете что? НЕТ
Обидно, что не смогла поделиться кучей мыслей, статей, решений, задать сто интересных вопросов, но не стыдно :)
Хочется немножко затронуть тему выхода из строя (порой ВНЕЗАПНОГО) самого главного и самого сложного органа в нашей тушке
Точно знаю, что страдаю тут от них не одна :)
Иногда мы строим планы и даже их придерживаемся, а иногда мозг не даёт нам этого сделать и сильно мешает работе
Можно злиться на себя и пушить свой организм дальше, можно ощущать бессилие и тихо закапываться в нем, я обычно выбираю третий вариант - послушать свой организм и give it a break, даже если это факапнет ваши планы и доставит неудобства
И не молчать, главное - не молчать об этом