Эпоха монолитов закончилась. Встречайте PaddleOCR 3.5
Вы когда-нибудь пытались скрестить PaddleOCR с HuggingFace Transformers? Нет? И правильно. До мая 2026 это была затея уровня 'собрать конструктор из Lego и сделать работающий телепорт' — вроде бы детали подходят, но в итоге всё разваливается на этапе импорта. Китайская экосистема PaddlePaddle жила своей жизнью, а мир transformers — своей. И вот релиз PaddleOCR 3.5 (он же v3.5.0, доступный с 12 мая 2026) перерезает этот гордиев узел.
Новая опция backend='transformers' в конфигурации engine_config позволяет использовать модели OCR напрямую через HuggingFace без установки PaddlePaddle. Да, вы не ослышались — никакого pip install paddlepaddle-gpu, никаких конфликтов зависимостей. Берёте чистый питон, ставите всего один пакет, грузите веса из хаба — и работаете. Как вам такое, господа адепты 'священных войн фреймворков'?
Ключевое обновление: в PaddleOCR 3.5 можно использовать модели PP-OCRv5 и PaddleOCR-VL (0.9B) через единый интерфейс, а бэкенд выбирать декларативно — хоть нативного PaddlePaddle, хоть Transformers.
Что даёт бэкенд Transformers и почему это меняет правила игры
Раньше, чтобы запустить PaddleOCR, нужен был весь фреймворк PaddlePaddle. Это как для работы с PDF-файлом требовать установки всего Adobe Creative Cloud. На серверах — ладно, а на ноутбуках, в CI/CD пайплайнах или в облачных функциях — лишние гигабайты зависимостей бесили.
Теперь:
- Модели загружаются как любой другой трансформер:
from_pretrained('paddleocr/pp-ocr-v5'). - Работают на CPU, GPU (CUDA), AMD ROCm или Apple Metal — всё, что поддерживают transformers.
- Инференс через ONNX Runtime и Flash Attention 2.0 — скорость взлетает до 5-7 страниц в секунду на RTX 5090 (против 3-4 в голом PaddleOCR, как мы разбирали в статье про 940 000 PDF).
Лучше всего это заметно на MacBook Pro: в нашем сравнительном обзоре PaddleOCR v3.4.1 потреблял 4-6 ГБ ОЗУ. Версия 3.5 с бэкендом Transformers на Apple Silicon жрёт в два раза меньше — около 2-3 ГБ, а точность даже выше за счёт дообученных весов.
Как это работает: архитектура и engine_config
В PaddleOCR 3.5 появился модуль PaddleInference, который умеет переключать бэкенды. В engine_config вы теперь пишете что-то вроде:
from paddleocr import PaddleOCR
ocr = PaddleOCR(
use_angle_cls=True,
lang='ru',
engine_config={
'backend': 'transformers',
'model_name_or_path': 'paddleocr/pp-ocr-v5',
'device_map': 'auto'
}
)За кулисами:
- Модель
pp-ocr-v5конвертирована в формат safetensors и выложена на HuggingFace Hub под именемpaddleocr/pp-ocr-v5. - Backend Transformers автоматом подхватывает детектор текста (DBNet), рекогнайзер (CRNN с attention) и классификатор ориентации.
- Веса загружаются лениво, только когда нужны — это ускоряет старт.
model_name_or_path. Подробнее — в гайде PaddleOCR в полностью офлайн-режиме.Сравним с альтернативами:
| Инструмент | Простота установки | Точность (русский, китайский) | Поддержка Transformer backend | Скорость (страниц/сек на CPU) |
|---|---|---|---|---|
| PaddleOCR 3.5 | Высокая (один pip install) | Очень высокая | Да | 4-6 |
| EasyOCR 1.7.2 | Средняя (torch зависит от CUDA) | Средняя | Нет | 2-3 |
| Tesseract 5.3.2 | Высокая | Средняя (требует языковых моделей) | Нет | 5-8 (но без layout) |
Как видите, PaddleOCR 3.5 закрывает главную боль — совместимость с современным ML-стеком. EasyOCR отстаёт в скорости и точности, Tesseract — в анализе структуры документа.
Парсинг документов с PaddleOCR 3.5: от картинки к структурированным данным
Но OCR — это только полдела. В реальных задачах нужно не просто вытащить текст, а понять, где заголовок, где таблица, где подпись. PaddleOCR 3.5 встроил layout-анализ прямо в пайплайн.
Пример: сканированная накладная. Запускаем парсинг:
result = ocr.ocr('invoice.jpg', cls=True)
# возвращает список найденных блоков с координатами, текстом и типом
for block in result:
print(block[1][0]) # текст
print(block[0]) # bounding box
print(block[1][1]) # confidenceА если нужно извлечь именно таблицу? Используем ocr.ocr() c дополнительным параметром layout=True:
data = ocr.ocr('table.jpg', layout=True)
# вывод: {'text': [...], 'table': [[{...}]]}На выходе — структура, которую можно сразу скормить pandas или Excel. В нашей статье про ADE мы разбирали, как дообучить модель для кастомных документов — теперь этот процесс стал ещё проще.
Кому реально пригодится PaddleOCR 3.5 (и кому — нет)
- Разработчикам RAG-систем — наконец-то нормальный OCR для индексации PDF, без костылей на Tesseract.
- Командам, мигрирующим с EasyOCR — PaddleOCR 3.5 точнее на сложной вёрстке и не слетает на кириллице (подтверждено нашим сравнительным тестом).
- Владельцам MacBook — да, теперь OCR работает без тормозов. Подробности в обзоре для Mac.
- Тем, кто хочет VLM-модели — через тот же бэкенд можно запустить PaddleOCR-VL 0.9B (мы уже проверяли её в llama.cpp, но теперь и в Transformers).
Кому не подойдёт: если вы обрабатываете миллионы PDF в сутки на минималках — лучше посмотреть в сторону Turbo-OCR. PaddleOCR берёт качеством, а не объёмом.
Неочевидный совет: проверьте бэкенд, если у вас AMD
На карточках AMD RX 9070 XT (RDNA4) нативный PaddlePaddle падает с ошибкой сегментации (проверено лично). А Transformers backend через HIP работает как часы. Так что если у вас не NVIDIA — PaddleOCR 3.5 с бэкендом Transformers может стать единственным рабочим вариантом. Прогноз: через год бэкенд Transformers вытеснит нативный PaddlePaddle из 90% инсталляций. Слишком удобно, и экосистема HuggingFace уже не отпустит.