Обновить
843.71

Python *

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

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

Как мы перестали хранить Pydantic в JSON и в 7 раз сократили расход памяти в Redis

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

У нас был большой продакшен-сервис с ~10M MAU, где Redis использовался как основное хранилище состояния пользователей. Все данные лежали в нём в виде JSON-сериализованных Pydantic-моделей. Это выглядело удобно, пока не стало больно.

На определённом этапе мы выросли до Redis Cluster из пяти нод – и он всё равно задыхался по памяти. JSON-объекты раздувались в разы относительно полезных данных, и мы платили за тонны пустоты — буквально деньгами и деградацией.

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

Читать далее

«Манускрипт. Распознать нельзя забыть: как мы научили нейросеть читать рукописи XIX века»

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

Manuscript OCR — открытая нейросеть для чтения рукописей XIX века

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

Открыть рукопись

Делаем самые лучшие фото для документов

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

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

Делали ли вы электронную визу в Индию? А, может, в Южную Корею? Или подавались на лотерею Green Card в США? Если да, то вы точно знаете, что для заявки на все эти документы надо прикрепить фотографию определённого размера с целым набором требований...

А такое ну просто необходимо автоматизировать!

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

Терпеть такое я, конечно же, не стал и написал своего бота в Телеграме, который делает это всё бесплатно.

Подробности под катом!

Читать далее

Ловим «взрослые» сцены на видео: как ИИ помогает редакторам

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

Поводом для написания этой заметки стало обсуждение на недавнем отраслевом мероприятии задач мультимодерации контента: как быстро и надёжно находить «взрослые» сцены в длинных видео и автоматически подсвечивать фрагменты для ручной проверки. Похожие кейсы регулярно встречаются и в открытых соревнованиях по ИИ (например, в подборке задач Wink AI Challenge на Codenrock).

Читать далее

Изучаем Python: модуль csv для начинающих с домашним заданием

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

CSV (Comma-Separated Values) — это универсальный язык для обмена табличными данными, который понимают все, от Excel до сложных баз данных. Вся его сила в простоте: это обычный текст, где значения разделены запятыми. Именно поэтому он стал стандартом для выгрузки отчетов, переноса контактов и подготовки данных.

Читать далее

Ансамблирование BERT для анализа логов и почему вам может быть достаточно solo-модели

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров1.1K

1 августа 2012 года, торговая фирма Knight Capital развернула новую версию торгового ПО SMARS. Из‑за ошибки при развертывании на одном из восьми серверов осталась старая тестовая версия кода, из‑за чего торговый робот начал неконтролируемо рассылать миллионы ошибочных заявок на покупку и продажу акций. Этот процесс длился около 45 минут и привел к убыткам в размере примерно 440 миллионов долларов — почти весь капитал компании.

​Ключевая проблема мониторинга состояла в том, что система PMON (Position Monitor) полностью полагалась на ручной мониторинг: она не генерировала автоматических оповещений и не выделяла превышение лимитов. Трейдеры Knight видели аномальную активность в логах, но не понимали контекст:

Читать далее

Простейшая закономерность на рынке способна принести 100% прибыли

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

В трейдинге часто говорят: «Цена — это следствие, объём — это причина».
Именно так я наткнулся на одну простую, но крайне интересную закономерность: если в момент падения появляется свеча с объёмом, который в два раза превышает средний за последние 60 дней, — то на следующей свече часто начинается рост.

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

Читать далее

Как я похоронил свой лучший проект еще на моменте его создания? История dnevniklib

Время на прочтение3 мин
Количество просмотров2.9K

Много кто на Хабре знает мое имя из-за моего проекта dnevniklib - Python библиотека для работы с API МЭШ (Московская Электронная Школа). На пике популярности ее скачали с PyPI 3000 раз! Данный проект являлся моей моей визитной карточкой, многие мои знакомые, которые как и я програмисты, нашли меня именно через мой Github. Да, это было круто, но потом произошло затишье... Я кинул проект в архив и он до сих пор там валяется. Но почему?

Эта статья расскажет о чем сразу стоит позаботится, прежде чем выпускать какой-либо продукт (даже open source) в main ветку

Читать далее

Создаём MCP‑сервер на практике

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

MCP без воды и шаблонного кода на практике: разбираем протокол, поднимаем сервер, тестируем через Inspector и учим LLM торговать через Finam API. Разберёмся, когда MCP выгоднее «обычных функций», как изолировать интеграции и упростить отладку инструментов.

Читать далее

Построение E2E-решения для прогнозирования временных рядов на примере метеоданных

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров660

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

Четыре года назад, еще в институте, одним из моих первых серьезных проектов была простая LSTM-модель для прогноза погоды. Недавно, пересматривая старые наработки, я задался вопросом: насколько дальше можно зайти, применив накопленный за эти годы опыт и современные инженерные практики?

Эта статья — история такого "рефакторинга длиною в 4 года". Это рассказ о том, как простой академический проект был переосмыслен и превращен в полноценное End-to-End (E2E) решение. Цель — не просто снова предсказать погоду, а на практическом примере продемонстрировать системный подход к построению ML-пайплайна с нуля.

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

Читать далее

Изучаем Python: модуль pathlib для начинающих с домашним заданием

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

Забудьте о ручном склеивании строк: с pathlib пути элегантно конструируются с помощью оператора /. Проверка существования, чтение, получение родительской директории — всё это становится методами и атрибутами самого объекта. В результате код получается не просто чище и читабельнее, он становится более надежным и по-настоящему "питоничным" (Pythonic).

Читать далее

Мастерское масштабирование: создаем утилиту для лупы в играх без риска для античита

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

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

Читать далее

Простой способ держать ваш скрипт актуальным и запускать его автоматически

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

Простой способ держать ваш скрипт актуальным и запускать его автоматически Создаем самосинхронизирующийся и запускающийся Python-скрипт из GitHub

Читать

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

Долгая дорога к DiT (часть 2)

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров2.8K

Первая треть пути преодолена и совсем скоро мы создадим генератор картинок на целиком на архитектуре трансформеров. Но перед тем как совершить финальный скачок к Diffusion Transformers (DiT) нам сначала надо научиться работать с готовыми датасетами и освоить генерацию изображений "простым" способом - через MLP-ResNet. Статья является прямым продолжением первой части, так что советую сначала ознакомиться с ней, чтобы понимать откуда всё началось. Будет много про работу с датасетами.

И вообще статья получилась какой-то неприлично большой.

Читать далее

Парсим Ozon. Собираем информацию о ценах, товарах и отзывах

Время на прочтение23 мин
Количество просмотров8.8K

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

В этой статье мы разберём, почему для Ozon нужен браузерный парсинг, как использовать Playwright для успешного парсинга и как обернём решение в Telegram-бота, который по запросу пользователя парсит товары и отправляет CSV-файл.

Читать далее

Изучаем Python: модуль json для начинающих с домашним заданием

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

Если вам когда-либо приходилось передавать структурированные данные между двумя разными системами, вы наверняка сталкивались с JSON. Сегодня JSON (JavaScript Object Notation) — это общепринятый стандарт для обмена данными в интернете. Он стал настолько популярным благодаря своей простоте и эффективности.

Читать далее

Путь к Computer Vision: Чему меня научил простой NLP-классификатор на 5 МБ

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

Ретроспектива pet-проекта, который стал полигоном для отладки, архитектуры и оптимизации перед более сложными задачами в CV.

Читать далее

Парсим и определяем тональность сообщений в Telegram

Время на прочтение3 мин
Количество просмотров2K

Для работы использую Google Colaboratory.

Шаг 1. Получение  API ID и Hash.

До начала работы с  API Telegram необходимо получить собственный API ID и Hash. Это можно сделать пройдя по ссылке https://my.telegram.org/auth?to=apps, указав номер телефона привязанный к профилю, и заполнив App title и Short name. Platform - можно выбрать “Other (specify in description)”. Остальные параметры можно оставить пустыми.

После того как все шаги выполнены вы получите собственные API ID и Hash.

Важно: В Telegram в настройках конфиденциальности должна быть отключена двухэтапная аутентификация.

Шаг 2. Вход в аккаунт  Telegram.

Теперь переходим в  Google Colab и первым делом устанавливаем библиотеку telethon:

Читать далее

Сравнение алгоритмов сортировки на Python с Pygame-визуализацией

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6.4K

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

Читать далее

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

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

В статье рассматриваются технические аспекты разработки речевого тренажёра GolosAI, основанного на технологиях генеративного искусственного интеллекта и использовании больших языковых моделей (Large language models). Описана необходимость создания подобных средств обучения в России в условиях ограниченного доступа к зарубежным языковым сервисам, а также обозначена актуальность проблемы формирования разговорных навыков вне языковой среды. Автором представлен алгоритм функционирования тренажёра, включающий распознавание речи, генерацию ответов, синтез голоса и анализ выполнения учебных задач. В качестве важного достоинства тренажера отмечена его мультиязычная направленность и гибкость настройки под имеющиеся компьютерные средства. Дополнительно рассматривается потенциал интеграции речевого тренажера в образовательный процесс российских вузов на основе отечественных больших языковых моделей (YandexGPT, GigaChat) для создания автономных интерактивных речевых систем обучения иностранным языкам.

Далее

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