Обновить
587.95

Python *

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

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

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.5K

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

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

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

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

Читать далее

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

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

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

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

Суть игры

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

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

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

Читать далее

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

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

Всем привет, я программист-любитель, изучающий язык 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 ссылок на запускаемый код.

Читать далее

Создание блога на FastAPI с нуля: JWT, Markdown и современный веб-дизайн

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

В этой статье мы создадим полноценный мини-блог на FastAPI с нуля, используя современные технологии веб-разработки. Вы узнаете, как реализовать JWT-аутентификацию, работать с Markdown и создать привлекательный пользовательский интерфейс.

Мы рассмотрим асинхронную работу с SQLAlchemy 2, включая сложные запросы и связи ManyToMany, а также интеграцию фронтенда с использованием Jinja2.

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

Читать далее

Django + Zoho CRM: как управлять данными без головной боли

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

Привет! Меня зовут Денис, я Python-разработчик в Kokoc Group. Уже около года занимаюсь интеграцией одной из наших платформ на Django с Zoho CRM. Мы соединяем пользователей с широким спектром услуг, требования к обработке заявок и управлению партнерскими и пользовательскими профилями высокие, поэтому Zoho CRM стала ключевым элементом.

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

Читать далее

Участвуем в онлайн розыгрышах. Уровень: программист

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

Всем привет! Меня зовут Олег, я старший Python/Go разработчик в Cloud.ru, а в свободное от работы время я... довольно азартный человек!

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

В таких конкурсах для меня главное не победа и призы, а участие и дух соревнования. Правда играю в них я не совсем честно. Различными способами я умудряюсь набрать наибольшое количество очков/баллов/монеток и не тратить на это дни и недели своей жизни. А как именно - расскажу в этой статье на примере одного из недавних конкурсов, который проводился на Хабре в честь 25-летия Ростелекома.

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

Узнать все хитрости

Создаём генератор аудиокниг с персональным переводом

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


Привет, Хабр!

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

Самый популярный вариант «обучающего перевода», которым пользовались и вы, – интерактивный, в котором пользователь следит за текстом на языке оригинала, и сам раскрывает переводы и пояснения забытых или новых для себя слов. Можно ли совместить эти подходы, взяв преимущества каждого, и переложить их в формат аудиокниги? Этим сегодня и займёмся.
Читать дальше →

Что за распределение у выборочных квантилей?

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

Все знают про распределение выборочного среднего (его описывает Центральная предельная теорема), а что насчет выборочных квантилей?

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

Читать далее

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