Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode

Печь для бани с дожигом пиролизных газов

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

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

Read full post gblog_arrow_right

Lost in the Middle. Перевод знаменитой статьи

Ниже представлен перевод знаменитой статьи Lost in the Middle о том, что номинальная длина контекстного окна – это совсем не то же самое, что и эффективная.

Ссылки:

Потерянные в середине: как языковые модели используют длинные контексты

Lost in the Middle: How Language Models Use Long Contexts

Read full post gblog_arrow_right

Размышления о природе случайности

Тема случайности меня волнует давно.
Существует ли физически объективная случайность, не обусловленная никакими внешними признаками? А если да, то как её определить и почему она существует?
Или всё, что мы воспринимаем как случайное, обусловлено лишь нашей мерой незнания? Как только мы получаем новую информацию, случайности становится меньше — просто потому, что мы узнали больше об объективных закономерностях в системе, которые на самом деле не являются случайными, а лишь отражают принципиальную сложность системы.

Read full post gblog_arrow_right

LittleVec — легковесная векторная база данных

В последние годы векторные базы данных стали неотъемлемой частью современных ИИ-проектов: поиск по embedding, RAG-пайплайны, быстрый семантический поиск и многое другое. Однако, если вы когда-либо пробовали развернуть подобную БД — будь то FAISS, Milvus, Qdrant или аналогичные решения — вы наверняка сталкивались с тем, что даже для небольших экспериментов и pet-проектов такие системы требуют довольно мощного железа. В итоге приходится либо платить за дорогой сервер, либо мириться с низкой скоростью и неудобствами.

Read full post gblog_arrow_right

AI git commit generator

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

Поэтому в какой-то момент я просто взял и сделал bash-утилиты, использующие AI для этих вещей: gitai для коммитов и gitaitag для тегов. О них и расскажу ниже.


AI для коммитов и тегов: gitai и gitaitag

Что это такое?

gitai — это bash-скрипт для Linux и macOS, который помогает создавать информативные git commit-сообщения с помощью OpenAI (или совместимых API). Скрипт не только пишет лаконичные заголовки в прошедшем времени и краткое описание изменений, но и добавляет эмодзи, список затронутых файлов и даже проводит AI-код-ревью с подсветкой потенциальных проблем или улучшений — всё на грамотном английском.

Read full post gblog_arrow_right

Утилиты для извлечения изображений и текста из PDF

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

Чтобы упростить и ускорить решение этих задач, я написал набор утилит на C++ — PDF2Images. Они позволяют:

  • Мгновенно извлекать все изображения из PDF-файлов в нужном формате (png, jpg, tiff и др.)
  • Получать текст с разбивкой по страницам или в один файл
  • Гибко настраивать параметры извлечения: диапазон страниц, формат выходных файлов, разрешение и пр.
  • Использовать утилиты в автоматических скриптах и пайплайнах

Я сам ежедневно использую эти инструменты для подготовки скриншотов и текстовых выборок из PDF, а также для построения RAG (Retrieval-Augmented Generation) — когда нужно быстро получить текстовую базу для дальнейшей работы с LLM.

Read full post gblog_arrow_right

Получение распределений в задачах регрессии

Приводится алгоритм нахождения функций распределения в качестве решения задачи регрессии.

В общем виде задачу регрессии можно сформулировать как восстановление зависимости
$\phi: X \to L_1(\Omega)$,
сопоставляющей элементам некоторого фазового пространства $X$ случайную величину $\xi \in L_1(\Omega)$.

Классический подход к решению задачи регрессии состоит в нахождении среднего значения $E[\phi(x)]$ для каждого $x \in X$.

В статье предлагается простой алгоритм оценки распределений случайных величин $\phi(x) \in L_1(\Omega)$.

GitHub



Мотивация

В анализе данных значительное место занимают два класса задач — задачи классификации и регрессии.

Read full post gblog_arrow_right

Бенчмарк энтропий Шеннона и Реньи на C++

Решил сравнить как различные показатели энтропии Реньи влияют на производительность в плане вычислений.

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

Для этого важно понимать, как различные показатели энтропиивлияют на время выполнения.

Определение угла наклона текста на сканированных изображениях

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

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



Идея

Базовая идея алгоритма состоит в том, что при повороте текста на сканированном изображении средняя, по строкам и столбцам, энтропия распределения пикселей должна возрасти.

Read full post gblog_arrow_right