Обновить
756.62

Python *

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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 мин
Охват и читатели22K

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

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

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

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

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

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

Привет, на связи команда аналитиков Х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 мин
Охват и читатели796

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

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

Суть игры

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

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

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

Читать далее

Голосовой ассистент на python

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

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

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

Читать

Как написать Raft на чистом Python: основы

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

Привет, друзья! В этой статье рассмотрим, как реализовать алгоритм Raft на Python.

Raft — это алгоритм распределённого консенсуса, который делает три вещи:

1. Выбирает лидера (тот, кто рулит кластером).
2. Реплицирует данные по всем узлам (чтобы не потерять, если что-то пойдет не так).
3. Гарантирует согласованность данных (никакой битой записи в журнале).

Читать далее

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

Книга: «Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3е изд. дополненное и переработанное»

Время на прочтение16 мин
Охват и читатели16K
imageПривет, Хаброжители!

Вы ждали. Вы спрашивали. И наконец мы сделали!

Если вы хотели ворваться в программирование и освоить Python, то «Изучаем Python» может стать отличным стартом на этом увлекательном пути! Это не просто руководство — это проводник в мир программирования на Python. Он поможет вам заложить прочный фундамент для дальнейшего обучения и работы над своими собственными проектами.

В этой статье мы хотели бы рассказать про третье издание Эрика Мэтиза «Изучаем Python: программирование игр, визуализация данных, веб-приложения», дополненное и переработанное.

Идеальный старт для начинающих пайтонистов.
Читать дальше →

Когда «тихая» ДНК громче гена: как избыточная ДНК регулирует экспрессию, ничего не делая

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

Мир биоинформатики полон загадок: что такое избыточная ДНК, почему она занимает половину генома, и как это вообще работает? Кому-то может показаться, что некодирующая ДНК — это просто «балласт», но на деле это, как если бы в вашем коде была сложная инфраструктура, которая отвечает за оптимизацию и поддержание всей системы.

Сегодня мы с вами разберёмся, как эта загадочная некодирующая ДНК умудряется контролировать экспрессию генов, ничего при этом не кодируя. А чтобы вы не заскучали, добавим капельку Python, ведь кода много не бывает!

Читать далее

Python vs C#, Django vs ASP: проблема выбора

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

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

Читать далее

SpyderIDE: Твоя новая «восьмилапая» подруга для Python-разработки

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

Дорогие друзья, порадуемся тому факту, что даже в мире IDE есть свои пауки. Не те, что заползают в ваш код, добавляя баги, а настоящие спасатели программного хаоса. Сегодня речь пойдет о SpyderIDE, любимице научного сообщества и тех, кто слишком увлечен pandas и numpy, чтобы замечать окружающий мир.

Читать далее

Neural OCR при распознавании текста

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

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

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

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

Читать далее

Как СИБУР заменил иностранное ПО за три месяца: кейс создания RTO-модели для производства этилена и пропилена

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

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

Я, Вячеслав Базанов, руководитель проекта, и моя команда инженеров и аналитиков из Цифрового СИБУРа взялись за разработку собственной модели прогнозирования. Это был вызов по масштабу и срокам, но мы справились и за три месяца создали решение, которое не только заменило прежнюю систему, но и улучшило её эффективность. Добро пожаловать под кат — расскажу, как мы это сделали.

Читать далее

Самая наглядная и простая модель естественного отбора: птицы со всего одним геном. Важность разнообразия у потомков

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

Давайте рассмотрим наипростейшую модель естественного отбора. В сети встречал модель с двумя параметрами-генами, а у нас будет всего один, при сохранении наглядности. Модель настолько элементарна, что её можно обсудить даже со своим ребёнком (проверил со своей шестилетней дочкой).

NB: Весь код в статье интерактивный, кликайте, чтобы открыть, запустить, попробовать свои идеи сразу на ходу. Используется Python + p5py (который разрабатывался для книги для детей, преподавания в Универе, детских кружках и школе)

Внимание: 21 гифка, 29 фрагментов кода и 12 ссылок на запускаемый код.

Читать далее

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