IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте авторский блог

     21.04.2022       Выпуск 435 (18.04.2022 - 24.04.2022)       Статьи

Синхронизируем данные с yarsync

yarsync - Yet Another Rsync - предназначен для синхронизации данных между несколькими устройствами, более точно - между файловыми системами в Unix-подобных средах. yarsync обладает интерфейсом, похожим на git, и является Python-обёрткой вокруг программы rsync. Программа доступна под свободной лицензией GPL v3.0 на github (я автор).

 

     20.04.2022       Выпуск 435 (18.04.2022 - 24.04.2022)       Статьи

Ускорение производительности Python в 3.11

Сегодня хочу поделиться с вами хорошими новостями, которые связаны с производительностью python в грядущем релизе 3.11 и то, что нас ожидает в будущем!

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

     18.04.2022       Выпуск 435 (18.04.2022 - 24.04.2022)       Статьи

Сравнение алгоритмов детекции лиц

Очень часто я на просторах интернета натыкаюсь на такой вопрос: «А какое готовое решение по детекции лиц лучше всего использовать?» Так вот, я отобрал 5 решений с Github, которые показались мне хорошими, относительно новыми и лёгкими в использовании, и хотел бы сравнить их между собой. Всем, кому интересно, что из этого вышло, добро пожаловать под кат!

     18.04.2022       Выпуск 435 (18.04.2022 - 24.04.2022)       Статьи

Нейронная сеть считает лес кругляк и распознает автомобильные номера. Как это сделано?

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

 

     18.04.2022       Выпуск 435 (18.04.2022 - 24.04.2022)       Статьи

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 5

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

     18.04.2022       Выпуск 435 (18.04.2022 - 24.04.2022)       Статьи

Подбор синонимов для терминов с использованием Викиданных (python)

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

     18.04.2022       Выпуск 435 (18.04.2022 - 24.04.2022)       Статьи

Автоматическая суммаризация текстов с помощью трансформеров Hugging Face. Часть 1

В июле 2020 года компания OpenAI выпустила свою модель машинного обучения третьего поколения, GPT-3, ориентированную на генерирование текстов. Тогда я понял, что мир уже не будет прежним. Эта модель задела меня за живое. Те системы такого рода, что выходили раньше, у меня подобных ощущений не вызывали. И вот ещё неожиданность — о новой системе начали говорить мои друзья и коллеги, в принципе интересующиеся технологиями, но не особенно обращающие внимание на последние достижения машинного обучения (Machine Learning, ML) и искусственного интеллекта (Artificial Intelligence, AI). Об этом написала даже газета Guardian. А если точнее — статью написала сама модель, а в Guardian её лишь отредактировали и опубликовали. Совершенно очевидно то, что выход модели GPT-3 стал поворотным моментом в развитии искусственного интеллекта.

     18.04.2022       Выпуск 435 (18.04.2022 - 24.04.2022)       Видео

Moscow Python Podcast. Из проектирования в разработчики (level: all)

В гостях у Moscow Python Podcast Python QA-инженер компании Genesys Юрий Польников. Обсудили с Юрием его путь из инженера в сфере строительства и преподавателя в разработчики.

     15.04.2022       Выпуск 434 (11.04.2022 - 17.04.2022)       Статьи

Анализ данных виртуальных велотренировок

В предыдущей статье я рассказал о том, как получить данные о персональных тренировках из набора FIT-файлов, которые создаются при использовании носимых устройств (фитнес-браслеты, часы, смартфоны, велокомпьютеры).

     15.04.2022       Выпуск 434 (11.04.2022 - 17.04.2022)       Видео

Денис Толкачев, Сбер,Лаборатория Нейронаук. Производственный брак. Ищем некрасивую рыбу на конвейере

Как разработать систему распознавания рыб на конвейерной ленте, имея на руках только видеозаписи рыб с ленты, raspberry pi и python. При этом хотим близкое к real-time быстродействие системы на rpi и не сойти с ума. Требования к модели: уметь отличать рыбу от остальных предметов, определять вид рыбы, положение рыбы на ленте (головой в сторону движения или хвостом, хребтом вправо или влево), брак. В данном докладе хотелось бы рассказать слушателям про путь в данной задаче: Поиск похожих решений: их достоинства и недостатки, Как формировали собственное решение: Детекция - Сегментация - Выбор моделей, Разметка, Обучение, Первые попытки и интеграции, Попытки обучить «легкие» модели и переразметка имеющихся данных.

     15.04.2022       Выпуск 434 (11.04.2022 - 17.04.2022)       Видео

Павел Мальцев, Speechki. Redis, сова и глобус

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

     15.04.2022       Выпуск 434 (11.04.2022 - 17.04.2022)       Видео

Станислав Фатеев, CVisionLab. Pydantic: валидируй это. Как работать с данными быстро и без боли

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

     15.04.2022       Выпуск 434 (11.04.2022 - 17.04.2022)       Видео

Матвей Коняев, Точка. Как писать тесты дешевле

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

     15.04.2022       Выпуск 434 (11.04.2022 - 17.04.2022)       Видео

Данил Ахтаров, Тинькофф. Почему питон не будет функциональным и почему нафиг никому это не нужно

На питоне можно писать так и эдак, но когда ты в команде, кто-то "старший" решает, как лучше это делать. Вы могли слышать, что "этот код не питонячий", "так на питоне не пишут". Стоит разобраться почему. Я совсем недавно открыл для себя функциональное программирование, и мне понравился этот стиль. В основном композиция функций на языке Хаскель. Так как мой основной стек это Python, я предполагал, что такое можно сделать и на нем. Но почему все используют императивный подход в разработке и внедрить в свой рабочий проект новые идеи очень сложно. Если все таки захотим использовать функциональный стиль, с какими проблемами можем столкнуться? Если честно, в питоне мало фичей для ФП, но можно использовать диалекты, с помощью которых ваш код будет декларативным и более читаемым для людей. Но есть свои недостатки, которые нельзя игнорировать. В своем докладе я предлагаю познакомиться с этой темой и, возможно, вы отметите для себя что-то интересное.

     15.04.2022       Выпуск 434 (11.04.2022 - 17.04.2022)       Видео

Тимур Кадыров,Лаборатория Нейронаук. Ускоряем расчет признаков на коротком датасете для HFT на бирже

Для работы HFT необходимы очень маленькие задержки. Поэтому при внедрении ML модели нужно учитывать ограничения на время расчёта признаков. Есть много докладов и статей на тему ускорения расчётов на pandas. Сюда можно отнести и pandarallel, и dask, и polars. Ребята из Intel даже рассказывали на прошлом PyCon-е про modin. Все эти инструменты работают при больших объемах данных. Но что делать, если количество строк меньше 1000 или даже 100? В данном докладе хочу осветить несколько тем: Почему так важна низкая задержка при hft Какие возможны оптимизации для снижения количества расчетов Numpy Structured arrays как замена Pandas DataFrame Вспоминаем математику и ещё немного сокращаем количество операций.

     15.04.2022       Выпуск 434 (11.04.2022 - 17.04.2022)       Видео

Василий Копытов, Авито. Как и почему мы перешли от Python к Go в нашем основном сервисе рекомендаций

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

     14.04.2022       Выпуск 434 (11.04.2022 - 17.04.2022)       Статьи

Байесовская Сеть Доверия: Практика

Мы продолжаем нашу серию статей, связанных с байесовскими методами, один из которых — Байесовские Сети Доверия (БСД). Теоретическую основу БСД вы можете найти в этойстатье.

В этой статье мы сначала вкратце вспомним теорию. Дальше будет, что называется, только хардкор: на примере данных “Титаника” мы будем строить БСД.

     14.04.2022       Выпуск 434 (11.04.2022 - 17.04.2022)       Статьи

История одного CRUD'а

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

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

     14.04.2022       Выпуск 434 (11.04.2022 - 17.04.2022)       Статьи

Асинхронный django — status update. Проект vinyl

Некоторое время назад я писал про альтернативные возможности, как можно добавить в django асинхронность (есть официальный подход, изложенный в DEP-09). С тех пор у меня получилось оформить свои идеи в нечто относительно цельное, что вылилось в vinyl project. Описание проекта читайте на гитхабе, здесь же я хочу рассказать о его интересных особенностях.

     13.04.2022       Выпуск 434 (11.04.2022 - 17.04.2022)       Статьи

Ирина, голосовой помощник. Продолжение

Это продолжение статьи Ирина — опенсорс русский голосовой помощник. Offline-ready. Расскажу, что поменялось за два месяца с момента прошлой статьи.