Нам кажется, что сейчас такое время, когда особенно важно поддержать it-community. Конференции - это про людей, добро и знания. Поэтому, несмотря на тревожную повестку, мы приняли решение продолжать свои проекты, объединяющие профессиональное сообщество
PyCon Weekend состоится 25-26 марта в Красной Поляне.
12 классных спикеров последние несколько месяцев готовятся к выступлениям и ждут участников, чтобы поделиться практическими кейсами и обсудить тренды в python, ML, Data Science.
Конференции PyCon – это отличный способ присоединиться к сообществу, узнать об опыте коллег и расширить круг профессиональных знакомств. И всё это офлайн - с полным двухдневным погружением и в дружеской атмосфере. Участники пайконов слушают доклады во время официальной программы, а потом неформально общаются друг с другом и спикерами на душевных вечерних посиделках.
В конце первого дня мы устроим традиционные lightning talks, где каждый сможет попробовать себя в роли спикера. Не забудем про нетворкинг и склоны Красной Поляны, которые приглашают переключиться на спорт: трассы разной сложности и прокат снаряжения работают в своём обычном режиме.
Мы попросили наших спикеров рассказать подробнее о своих докладах
? Григорий Петров (Evrone, Москва): «Нейрофизиология сложности кода»
В этом докладе я хочу продемонстрировать вам детали: как именно выглядит сложность в нейронах наших мозгов.
Нас ждет огромное дерево когнитома, облака когов с оптическим зумом, зрительная кора, бесчеловечные эксперименты с воображением. И код. Много кода. Простого кода, сложного кода и непонятного кода, который с одной стороны простой, с другой сложный, а с третьей стороны вообще пересечение параллельных линий в форме котика.
? Василий Копытов (Avito, Москва): «Как и почему мы перешли от Python к Go в нашем основном сервисе рекомендаций»
Рекомендации Авито — это первое, что видит пользователь, когда попадает на главную страницу. Нагрузка на наш основной сервис — порядка 200 тысяч запросов в минуту.
За последние два года мы сильно улучшили качество рекомендаций, но сильно проиграли в latency. Главным врагом производительности и latency стало добавление ML модели второго уровня на основе CatBoost для ранжирования объявлений от базовых ML моделей первого уровня в реалтайм.
В докладе я расскажу:
- Как мы приняли решение переписать все на Go, перед этим мы выжали из Python все, что смогли;
- Как подружили CatBoost с Go и стали использовать ML модель на основе CatBoost в Go;
- Что получили по latency и потреблению memory/cpu.
? Сергей Озеранский (QIWI, Москва): «Векторы атак API»
Как FinTech компания, мы сильно заботимся о безопасности приложений. Этого требует и бизнес, и стандарты безопасности, такие как PCI DSS.
В выступлении расскажу о векторах атак, возможных способах защиты и превентивных мерах. Покажу на практике демо уязвимого кода, лайфхакинг эксплуатации уязвимости и способ защиты от неё. Это будет интересно разработчикам любого уровня начиная с junior. А после выступления каждый сможет проверить свои сервисы на уязвимость.
? Олег Хачумов (CVisionLab, Ростов-на-Дону): «4 мушкетера: python, cython, numba и taichi. Ускоряем код, не ломая голову»
Вы сталкивались с тем, что какой-то алгоритм работает на Python слишком медленно, а его реализации в бесчисленном множестве пакетов нет? Если да, тогда мы идем к вам!
К cython мы пришли решая практическую задачу. У нас был вычислительно сложный фрагмент кода, который надо было запускать на слабом железе (на raspberry pi). Перепробовав различные варианты было решено остановиться на Cython. В итоге он дал существенное ускорение по сравнению с версией на Python + Numpy.
Cython хоть и является гибридом python и C/C++, но он вполне дружелюбный и может помочь с кастомными алгоритмами в том случае, если мы не хотим писать собственную библиотеку на плюсах.
Также помимо Cython есть еще прекрасные альтернативы писать быстрый код на python, это библиотеки numba и taichi. Их не стоит смешивать в одну кучу, потому что каждая имеет свою особенность и должна быть использована по назначению. Об этом и планируется доклад.
? Данил Ахтаров (Тинькофф, Санкт-Петербург): «Почему питон не будет функциональным и почему нафиг никому это не нужно»
На питоне можно писать так и эдак, но когда ты в команде, кто-то "старший" решает, как лучше это делать. Вы могли слышать, что "этот код не питонячий", "так на питоне не пишут". Стоит разобраться, почему.
Я совсем недавно открыл для себя функциональное программирование, и мне понравился этот стиль. В основном композиция функций на языке Хаскель. Так как мой основной стек это Python, я предполагал, что такое можно сделать и на нем.
Но почему все используют императивный подход в разработке и внедрить в свой рабочий проект новые идеи очень сложно. Если все таки захотим использовать функциональный стиль, с какими проблемами можем столкнуться? Если честно, в питоне мало фичей для ФП, но можно использовать диалекты, с помощью которых ваш код будет декларативным и более читаемым для людей. Но есть свои недостатки, которые нельзя игнорировать.
В своем докладе я предлагаю познакомиться с этой темой и, возможно, вы отметите для себя что-то интересное.
? Матвей Коняев (Точка, Екатеринбург): «Как писать тесты дешевле»
Доклад поможет раскрыть несколько важных моментов, которые помогут написать тесты дешево, быстро и правильно:
- Общая архитектура приложения, при которой удобно использовать интеграционные тесты.
- Общая архитектура тестов.
- Использование pytest и mocker.
- На реальном примере покроем приложение сначала юнит-тестами и убедимся, что такой подход к тестированию не совсем корректный и в итоге пропускает ошибки в функционале. Параллельно посмотрим, что наличие исключительно интеграционных тестов тоже несет не всегда позитивные последствия.
- На примере доклада рассмотрим подход к разработке, который находится между TDD и "разработал и после покрыл тестами".
Помимо всего прочего, сможем посмотреть, как можно тестировать код на максимальную глубину, даже захватывая базовые классы. Слушатели смогут убедиться, что высокий процент покрытия тестами — это не всегда хорошо.
А так же смогут понять, что разработка и параллельное тестирование собственного кода — это сбалансированный подход в плане качества кода, стоимости разработки.Мы сможем посмотреть на реальном примере, что писать тесты с хорошей архитектурой не так сложно и долго.
? Станислав Фатеев, (CVisionLab, Ростов-на-Дону): «Pydantic: валидируй это. Как работать с данными быстро и без боли»
Вы уверены, что приходящие к вам данные соответствуют вашим ожиданиям? Добавим немного определённости в нашу жизнь с помощью Pydantic.
В своём докладе я расскажу о том, как сериализовать и валидировать данные и почему это важно. Поделюсь тем, как мы значительно упростили процесс поддержки и парсинг параметров production приложения. И как использование Pydantic помогло нам: улучшить структурированность параметров, настроить версионирование и проверку в CI текущей схемы на наличие изменений, получить автоматическое построение документации параметров минимальными усилиями.
И в целом расскажу о преимуществах, недостатках и полезных особенностях Pydantic. Как уйти от работы со словарями к классам. А также затрону нетривиальные возможности и случаи использования.
? Тимур Кадыров, (Сбер, Лаборатория Нейронаук, Москва): «Ускоряем расчет признаков на коротком датасете для HFT на бирже»
Для работы HFT необходимы очень маленькие задержки. Поэтому при внедрении ML модели нужно учитывать ограничения на время расчёта признаков. Есть много докладов и статей на тему ускорения расчётов на pandas. Сюда можно отнести и pandarallel, и dask, и polars. Ребята из Intel даже рассказывали на прошлом PyCon-е про modin. Все эти инструменты работают при больших объемах данных. Но что делать, если количество строк меньше 1000 или даже 100?
В данном докладе хочу осветить несколько тем:
- Почему так важна низкая задержка при hft.
- Какие возможны оптимизации для снижения количества расчетов.
- Numpy Structured arrays как замена Pandas DataFrame.
- Вспоминаем математику и ещё немного сокращаем количество операций;)
? Павел Мальцев, (Speechki, Москва): «Redis, сова и глобус»
Все мы привыкли, что Redis простой инструмент, который прекрасно подходит для кеширования в формате Key-Value. Однако в нём есть более весёлые структуры данных, которые могут сделать нашу жизнь веселее и приятнее.
Залезем в кроличью нору и найдём в документации списки, хеши, множества и другие структуры. Покажу несколько кейсов из реального продакшена, где эти структуры полезны и как использовать их особенности себе на пользу. Строим свой велосипед на двух колёсах.
? Борис Цейтлин, (Яндекс.Толока, Москва): «Нестандартные применения crowd labelling в ML»
Крауд разметку чаще всего используют, когда примеры есть, нужно обучить на них ML модель, а разметки нет. Однако крауд, в частности с помощью Толоки, можно использовать для множества практических задач помимо непосредственно обучения модели.
В этом докладе я расскажу про такие примеры:
- Human-in-the-loop мониторинг ML моделей с помощью крауда. Подводные камни и наш собственный опыт с внедрением такой системы.
- Стартер пак для реализации своего пайплайна мониторинга. Крауд разметка для калибровки моделей.
- Кластеризация данных с помощью крауда. Используем крауд для очистки датасетов от шума.
- Active learning: размечаем только то, что нужно для обучения модели.
Доклад будет полезен специалистам, работающим с ML моделями, как аналитикам данных, так и инженерам.
? Денис Толкачев, (Сбер, Лаборатория Нейронаук, Москва): «Производственный брак. Ищем некрасивую рыбу на конвейере»
Как разработать систему распознавания рыб на конвейерной ленте, имея на руках только видеозаписи рыб с ленты, raspberry pi и python. При этом хотим близкое к real-time быстродействие системы на rpi и не сойти с ума.
Требования к модели: уметь отличать рыбу от остальных предметов, определять вид рыбы, положение рыбы на ленте (головой в сторону движения или хвостом, хребтом вправо или влево), брак.
В данном докладе хотелось бы рассказать про путь в данной задаче:
- Поиск похожих решений: их достоинства и недостатки.
- Как формировали собственное решение: Детекция -> Сегментация -> Выбор моделей.
- Разметка.
- Обучение.
- Первые попытки и интеграции.
- Попытки обучить «легкие» модели и переразметка имеющихся данных.
Если у вас есть вопросы к докладчикам по темам выступлений, можете писать в комментариях - мы передадим и отправим вам ответ! Но лучше приезжайте пообщаться лично на конференции PyCon Weekend.
Забронировать билет по ранней цене, а также узнать подробности можно тут.
Аэропорт Сочи работает в обычном режиме. До встречи!