Запрос счета
Заполните поля ниже, чтобы получить счет на оплату билетов PyCon Weekend от юридического лица
Юр. лицо
ИНН
Количество билетов на конференцию
+
Промокод (если есть)
Программа
Прием заявок на доклады окончен.
Спикеры готовятся к выступлениям и оттачивают темы
Олег Хачумов
CVisionLab, Ростов-на-Дону
4 мушкетера: python, cython, numba и taichi. Ускоряем код, не ломая голову.
Тезисы
Данил Ахтаров
Тинькофф, Санкт-Петербург
Почему питон не будет функциональным и почему нафиг никому это не нужно
Тезисы
Матвей Коняев
Точка, Екатеринбург
Как писать тесты дешевле
Тезисы
Павел Мальцев
Speechki, Москва
Redis, сова и глобус
Тезисы
Сергей Бершадский
Urbamatica, Сочи
Что сделать, чтобы DevOps вас (Девелоперов) любил
Тезисы
Денис Толкачев
Сбер, Лаборатория Нейронаук, Москва
Производственный брак. Ищем некрасивую рыбу на конвейере
Тезисы
Григорий Петров
Evrone, Москва
Нейрофизиология сложности кода
Тезисы
Василий Копытов
Авито, Москва
Как и почему мы перешли от Python к Go в нашем основном сервисе рекомендаций
Тезисы
Станислав Фатеев
CVisionLab, Ростов-на-Дону
Pydantic: валидируй это. Как работать с данными быстро и без боли
Тезисы
Тимур Кадыров
Сбер, Лаборатория Нейронаук , Москва
Ускоряем расчет признаков на коротком датасете для HFT на бирже
Тезисы
Григорий Петров, Evrone, Москва
Нейрофизиология сложности кода
В этом докладе я хочу продемонстрировать вам детали: как именно выглядит сложность в нейронах наших мозгов.
Нас ждет огромное дерево когнитома, облака когов с оптическим зумом, зрительная кора, бесчеловечные эксперименты с воображением. И код. Много кода. Простого кода, сложного кода и непонятного кода, который с одной стороны простой, с другой сложный, а с третьей стороны вообще пересечение параллельных линий в форме котика.
Василий Копытов, AvitoTech, Москва
Как и почему мы перешли от Python к Go в нашем основном сервисе рекомендаций
Рекомендации Авито - это первое, что видит пользователь, когда попадает на главную страницу. Нагрузка на наш основной сервис порядка 200 тысяч запросов в минуту.

За последние два года мы сильно улучшили качество рекомендаций, но сильно проиграли в latency. Главным врагом производительности и latency стало, добавление ML модели второго уровня на основе CatBoost для ранжирования объявлений от базовых ML моделей первого уровня в реалтайм. В докладе я расскажу:
- как мы приняли решение переписать все на Go, перед этим мы выжали из Python все, что смогли;
- как подружили CatBoost с Go и стали использовать ML модель на основе CatBoost в Go;
- что получили по latency и потреблению memory/cpu.

Станислав Фатеев, CVisionLab, Ростов-на-Дону
Pydantic: валидируй это. Как работать с данными быстро и без боли
Вы уверены, что приходящие к вам данные соответствуют вашим ожиданиям? Добавим немного определённости в нашу жизнь с помощью Pydantic.

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

И в целом расскажу о преимуществах, недостатках и полезных особенностях Pydantic. Как уйти от работы со словарями к классам. А также, затрону нетривиальные возможности и случаи использования.

Александр Абрамов,SberDevices, Москва
Дистилляция моделей на примере BERT
Расскажем о том, что такое дистилляция знаний на примере задач текстового представления и поиска. Какая дистилляция бывает, как мы используем её для ускорения и облегчения моделей в production. Немного поделимся хинтами и современными подходами в данном направлении.
Сергей Озеранский, QIWI, Москва
Векторы атак API
Как FinTech компания, мы сильно заботимся о безопасности приложений.
Этого требует и бизнес и стандарты безопасности, такие как PCI DSS.
Цель – показать некоторые векторы атак на API, которые связаны с не достаточной проработкой архитектуры приложения или явными нарушениями написания кода с точки зрения лучших практик, что делает приложение уязвимым.
В выступлении расскажу о векторах атак, возможных способах защиты и превентивных мерах.

Матвей Коняев,Точка, Екатеринбург
Как писать тесты дешевле
Доклад поможет раскрыть несколько важных моментов, которые помогут написать тесты дешево, быстро и правильно:

  • Общая архитектура приложения, при котором удобно использовать интеграционные тесты
  • Общая архитектура тестов
  • Использование pytest и mocker
  • На реальном примере покроем тестами приложение сначала юнит-тестами и убедимся, что такой подход к тестированию не совсем корректный и в итоге пропускает ошибки в функционале. Параллельно посмотрим, что наличие исключительно интеграционных тестов тоже несет не всегда позитивные последствия.
    На примере доклада рассмотрим подход к разработке, который находится между TDD и "разработал и после покрыл тестами".
  • Помимо всего прочего, сможем посмотреть, как можно тестировать код на максимальную глубину, даже захватывая базовые классы
Слушатели смогут убедиться, что высокий процент покрытия тестами — это не всегда хорошо.
А так же смогут понять, что разработка и параллельное тестирование собственного кода — это сбалансированный подход в плане качества кода, стоимости разработки.
Мы сможем посмотреть на реальном примере, что писать тесты с хорошей архитектурой не так сложно и долго.

Тимур Кадыров, Сбер, Лаборатория Нейронаук , Москва
Ускоряем расчет признаков на коротком датасете для HFT на бирже
Для работы HFT необходимы очень маленькие задержки. Поэтому при внедрении ML модели нужно учитывать ограничения на время расчёта признаков. Есть много докладов и статей на тему ускорения расчётов на pandas. Сюда можно отнести и pandarallel, и dask, и polars. Ребята из Intel даже рассказывали на прошлом PyCon-е про modin. Все эти инструменты работают при больших объемах данных. Но что делать если количество строк меньше 1000 или даже 100? В данном докладе хочу осветить несколько тем:
- Почему так важна низкая задержка при hft
- Какие возможны оптимизации для снижения количества расчетов
- Numpy Structured arrays как замена Pandas DataFrame
- Вспоминаем математику и ещё немного сокращаем количество операций.
Данил Ахтаров, Тинькофф, Санкт-Петербург
Почему питон не будет функциональным и почему нафиг никому это не нужно
На питоне можно писать так и эдак, но когда ты в команде, кто-то "старший" решает, как лучше это делать. Вы могли слышать, что "Этот код не питонячий", "Так на питоне не пишут". Стоит разобраться почему.
Я совсем недавно открыл для себя функциональное программирование и мне понравился этот стиль. В основном композиция функций на языке Хаскель. Так как мой основной стек это Python. Я предполагал, что такое можно сделать и на нем.
Но почему все используют императивный подход в разработке и внедрить в свой рабочий проект новые идеи очень сложно.
Если все таки захотим использовать функциональный стиль, с какими проблемами можем столкнуться? Если честно, в питоне мало фичей для ФП, но можно использовать диалекты, с помощью которых ваш код будет декларативным и более читаемым для людей. Но есть свои недостатки, которые нельзя игнорировать. В своем докладе я предлагаю познакомиться с этой темой и возможно вы отметите для себя что-то интересное.
Павел Мальцев, Speechki, Москва
Redis, сова и глобус
Все мы привыкли, что Redis простой инструмент, который прекрасно подходит для кеширования в формате Key-Value. Однако в нём есть более весёлые структуры данных, которые могут сделать нашу жизнь веселее и приятнее.

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

Борис Цейтлин, Яндекс.Толока, Москва
Нестандартные применения crowd labelling в ML
Крауд разметку чаще всего используют, когда примеры есть, нужно обучить на них ML модель, а разметки нет.
Однако крауд, в частности с помощью Толоки, можно использовать для множества практических задач помимо непосредственно обучения модели.
В этом докладе я расскажу про такие примеры:
Human-in-the-loop мониторинг ML моделей с помощью крауда. Подводные камни и наш собственный опыт с внедрением такой системы. Стартер пак для реализации своего пайплайна мониторинга. Крауд разметка для калибровки моделей.
Кластеризация данных с помощью крауда. Используем крауд для очистки датасетов от шума.
* Active learning: размечаем только то, что нужно для обучения модели.

Доклад будет полезен специалистам, работающим с ML моделями, как аналитикам данных, так и инженерам.

Денис Толкачев, Сбер, Лаборатория Нейронаук, Москва
Производственный брак. Ищем некрасивую рыбу на конвейере
Как разработать систему распознавания рыб на конвейерной ленте имея на руках только видеозаписи рыб с ленты, raspberry pi и python. При этом хотим близкое к real-time быстродействие системы на rpi и не сойти с ума.
Требования к модели: уметь отличать рыбу от остальных предметов, определять вид рыбы, положение рыбы на ленте (головой в сторону движения или хвостом, хребтом вправо или влево), брак.
В данном докладе хотелось бы рассказать слушателям про путь в данной задаче:
- Поиск похожих решений: их достоинства и недостатки,
- Как формировали собственное решение: Детекция-> Сегментация->Выбор моделей,
- Разметка,
- Обучение,
- Первые попытки и интеграции,
- Попытки обучить «легкие» модели и переразметка имеющихся данных.
Артём Иннокентьев, Evrone, Якутск
Pattern matching: польза или хайп?
Осенью в Python завезут pattern matching. Так же как десять лет назад с аннотациями, разработчики языка пока не очень понимают для чего и как новая фича будет использоваться. И будет ли использоваться вообще.

Мы перерыли черновики, обсуждения, посмотрели на другие языки — и поделимся своими прогнозами. В докладе: лучшие применения для pattern matching, концепция «как рассказать кодом историю» и деревья. Много разных деревьев.
Анна Богданова, Ostrovok.ru, Москва
Rефакторинг: Regулярный и ASTообразный
Расскажу, как можно автоматизировать рефакторинг большой кодовой базы на примере перехода с синтаксиса одной библиотеки на синтаксис другой.

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

Буду сравнивать оба подхода: что быстрее в реализации, что быстрее работает, какие нюансы стоит учитывать при выборе одного или второго подхода
Алексей Кузьмин, ДомКлик, Москва
Обработка ошибок в Python
В нашем IT-мире есть только один достоверный источник информации — исходный код. Документация может быть не актуальной, книжка может устареть, статья может осветить только один аспект. А исходный код — честен, доступен и открывает тайны всем, кто достаточно смел, чтобы заглянуть в него.

На мой взгляд нет ничего интереснее, чем поковыряться в нем и понять как работает та или иная технология, тот или иной инструмент на самом деле. Я приглашаю Вас в увлекательное приключение по обработке ошибок в Python cо стороны исходного кода — мы заглянем внутрь, увидим как работают основные механизмы обработки ошибок, рассмотрим частные виды исключений и их особенности и еще много чего интересного. Будет увлекательно, весело и даже по домашнему уютно! Приходите =)
Антон Палий, Тинькофф, Екатеринбург
Python и метрики. Мониторинг наше все
Пшшш, Хьюстон, у нас много данных. Пшшшш, нам нужно их отправить вам. Но данные постоянно меняются, вы сможете их обрабатывать в режиме реального времени?


У нас есть замечательные инструменты для технического и бизнесового мониторинга. Они позволяют нам придерживаться единого подхода при работе с постоянно меняющимися данными. Грех — эти инструменты не использовать и не рассказать о них.

В этом докладе я расскажу:
— как из python работать с метриками и как это делаем мы,
— какие они бывают, — как следить за технической и бизнесовой частью приложения,
— какие нестандартные части приложения можно мониторить благодаря инструменту Prometheus, чем это отличается от обычных логов и какие преимущества дает.

Вячеслав Буторов, Finvinci Volsor s.r.o., Прага (Чехия)
Как создать ваш собственный плагин для Sentry, при полном отсутствии документации

Мы много лет используем Sentry (28k звёзд, 3.2k форков на гитхабе) для мониторинга исключений на проектах, а так же мессенджер Telegram для общения. Когда я захотел получать уведомления об инцидентах из Sentry в Telegram, я не нашёл такой возможности, но что самое интересное — ни слова в официальной документации как добавить такой плагин.

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

Я вижу, что отдельные разработчики регулярно создают свои плагины для Sentry, но каждый из них вынужден проходить этот путь с нуля и самостоятельно, как это делал я.

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

Вместе со участниками мы пройдём по таким пунктам как:

  • общее устройство плагина для Sentry: от простого к более сложному
  • его место в общей архитектуре Sentry и как он запускается
  • проблема с использованием популярных плагинов в cloud версии Sentry
  • правильный способ установки плагинов в Sentry (грабли, по которым прошёл я, и провёл за собой N пользователей первых версий своего плагина)
  • добавление своих интерфейсов настроек в интерфейс Sentry
  • работа с сетью из вашего плагина: отправка запросов и получение их от внешних систем
  • работа с базой данных и миграциями
  • недокументированные, но вычленённые из исходников, best practice которые следует использовать при создании плагинов, чтобы не поотстреливать ноги себе и своему админу, который поддерживает Sentry
Максим Данилов, wPsoft, Landeck (Австрия)
Скрытая супер-сила Django Admin Panel в масштабируемом Backend приложении: долгий путь от отрицания к принятию
В своем докладе я расскажу о том, что на самом деле может django.contrib.admin, как и зачем преодолевать внутреннее сопротивление при работе с ним.

Django Admin Panel — сложный и мало документированный инструмент в Django Framework, который способен значительно повысить скорость разработки, если в нём по-настоящему разобраться.

— «A Не проще ли нам написать свой Backend?»
Я отвечу: «Нет, не проще!».
Семь лет инсайтов и открытий в моем докладе.
Сергей Матвиенко, Олег Ивашов, Assaia, Санкт-Петербург
Шина сообщений NSQ в Python — что это, зачем и как
Часто при выборе шины сообщений для Python проекта выбор сводится к Kafka или RabbitMQ. Однако, есть ещё одна менее известная в Python-сообществе альтернатива — NSQ.

Сергей расскажет как прийти к выбору NSQ для вашего проекта, про положительные и отрицательные стороны использования NSQ в продакшене.

Олег покажет библиотеку ansq, приемы её удобного использования и расскажет про подводные камни, с которыми пришлось столкнуться.

Доклад основан на опыте использования NSQ в большом реальном продукте на протяжении последних 1.5 лет.
Александр Шибаев, Тинькофф, Екатеринбург
Внедрение зависимостей, контейнеры и прочие проявления SOLID в питоне. Как жить на большом проекте
Код не существует без зависимостей. Разные его компоненты явно или неявно взаимодействуют между собой. У неявных зависимостей есть ряд проблем, о которых я расскажу на примере популярных библиотек питона. (flask, django, …)
Такой код сложно тестировать, конфигурировать, да и просто тяжелее читать.

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

В примерах будут фигурировать FastAPI и Pydantic. Если следовать DI повсеместно, то на большом проекте со временем на конфигурирование самого приложения начнет
тратиться куча усилий. Поговорим, как мы решали эту проблему при помощи punq,
как нам пришлось его модифицировать, и какие дополнительные плюшки мы от этого получили.
Андрей Ермилов, Максим Белоусов, Avito.tech + Rambler, Москва
Практические советы по использованию опциональной статической типизации
На тему использования опциональной статический типизации в Python написано много статей.

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

Также мы коснемся сложностей, которые возникают при использовании типизации и продемонстрируем способы их решения.
Тимур Кадыров, Артем Королев, Сбер (Лаборатория нейронаук и поведения человека)
Катим хоббийный проект в прод на AWS
Артем и Тимур расскажут, как важно посещать пайконы, ведь посещение мероприятия вдохновило парней на целый хоббийный проект. Получив фотки с прошлого пайкона, ребята сразу задумались, как не отсматривая весь архив, найти фотки только с собой. Дальше осталось реализовать эту идею на питоне.

Расскажем:
 — блокнотик в Jupyter, а не сервис, и куда с ним пойти дальше
 — выбор облака
 — виртуалки для слабаков и тех, у кого есть деньги
 — зачем писать фронт, если можно прототипировать в телеграме
 — костыли и грабли, на которые стоит наступить, когда ты ds и никогда не катил в прод на облаке
 — а какая у нас в итоге архитектура?
 — модель не влезает в serverless функцию или борьба не на жизнь, а на смерть
 — готовый проект и мечты о том, как его сделать еще лучше
Иван Санин, Авито, Новосибирск
Разгоняем ML в проде
В нашей команде более 30 однотипных ml микросервисов, и их число постоянно растет. Перед бэкенд инженерами стоят задачи обеспечения максимального rps, оптимизации использования железа и централизованного распространения лучших практик и фич между сервисами.

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

C технической точки зрения Акведук представляет собой легковесную python библиотеку, активно использующую возможности пакетов `multiprocessing` и `asyncio`.

В своем докладе я подробно расскажу, как мы пришли к идее и усовершенствовали наш фреймворк, сравню с другими известными решениями и дам практические рекомендации по использованию Акведука.
Андрей Алексеев, Тинькофф, Москва
ETNA Time Series Library: удобное прогнозирование временных рядов
Временные ряды — это любые данные, у которых есть временная метка. Некоторые ряды нужно прогнозировать — например, сколько глазированных сырков купят на этой неделе, сколько посетителей будет в магазине, сколько наличных останется в банкомате. Для их прогноза нужны разные модели и признаки, но подход к исследованию проблемы будет одинаковый.
Сначала мы пробовали решать каждую отдельную задачу усилиями разных ML-специалистов: это было долго, каждый пилил свой собственный «велосипед», не было обмена опытом и не спасало от ошибок. Поэтому мы решили сделать ML-эксперименты с временными рядами простыми и быстрыми — и придумали библиотеку ETNA.

Главные ценности ETNA:

— Гибкость

— Простота

— Расширяемость

Расскажем:

— Что такое временной ряд

— Как его прогнозировать

— О болях, которые хотим решить

— Как придумали библиотеку и внедрили библиотеку

— Как добавляли и выпиливали фичи и рефакторы

— Что библиотека представляет из себя сейчас

— Что мы узнали пока ее делали
Антон Киселев, Provectus, Казань
Best Practices for Kubeflow Pipelines
В своем докладе я расскажу про Kubeflow — MLOps-инструмент для Kubernetes, с упором на Kubeflow Pipelines. Обсудим процесс разработки пайплайнов и компонент, использование библиотеки готовых компонент, а также лучшие практики для эффективного использования ресурсов Kubernetes для обучения моделей. Разберем кейс по обучению модели классификации картинок.
Богдан Володарский, Provectus, Казань
Data/ML QA on Python
Сегмент данных взрослеет и за этим следует потребность в их валидации.
Расскажу как построить процесс тестирования на данных на проекте на основе фреймворка great expecations. Как интегрироваться в дата пайплайн в AWS. Расскажу, как мы решили проблему репортинга и дашбординга + как на результатах Data QA устроить ML QA
Ярослав Игошев, Intel, Москва
Distributed Data Processing and XGBoost Training and Prediction
Расскажу о том, как можно ускорить пайплайн, который включает в себя обработку данных, обучение XGBoost модели и предсказание, даваемой этой моделью, за счет распределения вычислений на множество процессов.

При этом вам не придется изучать новые библиотеки и их API. Фокус будет сосредоточен вокруг небольшого ряда библиотек хорошо известных людям, которые знакомы с Data Science и Machine Learning.
В частности, речь пойдет о таких библиотеках как pandas, Modin и XGBoost.
Покажу, как Modin позволяет ускорить pandas запросы, всего лишь, изменив одну строку кода вашего сценария, а также расскажу о его распределенной реализации обучения и прогнозирования XGBoost модели.
Ярослав Таркан, Алексaндр Демидовский, Intel, Нижний Новгород
OpenVINO DL Workbench: Знакомимся с Deep Learning и пишем своё первое AI приложение
Рассмотрим популярный фреймворк для инференса нейронных сетей OpenVINO и его графическую оболочку OpenVINO Deep Learning Workbench.

Разберемся, как начать работать с предварительно обученными нейронными сетями, чтобы написать своё первое приложение с элементами AI.

Узнаем, что такое инференс, оптимизация, модель, датасет, акселератор.

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

Также мы рассмотрим классические кейсы NLP (Natural Language Proccesing) по решению таких задач классификации как:


  • сентимент-анализ и поиск именованных сущностей;
  • семантический поиск на основе работы с языковой моделью SBERT.
Приглашаю вас попробовать свои силы в решении этих задач с помощью инструментов глубокого обучения Tensorflow и PyTorch.
Илья Иванников, Тинькофф, Москва
Flask-Admin, SQLAlchemy и FastAPI или как приготовить простой и удобный интрумент для работы с любыми унифицированными документами.
Многим компаниям нужно хранить документы или данные — и при этом доставать или редактировать их без риска поломать базу данных.
В своем мастер-классе я покажу, как с помощью Flask-Admin, SQLAlchemy и FastApi собрать инструмент, который позволит на лету создавать и менять документы.

Для участия в мастер-классе надо иметь python 3.7 и желательно делать все на linix/macos. (На винде тоже можно, но Илья, если будут проблемы, помочь не сможет).
Также скачайте заранее этот репозиторий на гитхабе, чтобы не тратить время на мастер-классе.
PyCon Weekend состоится 25-26 марта 2022 года
Присоединяйтесь к другим участникам,
знакомьтесь уже сейчас