Забудьте про Tesseract и тяжелые LLM — как Surya меняет работу с документами

03 Jun, 2026

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

Обычно в таких случаях приходится выбирать между «бесплатным, но слабым» Tesseract и «умными, но безумно дорогими» облачными API или гигантскими LLM, которые требуют терабайты VRAM. Проект Surya от команды Datalab предлагает третий путь. Это компактная модель на 650 миллионов параметров, которая по точности обходит гигантов, работая при этом на обычном игровом железе или даже на MacBook.

Что умеет эта штука

Разработчики называют Surya «моделью с универсальным зрением», и это не просто красивый маркетинг. Проект закрывает сразу несколько критических задач, на которых спотыкаются стандартные библиотеки.

Во-первых, это распознавание текста (OCR). Модель выдает точность 83.3% на бенчмарке olmOCR-bench. Чтобы вы понимали масштаб: она обходит многие модели, которые в 5–10 раз больше её по размеру.

Во-вторых, анализ разметки (Layout Analysis). В моей практике это часто важнее самого текста. Surya понимает, где на странице заголовок, где картинка, а где таблица. Она сохраняет порядок чтения, что критично для многоколоночной верстки.

Реклама

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

Интересно, что Surya отлично справляется с математикой. Она распознает формулы и сразу отдает их в формате LaTeX, обходясь без отдельных специализированных моделей.

https://raw.githubusercontent.com/datalab-to/surya/master/static/images/excerpt_layout.png

Под капотом и в консоли

В основе проекта лежит архитектура в духе Qwen3.5-style. Это VLM (Vision-Language Model), которая научена превращать картинку страницы в структурированный JSON или HTML.

Для запуска вам не понадобится строить инфраструктуру с нуля. Проект поддерживает два основных бэкенда:

  1. vllm для тех, у кого есть видеокарты NVIDIA. На RTX 5090 модель выдает сумасшедшие 5 страниц в секунду.
  2. llama.cpp для работы на CPU или Apple Silicon. На чипах серии M всё работает вполне бодро через Metal.

Установка максимально простая:

pip install surya-ocr

Если вы хотите быстро потыкать модель руками, разработчики добавили интерактивное приложение на Streamlit. Запускается командой surya_gui. Это удобно, чтобы проверить свои специфичные документы перед тем, как писать код для автоматизации.

Как использовать в своем коде

Если вы переходите с первой версии Surya, то заметите, что API стал чище. Теперь за всё отвечает SuryaInferenceManager. Он сам решает, какой бэкенд использовать, и управляет жизненным циклом сервера.

Вот как выглядит типичный скрипт для OCR:

from PIL import Image
from surya.inference import SuryaInferenceManager
from surya.recognition import RecognitionPredictor

# Менеджер сам поднимет vllm или llama-server
manager = SuryaInferenceManager()
rec = RecognitionPredictor(manager)

image = Image.open("your_document.png")
predictions = rec([image])

for block in predictions[0].blocks:
    print(f"Тип: {block.label}")
    print(f"Текст: {block.html}")

Кстати, модель возвращает не только сухой текст, но и уверенность (confidence) для каждого блока. Это полезно, если вы строите систему с автоматической проверкой ошибок: блоки с низким скором можно отправлять на ручную модерацию.

Почему это важно для русскоговорящих разработчиков

Часто опенсорсные модели хорошо работают только с английским. У Surya ситуация иная: русский язык входит в топ-15 поддерживаемых с очень приличным результатом в 88.8%. Всего же заявлена поддержка 91 языка. Я проверял её на кириллице — она на удивление хорошо справляется даже со специфичными шрифтами и не самыми качественными сканами.

https://raw.githubusercontent.com/datalab-to/surya/master/static/images/newspaper_layout.png

В чем подвох

Несмотря на крутые цифры в бенчмарках, стоит помнить об ограничениях. Surya заточена именно под документы. Если вы скормите ей фотографию улицы с вывесками или мем из соцсетей, результат будет непредсказуемым. Это специализированный инструмент для работы со страницами, PDF и сканами.

Лицензия тоже требует внимания. Код открыт под Apache 2.0, но веса модели используют лицензию AI Pubs Open Rail-M. Для исследователей и стартапов с доходом до $5 млн в год это бесплатно, но для крупного энтерпрайза придется общаться с авторами.

Кому стоит попробовать

Если ваша задача — переварить тысячи PDF-файлов, извлечь данные из финансовых отчетов или создать поисковый индекс по бумажному архиву, Surya — это, пожалуй, самый эффективный инструмент на сегодня по соотношению «мощность железа / качество результата». Она заменяет собой целую пачку библиотек для детекции текста, классификации блоков и распознавания символов, объединяя всё это в один элегантный пайплайн.

Начать изучение советую с репозитория на GitHub, там очень подробные инструкции по настройке производительности и примеры JSON-ответов.