Python применяется для совсем разных задач, от ML до бэкенда. О каких темах тогда говорить на конференции по Python? Обо всех главных сразу. На приближающемся PiterPy 2023 среди докладов будут и «В Python есть готовый фронтенд для вашего компилятора», и «Django + Keycloak: доверьте аутентификацию профессионалам», и «Мастер-класс по взлому».
Более того: будут даже доклады со словом «Rust» в названии, при чём оно тут? А ещё есть тема «ChatGPT как раб разработчика», что под ней скрывается? А закрывать онлайн-часть и вовсе будет биоинформатик Михаил Гельфанд, что он расскажет? И, наконец, будет даже выступление о настоящих питонах!
В этом хабрапосте мы собрали описания всех докладов, так что можете узнать, чего именно ожидать от конференции.
Содержание
ML&DS
Создаем свою копию с помощью fine-tuned LLM
Сергей Саввов
Сергей пошагово расскажет, как можно дообучить LLM под свои задачи, раскрыв весь ее потенциал. Обсудим подготовку данных, создание инструкций, непосредственно само обучение модели и ее вывод в продакшен.
Затронем такие темы, как выбор self hosted-модели или API от OpenAI и лучшие фреймворки для деплоя.
ClearML для обучения нейронных сетей: почему он и как мы с ним подружились
Владимир Бурмистров
Evocargo
Что делать, если перед вами стоит задача обучения нейросетей, но у вас небольшая команда и вы не хотите тратить много ресурсов на поддержку? С этой задачей можно красиво справиться с помощью ClearML.
Из доклада вы узнаете:
как лучше организовать окружение нейронных сетей;
какие обертки стоит сделать для более удобного использования;
как организовать логирование и менеджмент ресурсов.
Разработка проектов с языковыми моделями
Дмитрий Легчиков
FeedbackAI
Дмитрий расскажет:
что такое языковые модели и на что они способны;
о каких сложностях необходимо помнить, работая с ними;
о библиотеках, которые могут помочь.
ChatGPT как персональный раб разработчика
Дмитрий Сошников
МАИ / НИУ ВШЭ
За прошлый год генеративные нейросети плотно вошли в нашу жизнь. Наверняка многие разработчики уже используют в работе нейросетевых ассистентов (GitHub Copilot и другие). Однако не все знают, что можно эффективно использовать мощь больших языковых моделей (LLM) для выполнения весьма нетривиальных рутинных операций, с которыми сталкиваются разработчики.
Данный доклад — краткое изложение курса ChatGPT Prompt Engineering for Developers от DeepLearning.AI с увлекательными примерами и демонстрациями. В ходе доклада мы не только увидим примеры задач, решаемых LLM, но и реализуем диалог виртуальных ассистентов — театр роботов.
Process Mining и большие данные: о чем не говорят создатели сервисов и библиотек
Александр Толмачев
Ozon
Александр с командой проанализировали работу популярных библиотек и сервисов и подготовили инженерные подходы по оптимизации работы с графами. Спикер расскажет про плюсы и минусы таких библиотек, как pm4py, retentioneering, SberGraph и других. Рассмотрим пайплайн для оптимизации работы этих сервисов, а также выявим наиболее эффективные способы использования библиотек и ускорения работы с помощью готовых решений.
Model serving. Какой фреймворк выбрать?
Егор Шестопалов
Тинькофф
Машинное обучение все больше проникает в энтерпрайз. Вместе с этим взрослеют и фреймворки. В докладе рассмотрим, что есть для сервинга моделей. Сравним фреймворки друг с другом, реализовав на каждом одну и ту же задачу, и попытаемся понять, какой стоит выбрать.
Автоматическая разметка баз данных с помощью ML-инструментов и ее проблемы
Александр Клюев
Сбербанк
Даниил Миронов
Сбербанк
Спикеры расскажут про автоматическую разметку баз данных в SafeData и ее подводные камни, какие подходы и инструменты работают, как держать баланс между регулярками и ML.
Роман Песков
Циан
Из доклада узнаем, как в Циан перешли от разрозненных ручных процессов работы с моделями к текущей ML-платформе. Обсудим, почему Циан использует свой ML Model Server для онлайн-инференса и как workflow работы с моделями через Jira упростил и ускорил работу с моделями.
Джун против панды: антипаттерны библиотеки pandas
Елизавета Пушкарева
Точка
В докладе Елизавета расскажет про странные и не очень кейсы использования библиотеки pandas и их не всегда очевидные замены, позволяющие ускорить код (суммарно — аж в 60 раз!) и сделать его более стабильным по времени выполнения и качеству данных на выходе.
Тестирование
Композиционное тестирование на Python
Максим Кукликов
Автоматизация тестирования для многих компаний – траты на разработку, поддержку, обучение сотрудников, усложнение рабочего процесса и долгие годы разработки. Звучит как срок, но с композиционным тестированием он будет условным.
В докладе Максим затронет основные аспекты:
Для каких продуктов и функциональностей лучше отказаться от классического подхода.
Как описывать тесты в Combidata.
Комбинаторные многомерные графы и с чем их едят.
Как выглядят шаги и рабочий процесс для библиотеки.
Простая генерация тестовых данных.
Превращаем тест в мок и обратно.
Векторы развития комбинаторного тестирования и библиотеки.
Илья Смольников
Kaspersky
Илья расскажет о том, что такое monkey patching и как они его применяют для отслеживания исключений в дочерних потоках и процессах при тестировании продуктов на базе KasperskyOS.
Андрей Шарапов
Контур
Сложно ли поддерживать 5 версий Python? Нет, если все покрыто тестами. Сложно ли поддерживать тесты? Вооружившись только pyproject и tox, Андрей с командой прошли сквозь дебри bash-скриптов и расчистили путь к лаконичному CI/CD, попутно решив вопрос Dev/Prod Parity. Эта история не про полеты в космос. Она про позитивный опыт и синергию простых инструментов.
Как быстро и безболезненно закрыть регресс в API из связки PyTest + JSON Schema
Владимир Васяев
Максилект
Протестировать позитивные сценарии использования API можно легко и быстро, используя JSON Schema.
В докладе поговорим:
о полезных приемах;
об источниках данных для такого тестирования;
о хитростях, повышающих удобство работы с JSON Schema.
Да, у нас есть тесты. А толку?
Николай Хитров
Точка
В докладе поговорим о том:
Как жить, когда количество тестов переваливает за пару тысяч.
Как замечать «дурные запахи» в тестах и почему это важно.
Какие плагины pytest помогут в упрощении написания тестов и их поддержке.
Какие метрики можно собирать с тестов и зачем это может пригодиться.
Backend
Лень, логика и работорговля в реалиях парсинга магазинов
Олег Ануфриев
2GIS
Олег расскажет, как распарсить миллион разных сайтов без армии разметчиков и мудрого ИИ. Как не утонуть в бездне уныния, на что опереться, когда сложность алгоритма действительно критична, и как в команде спикера побороли рекурсию.
Django + Keycloak: доверьте аутентификацию профессионалам
Мстислав Казаков
Usetech
Спикер расскажет о том, как они пришли к Keycloak, и покажет, что могут Keycloak и другие Identity and Access Management-решения и почему они должны использоваться вне зависимости от того, на каком языке вы разрабатываете ПО и какой веб-фреймворк вы используете.
6 причин подумать, прежде чем использовать WebSocket
Михаил Житков
QIWI
Кто-то из вас использовал вебсокеты, а кто-то нет. Кто-то уже имел дело и знает некоторые вещи, о которых спикер будет рассказывать, а кто-то только хочет попробовать. Доклад будет иметь наибольшую ценность для вторых — они узнают, с чем им предстоит столкнуться. Михаил нарисует карту граблей, чтобы будущие разработчики могли их обойти.
Практическая телеметрия на примере OpenTelemetry
Руслан Бергутов
Авито Тех
Доклад позволит понять, в каких случаях нужно использовать OpenTelemetry, каким образом она интегрируется на уровне инфраструктуры и кода, зачем это нужно и как этот инструмент поможет в развитии вашей информационной системы – в основном в контексте микросервисов, но также подойдет и для монолитных решений.
Основная целевая аудитория – прикладные разработчики, SRE и DevOps-специалисты.
Как готовить Domain Driven Design
Дмитрий Анисов
GS Labs
Дмитрий расскажет о необходимости DDD, его плюсах и минусах и самое главное — как проектировать внутреннюю архитектуру сервиса так, чтобы удобно и понятно с ним работать в будущем. Рассмотрим основные детали подхода на примере одного из сервисов.
Бессерверный подход к архитектуре и разработке ПО
Артур Чеканов
ITentika
Артур расскажет о serverless-подходе к разработке: что представляет собой, какие имеет плюсы и минусы. Поделится, с какими подводными камнями столкнулись в процессе реализации, какие фреймворки использовали и какой фреймворк написали сами.
Обсудим, можно ли применять этот подход в российских облаках.
Производительность
Ottorgon: современные способы написания биндингов
Александр Боргардт
DuckStax
Александр углубится в изучение механизма привязки (binding) для языка Python и проведет сравнительный анализ производительности трех популярных инструментов: pybind11, nanobind и raw CPython API.
Денис Аникин
Райффайзен Банк
Сейчас существует больше 20 способов ускорить CPU-bound код в Python, и их количество растет чуть ли не каждый день. Python принято ускорять всеми способами. Сегодня наступает момент, когда пора поговорить еще и о скорости веб-фреймворков. При этом слово «скорость» в мире веб-разработки — это многозначный термин.
А еще в Python-среде все больше не только прикладных веб-фреймворков, но и софта вокруг. Например, ASGI-серверов уже больше пяти. Поэтому количество возможных методов и наборов софта для сравнения растет очень быстро.
В таких сложных условиях спикер попытается найти самые быстрые решения на Python, сравнить их между собой и ответить на вопрос: «Что, если я хочу делать быстро отвечающие веб-ручки?». Его бенчмарки, безусловно, будут субъективными. Однако все фреймворки, которые он покажет, вместе еще не сравнивали. А некоторые из них, скорее всего, вы даже не видели.
Алексей Лавренюк
Яндекс
Генерация картинки 200 на 400 пикселей рейтрейсером, написанным на Rust, занимает на ноутбуке Алексея 13,37 секунд. Сможет ли он приблизиться к этому результату на Python? Алексей расскажет об этом в докладе.
Инструменты
Hatch: пакетный менеджер для Python, который вы еще не пробовали
Александр Шишенко
ПГК Диджитал
Когда вы начинаете новый проект, то наверняка используете poetry или pipenv, или pip-tools. Не так давно появилась альтернатива: Hatch. О нем спикер и расскажет во время доклада.
Hatch строго подчиняется новым PEP'ам, легко интегрируется со всей экосистемой и развивается под эгидой PyPA, как и всеми любимый pip.
Python — побег из террариума: проблемы прикладного тулинга в реальном мире и их решения
Арсений Сапелкин
Лаборатория Касперского
На скриптовых языках удобно разрабатывать… И на этом удобство заканчивается. Вне машины разработчика начинаются проблемы. Особенно если вы пишете какой-то прикладной тулинг: CLI-утилиты, вспомогательные приложения в вашем SDK и прочее. Вы даже не можете рассчитывать на то, что у пользователя будет pip, чтобы он смог поставить все ваши зависимости, вам все нужно огранизовать самостоятельно. Спикер расскажет об этих проблемах и о том, как бороться с ними.
Rust
Данил Ахтаров
Тинькофф
Данил расскажет о PyO3 – сейчас это самый популярный инструмент для написания кода для Python на Rust. Но, как обычно бывает, не все так просто. Не всегда код, написанный на компилируемом языке, работает быстрее, чем на обычном Python – и Rust не исключение. Данил приведет примеры и объяснит, почему так происходит.
По горячим путям: использование библиотек на Rust в Python
Сергей Яхницкий
Яндекс Такси Технологии
У Python в бэкенд-разработке есть слабые и сильные стороны. Среди слабостей часто отмечают низкий перформанс в целом или RPS на ядро. Но необязательно переписывать свой микросервис целиком на другой язык, чтобы поднять производительность. Когда уже не хватает алгоритмических оптимизаций, можно поисследовать горячие пути и точечно переписать функции на компилируемом языке. Из вариантов есть C, C++, Cython, Numba и т. д., но в этом докладе сфокусируемся на популярном сегодня Rust.
Статический анализ
Вывести типы из Python: проблемы анализа Python-кода
Екатерина Точилина
Huawei
Вячеслав Тамарин
Huawei
Если вы хотите послушать про внутренности Python и про нюансы работы с ним с точки зрения создания инструмента, спикеры проведут вас по пути, который прошли сами. Это будет интересное и познавательное путешествие.
В Python есть готовый фронтенд для вашего компилятора
Пётр Советов
РТУ МИРЭА
Компиляторы пишут и обычные люди, особенно, если речь о компиляторе небольшого предметно-ориентированного языка (DSL). Что делать, если перегрузки операций уже не хватает, а средства в духе PLY кажутся тяжеловесными? Использовать синтаксис самого Python, тогда лексический и синтаксический анализ мы получим почти бесплатно!
Доклад посвящен быстрому созданию компиляторов силами модуля ast, аннотации типов и конструкции match/case. Спикер приведет примеры — от простейших статических анализаторов в духе игрушечного mypy до DSL-компиляторов различной сложности.
Vanilla Python
Роман Соляник
Тинькофф
Роман расскажет, как преодолеть игнорирование и Any-типы, добиться максимально полной аннотации типов, а также о том, как бороться с распространенными ошибками.
Целевая аудитория – Python-разработчики с базовым знанием type hinting и технические лидеры, заинтересованные в повышении качества кода и процессов разработки.
Кибербезопасность
Векторы атак: взгляд разработчика
Сергей Озеранский
QIWI
Как финтех-компания, QIWI очень серьезно относится к безопасности своих приложений. Этого требуют бизнес и стандарты безопасности – такие, как PCI DSS. Цель доклада — продемонстрировать некоторые векторы атак на API, которые связаны с недостаточной проработкой архитектуры приложения или нарушениями в написании кода, что делает приложение уязвимым.
Сергей расскажет о векторах атак, а также о возможных способах защиты от них и превентивных мерах.
Алексей Морозов
Тинькофф
В том году Алексей рассказывал про интересные уязвимости в Python. А в этом году подготовим небольшую CTF-площадку на стеке Python и посмотрим на практике, как находить и взламывать через эти уязвимости.
Другое
Как выжать максимум из Code Review. Бусидо программиста
Дмитрий Бурмистров
Тинькофф
Code Review по праву можно назвать «тонким искусством» — до сих пор многие команды страдают в попытках «приручить» этот инструмент.
В докладе рассмотрим особенности групповой разработки, обсудим ключевые трудности нашего взаимодействия и посмотрим, при чем здесь вообще Code Review.
Типичные задачи биоинформатики
Михаил Гельфанд
Сколтех
С развитием экспериментальных методов молекулярная биология стала наукой, богатой данными. Большинство этих методов основаны на определении последовательностей нуклеотидов в фрагментах ДНК, а содержательная сторона определяется тем, как выделяются эти фрагменты. В результате можно изучать различия в геномах (в том числе геномах отдельных клеток); то, как работают гены; какие белки связываются с ДНК и где; как ДНК упакована в ядре и многое другое.
Для анализа этих данных биоинформатики пишут много скриптов, в том числе на Python. Спикер не будет рассказывать про скрипты, но расскажет про типичные задачи и про то, как их решают – с биологической точки зрения. Необходимые для понимания биологические сведения будут сообщены тут же.
Дмитрий Соболев
Упоротый Палеонтолог
Как потерять ноги и при этом пережить динозавров, практически всех своих ближайших родственников, и затем стать одним из самых успешных хищников планеты? Задача, казалось бы, странная и непосильная.
Много кто за историю планеты отказывался от своих лапок – под разными предлогами и по разным причинам. Но именно змеи в этом аспекте достигли максимального успеха (умолчим про их способность проглотить объект в несколько раз толще себя).
Зачем такие выкрутасы с анатомией? С чего всё началось? Правда ли, что ближайший родственник питона конца мезозоя оказался самым большим хищным морским животным за всю историю Земли? Обсудим эти неочевидные темы вместе со спикером.
Николай Марков
Astera
Python часто считается одним из основных языков, знание которого могут потребовать от инженера по инфраструктуре. Но также довольно часто под этим скрывается «знание Ansible» или «уметь деплоить с помощью Fabric». Так на что годится Python в мире работы с инфраструктурой? Разберемся во время доклада.
Python и другие языки в бэкенд-разработке
Сергей Яхницкий
Яндекс Такси Технологии
Александр Нозик
МФТИ
Вместе с Программным комитетом обсуждаем Python и другие языки в бэкенд-разработке.
Эволюция Python: прогресс или тупик
Эволюция Python: прогресс или тупик? Обсуждаем вместе с Программным комитетом.
Будем разбирать задачи вместе с Программным комитетом PiterPy. Следите за обновлениями.
Создаем умных предметно-ориентированных вопросно-ответных ботов в Yandex DataSphere/YaGPT
Дмитрий Сошников
МАИ / НИУ ВШЭ
В ходе мастер-класса Дмитрий покажет, как создать предметно-ориентированного чат-бота в Yandex Cloud с помощью YaGPT, DataSphere и OpenSearch, и предоставит возможность самостоятельно поэкспериментировать с этими сервисами и сделать своего бота – возможно, в качестве «домашнего задания».
Операция «запрос – ответ». Наш подход к генерации клиентов для межсервисного взаимодействия
Сергей Солдатов
Magnit Tech
Микросервисы? Дайте 2! А если 22?
Сергей расскажет о подходе команд Магнита к автогенерации клиентов для взаимодействия сервисов по http/grpc/kafka: что было в начале, почему нужны были перемены и как пришли к динамической генерации пайплайнов.
Заключение
В прошлом году у PiterPy был один офлайн-день, но вот в этот раз целых два. Многим на конференциях важно общение — и вот тут можно будет пообщаться как следует.
А это значит, что описанные доклады — это только полдела. Но вторую половину не перечислить вот так в хабрапосте, можно только прийти на конференцию и пережить лично.
Так что закончим ссылкой на сайт PiterPy, где есть и вся остальная информация о конференции, и билеты.
Nireko
Переходы в начале как будто не работают