Устарели ли NumPy и PyTorch? Как перевести проект с Python 2 на Python 3 так, чтобы пользователи не заметили? Как дать языковой модели доступ к данным, которых не было в обучающем датасете?

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

Тематические блоки

  • ML

  • Бэкенд

  • Тестирование

  • Инструменты и фреймворки

  • Internals

  • Данные

  • Основы

  • Кибербезопасность

  • Vanilla Python

  • Замена Питону


ML

Расширяем границы знаний LLM

Александр Константинов

Raft

Кузьма Лешаков

Yandex Cloud

Диалоги с языковыми моделями всем уже привычны. Но многие жалуются «нейросеть не знает того, чего не было в её датасете». Как изменить ситуацию?

Александр и Кузьма расскажут о необходимой базе при создании RAG-приложений с использованием больших языковых моделей. Они кратко рассмотрят рынок LLM, затем — конкретные пользовательские сценарии с использованием, в том числе, Yandex GPT. Разберут доступные в облаке способы расширения знаний — через Datasphere и через построение RAG (Retrieval-Augmented Generation).


Воркшоп: Большие языковые модели в облаке Yandex Cloud

Дмитрий Сошников

МАИ / НИУ ВШЭ

Помимо теоретического доклада про LLM, на конференции будет и этот воркшоп, где спикер продемонстрирует работу с ними на практике.

Дмитрий расскажет про использование больших языковых моделей в облаке для решения различных задач — от извлечения структурированных данных из больших массивов текстовых данных до построения вопросно-ответных систем и автоматических ответов на отзывы. Поделится техническими деталями работы YandexGPT и хостинга открытых языковых моделей (LLaMA 3 / Saiga) в облаке. Расскажет про проекты с использованием LLM внутри Яндекса, покажет несколько увлекательных демонстраций.


Интеграция чат-бота в существующую архитектуру

Артур Чеканов

ITentika

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

Артур расскажет об эволюции чат-ботов, поделится опытом их интеграции и подходами к разработке.


Вашей компании LLM не нужен? Построение инфраструктуры с нуля

Мичил Егоров

X5 Tech

Подробно рассмотрим построение инфраструктуры для использования больших языковых моделей (LLM) с нуля, опираясь на опыт Х5 Tech.

Мичил начнет с объяснения, что такое LLM и почему они становятся все более важными для современных технологий. Обсудим ключевые компоненты, необходимые для создания масштабируемой и надежной инфраструктуры. Сравним три популярных бэкенда для инференса LLM: llama-cpp, TGI и vLLM, выделяя их преимущества и недостатки. Особое внимание уделим подводным камням llama-cpp и рассмотрим, действительно ли vLLM — идеальное решение. Затронем тему информационного поиска и его связь с LLM — Мичил объяснит, как эти модели могут улучшить процессы поиска по базам знаний.

В заключение обсудим, как заставить LLM писать качественный текст, на основе опыта внедрения чат-бота для сотрудников Пятерочки.


NumPy и PyTorch устарели?

Валерия Петренко

Ozon

Как давно вы пользуетесь NumPy? А PyTorch? А что, если найдется библиотека, которая делает все то же самое, но быстрее?

Во время доклада мы рассмотрим JAX — библиотеку от Google. Посмотрим на такую штуку, как JIT — just in time compilation: что он собой представляет и как изменяет ваш код. Проанализируем бенчмарки JAX, NumPy и PyTorch по CPU и MEM. Рассмотрим различия в API этих инструментов.

И, наконец, узнаем: JAX — «убийца» NumPy или просто хайп?


Бэкенд

Драматическое приручение кролика

Святослав Посохин

Точка

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

Все это обычно решается с помощью фоновых задач, и есть множество инструментов для этого. Так, для работы в фоне мы взяли Dramatiq. И спустя 3 года получили свою первую ошибку от RabbitMQ — «100 connection limit reached».

В докладе разберем, зачем нам столько соединений. Почему это плохо и как в Точке держат нагрузку в 10 раз больше, имея в 10 раз меньше соединений. Не обошлось и без контрибьюта в open source.


Еще один фреймворк: как мы стали пилить интеграции за спринт вместо квартала

Дмитрий Иванюшин

ContactPay

Один из аспектов ContactPay— это интеграция с внешними партнерами — платежными шлюзами. Чтобы поддерживать стабильную доставку, требуется унифицировать процессы. Для своих нужд в компании разработали фреймворк, которым пользуются для всех интеграций, существенно сокращая time-to-market с момента подписания договоров.

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


Backend-Driven UI: как мы это сделали и что из этого вышло

Александр Киверин

Циан

Александр расскажет о реализации подхода Backend-Driven UI (BDUI) на Python в Циан. Как за год смогли с нуля реализовать 2 отдельных BDUI-языка, подружили их в одном сервисе, не испугались полиморфных и рекурсивных Swagger-схем, научили backend-разработчиков основам верстки на всех платформах, поменяли принцип мышления стейкхолдеров и запустили новую форму подачи объявления на первых пользователей.

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


Простое управление настройками Django-приложения

Денис Дудник

Sigmadevs

Евгений Кацевман

Factory5

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

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

В докладе рассмотрим классические подходы решения подобных задач, такие как файлы констант, переменные окружения, хранение значений в БД, а также сравним django-liveconfigs с имеющимися решениями для Django. Продемонстрируем пользу предложенного решения как со стороны разработчика, так и со стороны бизнеса. И, конечно, будут примеры использования — от простого к сложному.


Тестирование

Брокеры сообщений и Python в 2024-м

Никита Пастухов

AirtAI

Event-driven train уже вовсю набрал ход и тяжело представить крупную отказоустойчивую систему без Kafka, RabbitMQ или другого брокера где-нибудь под капотом. Однако инструменты для разработки подобных сервисов вызывают шок у поколения, воспитанного FastAPI.

Пройдемся по всем больным мозолям Python-клиентов к брокерам сообщений, сформируем список требований к «современному» инструментарию, познакомимся с FastStream и немного окунемся в историю его создания.


Практические шаблоны и лучшие практики для разработки Python-библиотек

Максим Ликсаков

МТС

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

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

Технологии: Python 3.x pytest setuptools, Poetry, handling requirements, optional requirements, Codecov, Sphinx, autodoc, etc. GitHub Actions, GitLab CI, Git tags.


Внутреннее устройство бинарных сборок Python

Александр Артамонов

Yandex Infrastructure

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

Особняком от классических подходов стоит бинарная сборка Python, которая решает проблемы специфичным образом, практикуется в Big Tech и интересна энтузиастам. Вот только некоторые инструменты, которые используются в создании автономных Python-программ: PyInstaller, Nuitka, PyOxidizer, py2app, PythonZipper (Bazel), cx_Freeze.

В Яндексе используется своя система сборки, которая появилась более 10 лет назад. Она умеет собирать Python в замкнутые и подлинно герметичные бинарные программы под все популярные платформы.

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


To TBD or Not to TBD?

Руслан Морозов

Kaspersky

Антон Новиков

Kaspersky

Руслан и Антон расскажут об опыте внедрения подхода trunk-based development (TBD) при разработке KasperskyOS.

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

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


Инструменты и фреймворки

Всё или ничего: как обновить Python и не попасть на костер

Сергей Яхницкий

Яндекс Такси

История про внедрение новых инструментов и борьбу с легаси на масштабе в сотни микросервисов. Фокус именно на масштаб и взаимодействия с инфрой и людьми, но специфику Python Сергей подсветит ярко.

Будет полезно сеньорам и техлидам.


Разбираемся с end-to-end type safety для наших бэков

Денис Аникин

Райффайзен Банк

При написании бэкенда и фронтенда мы постоянно сталкиваемся с мелким или крупным «рассинхроном» в полях и типах, и это нужно всегда отслеживать вручную. Даже имея средства вроде Swagger, мы постоянно натыкаемся на несовершенство интеграции back и front.

Конечно, у нас есть вариант пойти в GraphQL, но что, если вы решили остаться на REST? На это есть ответ у JS-бэкендов: end-to-end type safety. Фреймворки вроде tRPC позволяют писать «одинаковые» модели для бэкенда и фронтенда, а также иметь возможность поддержки типов и даже автокомплит на уровне IDE.

В докладе подробнее раскроют проблему, покажут ее возможные решения и даже решение автора на коленке (скрипт конвертации типов, вотчер и т. п.). Вы узнаете, как можно улучшить свои REST-based наработки, и, возможно, откроете для себя мир typesafe API.


Воркшоп: Accelerating API Development in PostgreSQL with PostgREST

Krishna Lodha

Rotten Grapes Private Limited

Инструмент PosgREST предназначен для того, чтобы быстрее и качественнее создавать REST API в PostgreSQL-окружениях, опираясь напрямую на схемы PostgreSQL.

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


Как проводить переезды, не привлекая внимания пользователей

Виктор Азаубаев

Яндекс Казахстан

Большие переезды с нарушением обратной совместимости — это всегда боль, и каждая миграция особенна по-своему. Виктор расскажет о том, как пришлось мигрировать 200 000 строк кода с Python 2 на Python 3, оставаясь в основе внутренней инфраструктуры так, чтобы пользователи этого не заметили. Также коллеги Виктора постоянно обновляют внешние библиотеки и фреймворки в условиях монорепозитория с десятками тысяч проектов. Спикер расскажет, какие подходы использовали, с какими трудностями столкнулись, как подготовиться к большим переездам и что бы он сделал иначе.


Internals

PyPy: ускоряем Python с помощью Python

Андрей Шарапов

Контур

В вопросе выжимания производительности из микросервисов на Python чаще всего можно услышать варианты переписать на asm, Go, Rust, Node.js и т. д. Что это значит для Python-команды? Наем дорогого специалиста под одну задачу или переобучение Python-разработчика с размытием фокуса компетенций на два стека. Что, если можно на порядок поднять производительность CPU-bound операций, не меняя стек и не расширяя команду?


RefCount++

Бейлак Алиев

Райффайзен Банк

В Python есть два интересных механизма для работы с памятью: RefCount и GC. А насколько они близки? Зачем гадать — проведем эксперимент! Попробуем отключить RefCount, посмотрим на GC и докажем, что это действительно независимые механизмы. Проведем замеры памяти, чтобы оценить масштабы бедствия.


Optimizing Python Startup Time by Code Data Share

Yichen Yan

Alibaba Cloud

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


Python JIT и extension на C: чего ожидать в будущем?

Александр Боргардт

DuckStax

Текущее состояние и перспективы использования JIT-компиляции (Just-in-Time) в Python и расширений на языке C. Рассмотрим, как эти технологии влияют на производительность Python-приложений, какие новые возможности и улучшения нас ожидают, а также какие вызовы предстоит преодолеть разработчикам. Особое внимание будет уделено устройству JIT и преодолению новых рубежей в проектах.


Данные

Обработка геоданных в Python

Александр Мещеряков

Синимекс

Обсудим, как получить и обработать геоданные в Python. Какие библиотеки использовать для работы с геоданными. Рассмотрим, как можно джойнить данные не только по текстовым полям, но и при помощи геометрий.

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


Apache Kafka для Python-разработчиков

Григорий Кошелев

Контур

Погружение в Apache Kafka для Python-разработчиков:

  • Внутреннее устройство и принцип работы основных компонентов Apache Kafka.

  • Особенности использования Python-клиента к Apache Kafka.

  • Разбор основных сценариев использования и best practices.


Из бэкенда в дата-инженерию: типовые ошибки и паттерны

Юлия Волкова

CodeScoring

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


Основы

D в DDD: где D — это доменная логика

Макс Столпасов

X5 Tech

Макс расскажет, как использует принципы Domain-Driven Design (DDD) в своей работе. Вы узнаете, почему так важно понимать бизнес-процессы вашего проекта и как это помогает создавать качественный и гибкий код.

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

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


Внедряя SOLID

Денис Аникин

Райффайзен Банк

Есть широко известные принципы SOLID, и люди по отношению к ним делятся на несколько крупных групп. Нам интересны две. Первая скажет: «ну там же все уж понятно и давно пройдено» и добавит: «я использую принципы интуитивно». Вторая пояснит: «это бесполезное инфоцыганство». Есть и другие люди, но в докладе мы поговорим об этих двух группах. О том, работают ли эти принципы или нет.

Доклад будет основан сугубо на практике: исходя из разработки множества крупных энтерпрайзных систем и общения на большом количестве собеседований. Денис расскажет, как можно жить с этими принципами, как их внедрять, как все в индустрии их «хорошо» используют (спойлер: не очень) и как можно некоторые из SOLID-принципов достичь автоматически. Поговорим о каждой букве подробнее, а также покопаемся в коварных вопросах про SOLID на собеседованиях.


Senior. Ретроспектива, или Что я сначала не понимал в своей карьере, а потом как понял

Дмитрий Аникин

Kaspersky

Дмитрий взглянет на свой путь от стажера до сеньора по принципу «туда и обратно».

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


Кибербезопасность

Выбираем open-source SAST для Python-проектов

Максим Кобилев

Solar

Рассмотрим популярные open source-инструменты для статического анализа безопасности (SAST) в Python-проектах: Bandit, SonarQube, Semgrep, CodeQL. Обсудим преимущества и недостатки каждого с примерами использования на подготовленном бенчмарке — заранее уязвимом Python-приложении (OWASP Top 10).


И снова про безопасность в мире Python-разработки

Алексей Смирнов

CodeScoring

Поговорим о том, куда же все катится. Что происходит в мире безопасности open source-пакетов, какие есть тренды и есть ли что-нибудь положительное в них. Что делает сообщество, чтобы защитить разработчиков от злоумышленников. Какие ошибки чаще всего допускают Python-разработчики и как их можно было бы избежать.


Vanilla Python

Tackling Thread Safety in Python

Adarsh Divakaran

Digievo Labs

Разрабатывая на Python, мы часто пренебрегаем потоковой безопасностью, что ведет к непредсказуемому поведению кода в многопоточных окружениях. Рассмотрим частые подводные камни и трудности, воздействие Global Interpreter Lock и использование примитивов синхронизации.


Стили в Python: как перестать рвать на себе волосы, читая чужой код

Игорь Мосягин

Klarna

Когда мы рассуждаем о качестве кода, обычно говорим о PEP 8, о том, что нельзя называть переменные непонятным образом и о том, что надо прогонять Black или Ruff или что-то еще на свой код. Но что, если посмотреть пошире?

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

Доклад будет полезен тем, кого уже «тошнит» от Литкода, но хочет иметь больше универсальности в своей коробке инструментов. А также всем, кто когда-то писал на других языках, но теперь считает, что раз он питонист, то больше делать нечего.


Замена Питону

Bend vs Mojo. Чей хайп сильнее?

Михаил Гурбанов

Райффайзен Банк

Новые языки растут как грибы после дождя! В прошлом году мы получили Mojo, он влетел «с ноги» в топ чарты интернета и продолжает набирать популярность. Но совсем недавно появился другой язык под названием Bend, который набрал 15K звезд за неделю. Оба языка заточены под ML и параллелизм, но какой лучше и сильнее?

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


Конечно, конференция не сводится к докладам, но живое общение не распишешь по пунктам. Так что нам остаётся только прояснить необычный формат для тех, кто не был на предыдущих PiterPy:

  • 18 сентября будет полностью онлайновый день.

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

Остальная информация и билеты — на сайте PiterPy. А если что-то осталось непонятным, можете спрашивать прямо здесь.

Комментарии (0)