Обновить
530.02

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

11 друзей Sanic’а – собираем асинхронное веб-приложение на Python

Время на прочтение9 мин
Охват и читатели18K
Рано или поздно маленькие приложения разрастаются до нагруженных production-решений, поэтому программисту необходимо заранее продумать стек технологий. Для Python концептуальный выбор стоит между синхронными и асинхронными фреймворками. После появления библиотеки asyncio популярность асинхронных Python-фреймворков сильно выросла, потеснив таких монстров, как Django и Flask, и стало намного проще писать веб-приложения, способные пережить высокий RPS.

В нашей компании по ряду причин перешли к асинхронным решениям, и ниже я опишу пример асинхронного веб-приложения с возможностью работы с брокером очередей RabbitMQ и запуском периодичных заданий. С кодом проекта можно ознакомиться по ссылке. Это приложение можно использовать как шаблон для новых проектов, в который достаточно будет добавить свою бизнес-логику, чтобы получилось полноценное production-решение.

Статья поможет новичкам посмотреть, как можно использовать вместе различные асинхронные библиотеки. А опытные программисты могут сравнить представленное ниже решение со своими наработками и конструктивно покритиковать.
Читать дальше →

Новые возможности для Python-разработчиков: SmartApp Framework в open source

Время на прочтение4 мин
Охват и читатели4.1K
Платформа SmartMarket позволяет разработчику с любым уровнем подготовки создавать мультимодальные приложения для виртуальных ассистентов Салют, даже без программирования. Конечно, если хочется сделать что-то красивое и сложное, без кода не обойтись. Чтобы облегчить жизнь разработчикам, мы делимся с ними нашими наработками в open source. На митапе разработчиков SmartMarket, прошедшем в декабре, мы рассказали о новом фреймворке.

Ниже вы найдете текстовую версию доклада и его видеозапись.


Друзья, привет! Меня зовут Кристина, я backend-разработчик SberDevices и тимлид сервиса управления диалогом, который используется для работы виртуальных ассистентов Салют. Расскажу вам сегодня о новом инструменте SmartMarket – SmartApp Framework, который мы выложили в open source.
Читать дальше →

Что такое фильтр Блума?

Время на прочтение9 мин
Охват и читатели70K

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

Фильтр Блума. Что это?

Самая крутая библиотека для Data Science, которую я нашёл в 2021 году

Время на прочтение3 мин
Охват и читатели11K

Больше никогда не тратьте время на настройку гиперпараметров




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

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

Я спарсил больше 1000 топовых Github-профилей по машинному обучению и вот что я узнал

Время на прочтение7 мин
Охват и читатели16K


При поиске по ключевой фразе «машинное обучение» (речь идет об англоязычном ключе «machine learning» — прим. перев.) я нашел 246632 репозиториев по машинному обучению. Поскольку все они имеют отношение к этой отрасли, я ожидал, что их владельцы являются экспертами или хотя бы достаточно компетентны в машинном обучении. Поэтому я решил проанализировать профили этих пользователей и показать результаты анализа.
Читать дальше →

Создаем схему базы данных на SQLAlchemy

Время на прочтение3 мин
Охват и читатели26K

Много уже говорилось о том, что SQLAlchemy - одна из самых популярных библиотек для создания схем баз данных. Сегодня рассмотрим несложный пример по созданию небольшой схемы данных для приложения по поиску цитат. В качестве СУБД будем использовать PostgreSQL.

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

Читать далее

Hack The Box. Прохождение Doctor. SSTI to RCE. LPE через Splunkd

Время на прочтение3 мин
Охват и читатели6.3K

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

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)

Читать далее

Рецепт обучения нейросетей

Время на прочтение15 мин
Охват и читатели38K

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

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

Читать далее

Конвертеры маршрутов в Django 2.0+ (path converters)

Время на прочтение8 мин
Охват и читатели12K
Всем привет!

Маршрутизация в Django со второй версии фреймворка получила замечательный инструмент — конвертеры. С добавлением этого инструмента появилась возможность не только гибко настраивать параметры в маршрутах, но и разделять зоны ответственности компонентов.

Меня зовут Александр Иванов, я наставник в Яндекс.Практикуме на факультете бэкенд-разработки и ведущий разработчик в Лаборатории компьютерного моделирования. В этой статье я расскажу о конвертерах маршрутов в Django и покажу преимущества их использования.



Первое, с чего начну, — границы применимости:

  1. версия Django 2.0+;
  2. регистрация маршрутов должна выполняться с помощью django.urls.path.

Итак, когда к Django-серверу прилетает запрос, он сперва проходит через цепочку middleware, а затем в работу включается URLResolver (алгоритм). Задача последнего — найти в списке зарегистрированных маршрутов подходящий.

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

Использование статистических методов для анализа временных рядов

Время на прочтение3 мин
Охват и читатели16K

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

Но сам ряд — это лишь набор информации, который не несет ничего нужного. При этом, если построить график этого ряда, используя, к примеру, для оси Y значения времени, а для оси X — показания, которые были нами изначально записаны или форматизированы в цифровом виде, то мы сможем найти некоторые последовательности.

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

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

Но для чего может использоваться временной ряд в аудите? Для всего!

Операции клиента на протяжении квартала – временной ряд. Расход топлива служебного автомобиля – временной ряд. Даже чтение этой статьи – тоже временной ряд! (мы можем записать — сколько слов в минуту вы читаете, с указанием порядкового времени минуты)

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

Основным методом работы с любым простым временным рядом – это построение графика и его визуальная оценка.

Возьмем простой пример: рассмотрим покупки подарков к праздничному мероприятию для десяти коллег.

Читать далее

Как создавать красивые карты с помощью Python

Время на прочтение4 мин
Охват и читатели26K
Мне всегда нравились карты городов, и несколько недель назад я решил создать свою собственную, художественную версию. Немного погуглив, я обнаружил крутое руководство, написанное Фрэнком Себальосом. Оно увлекательно и полезно, но я предпочитаю более подробные/реалистичные карты-схемы. Из-за этого я решил создать свою собственную версию карт. Итак, давайте посмотрим, как мы можем создавать красивые карты с помощью Python и данных OpenStreetMap.

Приятного чтения!

Оценка важности «фичей» для нелинейных моделей

Время на прочтение4 мин
Охват и читатели7.1K

Задачи, которые сегодня решает машинное обучение, зачастую являются комплексными и включают в себя большое количество признаков (фичей). Из-за сложности и многообразия исходных данных применение простых моделей машинного обучения часто не позволяет достигнуть необходимых результатов, поэтому в реальных бизнес-кейсах применяют сложные, нелинейные модели. У таких моделей есть существенный недостаток: из-за их сложности практически невозможно увидеть логику, по которой модель присвоила именно этот класс операции по счету. Особенно большое значение интерпретируемость модели играет, когда результаты ее работы необходимо представить заказчику — он скорее всего захочет узнать, на основе каких критериев принимаются решения для его бизнеса.

В стандартных пакетах для машинного обучения, таких как sklearn, xgboost, lightGBM существуют методы для оценки важности влияния на конечный результат той или иной фичи (параметра). Однако эти метрики важности не дают представление о том, как именно эти признаки влияют на предсказания модели. Например, как время проведенной операции указывает на то, была ли сделка мошеннической? Или как сильно адрес прописки владельца карты смещает предсказание модели? Для ответа на эти вопросы необходимо найти комплексное решение, которое помогло бы повысить интерпретируемость нелинейных моделей. Таким инструментом является библиотека SHAP. В библиотеке SHAP для оценки вклада фичей в итоговое предсказание моделей рассчитываются значения Шэпли. Для оценки важности фичи происходит оценка предсказаний модели, которая была обучена на основе датасета с и без данной фичи.

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

Приведенный ниже код взят с kaggle и доработан для демонстрации функций рассматриваемого инструмента.

Читать далее

Развертывание нескольких моделей машинного обучения на одном сервере

Время на прочтение4 мин
Охват и читатели3.4K

В коммерческой разработке многие сценарии использования машинного обучения подразумевают мультитенантную архитектуру и требуют обучения отдельной модели для каждого клиента и/или пользователя.

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

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

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

Читать далее

Ближайшие события

Как строить красивые графики на Python с Seaborn

Время на прочтение7 мин
Охват и читатели229K

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

Есть множество инструментов для визуализации данных, таких как Tableau, Power BI, ChartBlocks и других, которые являются no-code инструментами. Они очень мощные и у них есть своя аудитория. Однако для работы с сырыми данными, требующими обработки, а также качестве песочницы, Python подойдет лучше всего.

Графики на Python

25 полезных однострочников Python, которые вы должны знать

Время на прочтение5 мин
Охват и читатели52K

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

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

Читать далее

Книга «Секреты Python Pro»

Время на прочтение7 мин
Охват и читатели10K
image Привет, Хаброжители! Код высокого качества — это не просто код без ошибок. Он должен быть чистым, удобочитаемым и простым в сопровождении. Путь от рядового питониста к профи не прост, для этого вам нужно разбираться в стиле, архитектуре приложений и процессе разработки. Книга «Секреты Python Pro» научит проектировать ПО и писать качественный код, то есть делать его понятным, сопровождаемым и расширяемым.

Дейн Хиллард — профессиональный питонист, — с помощью примеров и упражнений он покажет вам как разбивать код на блоки, повышать качество за счет снижения сложности и т. д. Только освоив основополагающие принципы, вы сможете сделать так, чтобы чтение, сопровождение и переиспользование вашего кода не доставляло проблем ни вам ни вашим коллегам.
Читать дальше →

Самая лучшая практика: работа с path в Python

Время на прочтение3 мин
Охват и читатели29K

В последней статье мы использовали рекурсивную функцию размером менее 10 строк для решения проблемы сканирования папок и ранжирования файлов по дате изменения и размеру.

Теперь я подниму планку и покажу, как можно было сделать лучше.

Читать далее

Нейродайджест: главное из области машинного обучения за январь 2021

Время на прочтение6 мин
Охват и читатели4.4K


12 выпусков позади, значит пора немного поменять название и оформление, но внутри вас всё так же ждут исследования, демонстрации, открытые модели и датасеты. Встречайте новый выпуск подборки материалов о машинном обучении.
Читать дальше →

Оценка достоверности отчетов об ошибках с помощью анализа временных рядов

Время на прочтение8 мин
Охват и читатели4.4K

Привет, Хабр! Меня зовут Илья Селицер. В DINS мы участвуем в разработке продукта для UCaaS-провайдера RingCentral, которая объединяет много функций — от звонков и факса до корпоративного мессенджера и видеоконференций. Я, среди прочего, отвечаю за качество этого сервиса. В повседневной практике мне постоянно приходится анализировать взаимодействие различных сетевых элементов, которые участвуют в предоставлении той или иной услуги абонентам.

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

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

Читать далее

Собираем нейросети. Классификатор животных из мультфильмов. Без данных и за 5 минут. CLIP: Обучение без Обучения + код

Время на прочтение9 мин
Охват и читатели19K

Туториал: Собираем нейронную сеть на примере классификации нарисованных животных в режиме "обучения без обучения".

Цель: Научиться быстро создавать классификаторы для множества задач, без данных и без разметки, используя нейросеть CLIP от OpenAI.

Уровень: Туториал подходит под любой уровень: от нулевого до профи.

Совсем недавно я писал статью про нейронную сеть CLIP от OpenAI — классификатор изображений, решающий практически любую задачу, и который вообще не нужно обучать! Теперь давайте посмотрим, как CLIP работает на практике. Собираем CLIP из рубрики: Разбираем и Собираем Нейронные Сети на примере мультфильмов. На написание кода, и создание готового обученного классификатора у меня, и у любого, даже не знакомого с Python, уйдет именно пять минут. Интересно как? На самом деле все очень просто.

Туториал + Рабочий код: Читай и запускай! Приятного прочтения!

Поехали!

Вклад авторов