PaddleOCR-VL в llama.cpp: мультиязычный OCR без GPU | AiManual
AiManual Logo Ai / Manual.
20 Фев 2026 Инструмент

PaddleOCR-VL в llama.cpp: мультиязычный OCR, который не требует GPU

Настройка PaddleOCR-VL в llama.cpp для распознавания текста на 100+ языках. Инструкция, сравнение с альтернативами и примеры использования.

Текст на картинке? Сейчас прочитаем

В 2026 году распознавание текста из картинок все еще остается проблемой. Особенно если текст на арабском, китайском или каком-нибудь вьетнамском. VLM-модели типа Qwen 3 VL или GLM-OCR то справляются, то нет — как повезет. А классические OCR-движки часто требуют отдельной установки, конфигурации и грешат с нелатинскими алфавитами.

PaddleOCR-VL 0.9B — это мультиязычная модель на 0.9 миллиарда параметров, которая в феврале 2026 года вышла в формате GGUF для llama.cpp. Что это значит? Теперь можно запустить качественный OCR на CPU без танцев с бубном. И поддерживает она более 100 языков — от английского до хинди.

Важный момент: PaddleOCR-VL — это не просто OCR. Это vision-language модель, которая понимает контекст. Может отвечать на вопросы по содержимому документа, а не просто выдавать текст.

Что умеет PaddleOCR-VL 0.9B (версия 2026 года)

Последняя версия на февраль 2026 — это улучшенная модель с исправленными проблемами распознавания арабской вязи и китайских иероглифов. Основные фичи:

  • Распознает текст на 100+ языках без переключения моделей
  • Понимает структуру документа (заголовки, абзацы, таблицы)
  • Отвечает на вопросы по содержимому изображения
  • Работает на CPU через llama.cpp с GGUF-квантованием
  • Требует всего 4-8 ГБ оперативки в зависимости от квантования

Самое приятное — модель уже конвертирована в GGUF и лежит в официальном репозитории. Не нужно самому конвертировать из PyTorch, что обычно заканчивается ошибками совместимости.

PaddleOCR-VL против конкурентов: кто кого?

Модель Языки Размер Требования Точность
PaddleOCR-VL 0.9B 100+ ~3.5 ГБ (Q4_K_M) CPU, 8 ГБ RAM Высокая для мультиязычного
GLM-OCR 80+ ~7 ГБ GPU желателен Отличная, но ресурсоемкая
LightOnOCR-2 50+ ~5 ГБ Обязателен GPU Средняя для нелатинских
Tesseract 5.3+ 100+ ~500 МБ CPU, минимальные Низкая для сложных шрифтов

Если сравнивать с LightOnOCR-2 и GLM-OCR, то PaddleOCR-VL выигрывает в одном — работает на любом ноутбуке. Не нужно мощной видеокарты. Для бизнес-задач, где нужно обрабатывать документы на сервере без GPU, это решающее преимущество.

💡
Для чистого OCR без вопросов-ответов лучше использовать классические движки. Но если нужен интеллект — понимание, что на картинке счет, а не просто набор цифр — тогда VLM незаменимы.

Ставим PaddleOCR-VL в llama.cpp: пошагово и без магии

1 Качаем правильную версию llama.cpp

Первая ошибка — пытаться использовать старую версию. На февраль 2026 нужен llama.cpp не ниже версии 2.9.0 с поддержкой VLM. Качаем с GitHub:

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make -j4

Если компиляция падает с ошибкой — проверьте, что установлен cmake 3.25+. На старых системах придется обновлять.

2 Берем GGUF-файлы модели

Официальные веса лежат в репозитории PaddleOCR-VL. Но проще скачать готовые GGUF-файлы с Hugging Face. Ищите paddleocr-vl-0.9b-q4_k_m.gguf — это оптимальный вариант баланса качества и размера.

# Пример для Linux/Mac
wget https://huggingface.co/PaddlePaddle/PaddleOCR-VL/resolve/main/gguf/paddleocr-vl-0.9b-q4_k_m.gguf

# Или через git lfs, если файл большой
git lfs install
git clone https://huggingface.co/PaddlePaddle/PaddleOCR-VL

Не берите q2_k — будет мусор вместо текста. q4_k_m — минимальное разумное квантование. Для production лучше q5_k_m или q6_k.

3 Запускаем и тестируем

Базовый запуск через CLI:

./main -m paddleocr-vl-0.9b-q4_k_m.gguf --mmproj mmproj-paddleocr-vl-0.9b-f16.gguf \
  --image /path/to/your/image.png -p "Extract text from this image"

Ключевые флаги:

  • --mmproj — файл проекции для мультимодальности (обязательно!)
  • --image — путь к изображению
  • -p — промпт. Можно задавать вопросы: "What is the total amount on this invoice?"
  • -ngl 0 — если нет GPU, форсируем CPU-режим

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

Реальные примеры: где это работает, а где нет

Сканы документов с плохим качеством — да, PaddleOCR-VL справляется лучше Tesseract, особенно с рукописными цифрами. Но если нужна pixel-perfect точность для юридических документов, лучше использовать классический IDP пайплайн.

Мультиязычные документы (типа инструкций на 5 языках) — здесь PaddleOCR-VL бьет всех. Не нужно переключать языковые модели, как в Tesseract. Одна модель — все языки.

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

А вот с арабской вязью в последней версии 2026 года стало значительно лучше. Раньше модель путала направление письма, сейчас исправили.

Интеграция в Python-приложения

Через llama-cpp-python библиотеку можно встроить в свои скрипты:

from llama_cpp import Llama

llm = Llama(
    model_path="paddleocr-vl-0.9b-q4_k_m.gguf",
    n_ctx=2048,  # контекст для изображений
    n_gpu_layers=0  # 0 для CPU, больше для GPU
)

# Загружаем изображение как base64
import base64
with open("document.jpg", "rb") as f:
    image_data = base64.b64encode(f.read()).decode('utf-8')

# Промпт с изображением
response = llm.create_chat_completion(
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Extract all text from this invoice"},
                {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image_data}"}}
            ]
        }
    ]
)

print(response['choices'][0]['message']['content'])

Важный нюанс — llama-cpp-python должен быть версии не ниже 0.2.70 для поддержки VLM. На старых версиях работать не будет.

Кому подойдет эта связка?

Разработчикам, которым нужен OCR в офлайн-приложениях. Особенно на embedded-устройствах или серверах без GPU. PaddleOCR-VL через llama.cpp потребляет мало памяти и не требует внешних зависимостей.

Лингвистам и исследователям, работающим с мультиязычными корпусами. Одна модель вместо десятка языковых пакетов.

Бизнес-приложениям для обработки документов международных компаний. Счета на немецком, контракты на французском, спецификации на японском — все в одном месте.

Но если вам нужен промышленный OCR для миллионов документов в день — посмотрите в сторону специализированных решений. PaddleOCR-VL быстрее, чем большие VLM, но все же медленнее классических OCR-движков.

Чего ждать дальше?

PaddleOCR-VL 1.5B уже анонсирована на конец 2026 года. Будет больше языков и лучше точность. Но и требования к памяти вырастут.

Основной тренд — уменьшение моделей без потери качества. Сейчас 0.9B — это компромисс. Через год, возможно, появится модель с аналогичными возможностями на 0.5B параметрах.

Интеграция с полностью офлайн-режимом PaddleOCR — следующий логичный шаг. Единый пайплайн для всех типов документов.

Мой прогноз: к концу 2026 году VLM-OCR на CPU станут стандартом для бизнес-приложений среднего масштаба. А PaddleOCR-VL в llama.cpp — одним из самых популярных вариантов из-за простоты развертывания.

Совет напоследок: не используйте эту модель для распознавания CAPTCHA. Это нарушает условия использования большинства сервисов. Да и этично как-то сомнительно.