Обновить
831.33

Python *

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

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

Airflow 3 is Coming

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели4.9K

Как-то один из самых главных контрибьюторов в Airflow Ярек Потиюк рассказал, что Airflow 3 станет новым золотым стандартом индустрии. Это довольно смелое заявление. Я же считаю, что в Airflow 3  еще многого не хватает, чтобы действительно стать стандартом.

Если вы еще не знаете, что такое Airflow, то, к сожалению, это статья будет сложной. Давайте вместе освежим память.

Airflow - это платформа с открытым исходным кодом для написания и управления рабочих процессов. Airflow была основана в 2014 году в AirBnB. С тех пор платформа прошла путь до версии 1.0 в 2015 году, стала Apache Top Level Project в 2019 и плотно обосновалась как Enterprise Production-Ready в 2020 с версией 2.0.

Читать далее

ЕВРАЗ доверил ревизию кода ИИ

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели1.9K

Недавно прошёл Хакатон ЕВРАЗа 3.0, на котором участникам поставили задачу упростить и ускорить важный процесс разработки — code review. Эта сложная и трудоемкая часть работы программистов, которая требует предельной концентрации и широкого опыта специалистов. 

Хакатон предоставил возможность не только найти новые идеи для автоматизации, но и продемонстрировать потенциал ИИ для повышения качества кода. Если тема цифровых технологий в металлургической промышленности интересует и вас, приглашаем поближе познакомиться с решениями победителей. 

Читать далее

Python-библиотеки, которые упрощают жизнь программиста. Часть 1

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

Привет всем! Меня зовут Алексей Жиряков, я техлид backend-команды витрины онлайн-кинотеатра KION. Сегодня хочу поделиться любимыми Python-библиотеками, которые помогают нам оптимизировать работу. Надеюсь, вам они тоже будут полезны. И конечно, пишите в комментах, чего не хватает в подборке. Возможно, потом сделаю вторую часть, а еще расскажу про фреймворки. Поехали!

Читать далее

Анализ кривой падения добычи нефтяных и газовых скважин

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели3.3K

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

Читать далее

Когда уверенность становится самонадеянностью: история одной фатальной ошибки

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели3.1K

Привет, меня зовут Денис. Я учусь на 4 курсе Ярославского университета и работаю в Тензоре уже 1 год. Эта история о том, как за один день мой проект стал знаменит на всю компанию, а я получил колоссальный опыт и поседел в свои 21.

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

Спойлер: как вы уже поняли по названию, без ошибок не обошлось😅

Читать далее

Как написать Google Calendar на коленке? Обзор FullCallendar

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели5.8K

Привет, Хабр! В свободное от работы время я занимаюсь разработкой своего проекта. На днях мне понадобилось разработать раздел с календарем и задачами, чтобы пользователи могли отслеживать свою деятельность. Увы, но полностью готовых решений я не нашел. API стандартного календаря Google не подходит, так как данные хочу хранить внутри контура проекта.

Спустя несколько часов поисков я наткнулся на плейлист разработчиков из Индии. В жизни все циклично — именно эти видео мне и помогли. Так я познакомился с классной open source-библиотекой FullCalendar, о которой расскажу в этой статье. Если вы уже начали составлять календари на 2025 год, добро пожаловать под кат!
Читать дальше →

Как создать свой веб-фреймворк на Python

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

Доброго времени суток, хабр! В этой статье мы создадим свой веб-фреймворк на Python с использованием gunicorn.

Он будет легким, иметь базовый функционал. Мы создадим обработчики запросов (views), простую и параметизированную маршрутизацию, Middleware, i18n и l10n, Request/Response, обработку html-шаблонов и генерацию документации.

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

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

Читать далее

IMPulse — наш взгляд на менеджмент инцидентов

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели2.2K

Если ваша компания всё ещё не использует средства для менеджмента инцидентов, а утопает в обычных алертах из Alertmanager'а, эта статья для вас. Если ваша компания из-за санкций или соображений безопасности не может отправлять алерты в зарубежные системы менеджмента инцидентов, эта статья для вас. Если вы DevOps и уже изрядно намучились с поиском подобного решения (как я) - статья и для вас тоже.

В статье мы презентуем наше open source решение для работы с алертами.

Приглашаю всех заинтересованных под кат.

Читать далее

Что DevOps-инженеру может предложить Python?

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

В этой статье разберём, для решения каких задач DevOps-специалисты могут использовать Python. Посмотрим на взаимодействие Python с системами контроля версий (CVS), инструментами CI/CD и другими аспектами DevOps.

Читать далее

Создание бота в дискорде с деплоем на сервер за 5 минут

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

Доброго времени суток, уважаемые читатели. В этой статье мы поговорим о том как сделать простейшего бота в Discord на Python с базой данных SQlite3 и задеплоим его с использованием GitOps-подхода за три команды в терминале.

Функционал бота будет следующим:

1. Вывод пинга: 

- Бот отвечает на команду /пинг, отправляя обратно сообщение с текущим пингом на запущенном сервере.

2. Выдача роли: 

Читать далее

NLP: когда машины начинают понимать нас (Часть 3)

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели3.1K

В этой статье мы продолжим изучение NLP и перейдем к более продвинутым темам, которые являются главными для построения современных приложений и моделей в области обработки естественного языка. А также создадим и обучим модели самостоятельно, используя TensorFlow/Keras и PyTorch.

Читать далее

Получение информации о системе с помощью Python

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели8.8K

Привет! Это моя первая статья, и я решил начать с темы, которая, как мне кажется, актуальна для многих системных администраторов. Часто сталкиваюсь с ситуацией, когда нужно быстро получить информацию о системе — будь то для проверки после внесения изменений, для поиска узких мест в производительности или для составления отчёта. Конечно, существуют различные утилиты и программы для мониторинга, но иногда хочется иметь под рукой простой и гибкий инструмент, который можно быстро адаптировать под свои нужды. Именно поэтому я считаю Python отличным выбором для решения подобных задач. Его простой синтаксис и богатая экосистема библиотек позволяют легко и быстро писать скрипты для получения практически любой системной информации. В этой статье я поделюсь своим опытом и покажу, как с помощью Python можно легко и эффективно получать данные о системе.

Читать далее

NLP: когда машины начинают понимать нас (Часть 2)

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели2.5K

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

Читать далее

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

Метрики оценки качества вероятностей в бинарной классификации: опыт из ФинТеха

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели8.8K

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

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

Читать далее

no-code (hub.ultralytics.com) в связке с Yandex DataSphere

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели2.8K

Большой спрос на цифровые приложения с одной стороны и небольшой рост числа разработчиков с другой, делает разработку IT решений на базе no code или low code платформ весьма актуальным и трендовым мероприятием.

Несмотря на наличие решений для бизнеса, например: viso.ai, cloud.google.com/vision, clarifai.com платформ для обучения известно не так много. Наиболее известные это teachablemachine.withgoogle.com или hub.ultralytics.com. Первая — является довольно простой и может использоваться даже школьниками, поэтому мы подробнее поговорим о второй платформе.

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

Платформа имеет понятный интерфейс и основные рабочие вкладки: «Datasets», «Projects», «Models».

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

Читать далее

О векторных базах данных простым языком

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели23K

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

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

Например, когда пользователь вводит «лето», вы можете показывать предметы вроде шортов, платьев, панам и пляжных зонтов.

Как бы вы реализовали такую систему?
Читать дальше →

Пишем сервис инференса ML-модели на go, на примере BERT-а

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

Привет, на связи команда аналитиков Х5 Tech. В статье пишем сервис инференс ML-NLP модели на go. Допустим, вам нужно внедрить ML-модель (разработанную/обученную на Рython-фреймворке) в сервис в вашей инфраструктуре. По какой-то причине (не важно какой) этот сервис должен быть на golang-е. Здесь покажем, как это можно сделать, используя ONNX.

Если вы это читаете, то, вероятно, или вы знакомы с обучением ML-моделей на Рython, библиотекой моделей huggingface, языковыми моделями BERT, или вы являетесь бэкенд разработчиком на golang.

В качестве примера будем использовать модель из библиотеки huggingface seara/rubert-tiny2-russian-sentiment, которая классифицирует сантимент текста.

Читать далее

Chronos от Amazon: революция в обработке временных рядов. Часть 2

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели2.1K

Итак, друзья, продолжаем тему прогнозирования временных рядов с помощью Chronos.

Напомню, что Chronos это фреймворк от компании Amazon — простой, но эффективный фрэймворк для предобученных вероятностных моделей временных рядов.

Chronos токенизирует значения временных рядов с помощью масштабирования и квантования в фиксированный словарь и обучает существующие архитектуры языковых моделей на основе трансформеров на этих токенизированных временных рядах с использованием функции потерь кроссэнтропии. Chronos был предобучен на основе семейства T5 (размеры от 20M до 710M параметров) на большом количестве общедоступных наборов данных, дополненных синтетическим набором данных, который сгенерировали с помощью гауссовских процессов для улучшения обобщения.

В этой статье я не буду подробно рассказывать как устроен Chronos и на чем он предобучен. Вся эта информация подробно изложена в моей предыдущей статье (Часть 1). Здесь мы попробуем применить его на общедоступных данных на примере прогнозирования котировок акций компаний из индекса Dow Jones (общедоступный датасет на Kaggle), а также на данных одного крупного российского перевозчика.

По биржевым данным цель была проста, посмотреть, как новый инструмент справляется с задачей предсказания цены акции. А на данных с железной дороги в качестве цели исследования выбрали построение прогнозов по количеству отступлений, называемых просадка пути. Многие из вас ездили поездом, и вот когда качает, это зачастую и есть просадки. Отступление довольно часто и быстро возникающее, влияет на безопасность движения, плавность хода и скорость. И предприятиям, обслуживающим путь, полезно оценивать при планировании, сколько таких отступлений предстоит устранять в следующем месяце. Данные брали посуточные, для десяти случайно выбранных предприятий. Временной период в 4 года, из них 1 месяц для тестирования. Посуточные показатели суммировали до месяца. В случае Dow Jones, пытаемся предсказать цену закрытия акции посуточно на 12 точек вперед.

Читать далее

Оптимизация ядра WebGPU для перемножения матриц и достижения производительности свыше 1ТФЛОПС

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

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

Я работаю в компании Nomic, и многие из моих коллег заняты созданием больших TSNE-подобных визуализаций, работающих в браузере. При визуализации таких двумерных карт возникает две проблемы: проецировать эти конструкции (напр. TSNE и UMAP) в 2D-координатную систему протекает медленно и требует больших затрат оперативной памяти, особенно по мере того, как вы увеличиваете датасет и пытаетесь визуализировать в браузере миллионы точек данных, не расплавив при этом ноутбук невзначай.

Отобразить в браузере миллионы точек данных, не расплавив компьютер — та ещё задача. Мне доводилось слышать, что многие проблемы с масштабированием удаётся решать при помощи инструмента Deepscatter, разработанного Беном Шмидтом.

Но многие из таких разговоров, которые мне известны, вертятся вокруг Typescript и великолепия WebGPU как такового. Готовя эту статью, я не смог найти ни одной библиотеки для автоматического дифференцирования выражений, которая была бы написана с применением WebGPU. Но было бы упущением не назвать здесь два репозитория с функционально схожим наполнением: webGPT (библиотека на основе трансформеров, приспособлена только для логического вывода) и webgpu-blas (ядра для быстрого перемножения матриц под webGPU). Поэтому, в качестве самообразования и желая получше изучить WebGPU и Typescript, я решил написать Surfgrad, высокопроизводительную библиотеку для автоматического дифференцирования выражений под управлением WebGPU. Она обеспечивает тензорные операции в браузере. Как понятно по названию и по принципу работы, она во многом сделана по примеру tinygrad и micrograd.

Читать далее

Коллац на фрактране

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели809

Я хочу сыграть с вами в одну игру...
— Дж. Конвей, про игру "Жизнь" (и про фрактран тоже)

Эту статью я хотел написать ещё полтора года назад, но почему-то замешкался и стёр черновик. Но вот наконец дошли руки.

Суть игры

Вы задаёте список неотрицательных рациональных дробей (программу) и некоторое натуральное число (состояние).
Ищете в программе первую дробь, такую, что произведение её на состояние остаётся натуральным. Это значение становится новым состоянием.
Повторяете процедуру.
Если ни одна из дробей не подошла, программа останавливается.

Этот список дробей является программой на эзотерическом языке Фрактран, о котором на хабре была статья.

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

Читать далее

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