Собрали в одном месте самые важные ссылки
консультируем про IT, Python
The factory_boy library is a tool for managing fixtures for your tests. This article shows you how to use it with Django.
В статье разберём некоторые техники обнаружения плавающих багов, вызванных конкурентностью. Сделаем подход к автоматическому тестированию устойчивости веб-сервисов к различным race condition. Примеры будут на python + asyncio + sqlalchemy, но эти подходы применимы к любым моделям конкурентности, которые подвержены состояниям гонки.
При работе с нейросетями-классификаторами у всех на слуху какие-то известные архитектуры, которые характеризуются числом параметров, скоростью вычислений (инференса), точностью выполнения той или иной известной задачи. Популярны соревнования, посвящённые тому, насколько точно можно решить задачу классификации на типовых датасетах, и часто борьба уже идёт за доли процента [PWC]. Однако в реальных задачах нейросети часто показывают себя куда хуже, чем в «лабораторных» условиях, что переводит акццнт внимания с тренировочных и тестовых (train-test) задач на проверку обобщающей способности (generalization) нейросетей.
В этой статье рассказываю, как мы обучили Telegram-бота для оповещения о задачах, согласовании бизнес-процессов и очистки каналов от уволившихся сотрудников. Мои коллеги Руслан Мансуров и Руслан Яруллин раскроют детали, как мы боролись с препятствиями во время обучения и фейлах на первых попытках. В конце поделимся статистикой, показывающей, какой положительный эффект оказал бот на работу сотрудников.
!Это перевод статьи Clean Code in Python. В данной статье Nik Tomazic рассказывает о чистом коде, его преимуществах, различных стандартах и принципах, но что самое главное– он дает общие рекомендации по написанию чистого кода. Прочитав данную статью в оригинале, я понял, что это именно то, что я хотел бы прочитать в самом начале своего пути разработки на Python.
Вы когда-нибудь сталкивались с тем, что языковая модель, даже лучшая, типа GPT-4 или Клод, не соблюдает строгий формат ответа? Например, выдаёт неверный JSON или добавляет лишние поля, что приводит к сбоям в сервисе? Эти проблемы могут вызывать значительные трудности при интеграции с другими системами, требуя сложных обходных решений и усложняя логику обработки данных. На этом докладе я покажу, как можно заставить модели строго следовать заданным форматам ответов. Я расскажу, как использовать современные фреймворки для контролируемой генерации, чтобы гарантировать выдачу корректных структурированных данных, будь то JSON, код или любые другие форматы. Доклад будет полезен не только специалистам по языковым моделям, но и разработчикам, знакомым с простыми концепциями конечных автоматов. Вы увидите, как эти известные алгоритмы в сочетании с языковыми моделями дают интересные результаты. Кроме того, я объясню дополнительные преимущества контролируемой генерации, такие как zero-shot классификация, вызов внешних функций и ускорение генерации.
Рубль, вложенный в тестирование библиотеки, даёт сильно больше велью, чем тот же рубль, вложенный в тесты бизнес-логики. Если пренебречь тестированием, карточный домик из абстракций легко рассыпается. Давайте разберёмся, как сделать так, чтобы как можно больше домиков не сыпались.
JIT или не JIT? Вот в чём вопрос. Python — язык с многолетней историей. И на протяжении всей своей истории он не был фаворитом в вопросах производительности. Было много разных попыток приблизиться к решению этой проблемы, в том числе и с добавлением JIT (pypy, numba, etc.), но у большинства из них был фатальный недостаток. Они были инструментами для решения конкретных проблем, про которые вспоминали, только когда других вариантов уже не осталось, когда уже не жалко инвестировать дополнительное время в ускорение узкий мест и переписывание кода. Но что же нам предвещает добавление JIT в коробочную версию cpython? Мы получим бесплатное ускорение всех наших программ и возрадуемся или всё не так просто? Давайте попробуем разобраться вместе.
Я ускорил всё, кроме себя В своём докладе мне хочется дать слушателям самый полный и понятный список лучших решений для всего в бэкендах. Это будет небольшая энциклопедия лучших решений, многие из которых я и коллеги как следует «притёрли» в продакшене. Фреймворки, библиотеки, сервера, даже немного десктоп софта, сравнения — будет всё, а на что-то мы и вовсе посмотрим с неожиданных сторон.
AI-агенты захватывают наш мир, и раз бороться с ними не выйдет — стоит научиться их делать. А ещё лучше — пусть AI-агенты создают себя сами. В докладе будет разбор того, как научить агентов писать себе промпты, измерять качество решений. Обсудим основные проблемы, которые могут возникнуть, и выбор правильной схемы памяти для агентов. Отдельное внимание уделим обучающимся агентам, которые анализируют обратную связь от пользователей и становятся лучше. Доклад будет наиболее интересен тем, кто создает персонализированных AI-ассистентов.
Все, кто когда-либо писал учебники, хором говорят: не пишите учебник. Настала моя очередь присоединиться к этому хору: год назад я сел писать с нуля учебник по Python. И прямо сейчас провожу обкатку написанного на фокус-группе, а в начале 2025 года планирую издать книгу в бумаге. Это доклад о том, как увлечение нейрофизиологией переросло в мой самый большой эксперимент за 25 лет работы программистом: создание самоучителя для взрослых. Я расскажу, как выбирал последовательность обучения, почему начал учебник с expression/evaluation/value, зачем объяснять списки через словари, чем мне не нравится слово "переменная", и, главное — почему я хочу издать всё это в бумаге.
В докладе сравним подходы программиста и ГИС-специалиста к обработке гео-данных. На примере проектов посмотрим, почему не стоит ограничиваться готовыми коробочными решениями и когда переходить к разработке собственных решений. Поделимся опытом использования питона для анализа пространственных данных и расскажем о стеке инструментов, необходимых для ГИС-моделирования.
Как мы тестируем дата-пайплайны в рекламе Яндекса В рекламных технологиях Яндекса мы создаём конвейеры обработки данных для аналитики, подготовки датасетов и обучения ML-моделей. Сбои в работе этих конвейеров могут приводить к серьёзным финансовым потерям, поэтому мы вкладываем много сил в обеспечение их надёжности. Одной из целей разработки нашей платформы управления данными Logos было решение этой задачи. В докладе я поделюсь нашим опытом многоуровневого тестирования дата-пайплайнов. Вы узнаете о различных подходах к тестированию данных, их преимуществах и недостатках. Я расскажу, как мы формируем тестовые выборки данных, как верифицируем результаты тестовых расчётов, а также как устроена приёмка дата-пайплайнов в рамках релизного процесса.
Python интерфейс для MongoDB. Скачать можно по ссылке: https://pypi.python.org/pypi/pymongo/
Делаем из питона го. Зачем? Давайте признаем, что синхронный код писать проще: он прост, как доска. Но иногда хочется добавить какую-то многозадачность в свой код, особенно если у вас I/O-bound приложение. Асинхронность в питоне решает эту проблему, но при этом создаёт дополнительные сложности, например, классическую проблему сине-зелёных функций. А если ещё и изначально проект был на синхронном питоне, то не переписывать же его с нуля? А может, будем писать почти как в go с горутинами? Ровно так мы и делаем на нашем проекте. Расскажем, как мы к этому пришли и кому за это мы продали душу.
Зачем Яндексу своя бинарная сборка python В Яндексе используется своя система сборки, которая появилась более 10 лет назад. Она умеет собирать Python в замкнутые бинарные программы под все популярные платформы. В докладе рассмотрим разные способы дистрибуции Python сервисов и инструментов, выясним, что же такое бинарная сборка, какие она накладывает ограничения и даёт возможности.