Jina AI выпустила jina-ocr-v1: парсер документов с 3,4 млрд параметров и архитектурой MoE, со встроенным спекулятивным декодированием для бюджетных GPU
Jina AI, входящая в состав Elastic, выпустила jina-ocr-v1 — сквозной визуальный парсер документов. Он принимает PDF-файлы, сканы, таблицы, графики или счета и за 1 проход возвращает чистый Markdown. Модель содержит 3,4 млрд общих параметров, из которых около 570 млн параметров декодера активны для каждого токена. В контрольную точку встроена голова спекулятивного декодирования. Jina AI создала её для работы на недорогих GPU, таких как NVIDIA L4. В техническом отчёте указаны результаты 91,14 на OmniDocBench v1.6 и 83,4 на olmOCR-Bench.
Можно ли её развернуть? Да, для исследовательского и некоммерческого использования. Открытые веса занимают около 6,8 ГБ в формате BF16 и работают с Transformers или vLLM. Лицензия CC BY-NC 4.0 означает, что для коммерческого использования необходимо связаться с Jina AI.
Что такое jina-ocr-v1?
Модель прошла постобучение на основе DeepSeek-OCR и сохраняет два его компонента эффективности. DeepEncoder содержит около 380 млн параметров и объединяет SAM, свёрточный компрессор 16x и CLIP-L. Он преобразует изображение страницы размером 1024×1024 из 4096 патчей в 256 визуальных токенов. Режим динамического разрешения добавляет до 9 локальных тайлов по 100 токенов каждый. Таким образом, страница ограничивается 1156 визуальными токенами.
Декодер представляет собой DeepSeek-3B-MoE с 12 слоями, 64 маршрутизируемыми экспертами и 2 общими экспертами. Маршрутизация Top-6 активирует около 570 млн параметров для каждого токена. Ограничение длины последовательности составляет 32 768. На выходе получается Markdown, таблицы представлены в HTML, а формулы — в LaTeX.
Как работает спекулятивное декодирование FastMTP
Результат OCR почти детерминирован и локально структурирован. Это делает его подходящим для спекулятивного декодирования. Jina AI добавляет голову FastMTP: 1 плотный блок чернового предсказания, применяемый рекурсивно в течение K=3 шагов. Параметры чернового предсказания остаются постоянными при увеличении глубины.
Затем декодер жадно проверяет черновые предсказания. Он принимает самый длинный префикс, совпадающий с его собственными решениями, и самостоятельно фиксирует ещё 1 токен. Если все 3 черновых токена совпадают, этот дополнительный токен становится бонусным. Зафиксированный текст всегда совпадает с результатом обычного жадного декодирования, поэтому ускорение не приводит к потере точности. При K=3 модель в среднем фиксирует 2,73 токена за шаг.
Постобучение с использованием проверяемых плотных вознаграждений
Постобучение объединяет выравнивание по инструкциям, дообучение устойчивости на повреждённых страницах и GRPO. Каждый компонент вознаграждения представляет собой детерминированный код, оцениваемый относительно эталонной транскрипции. Компоненты охватывают содержимое, формулы, таблицы, структурную корректность, модульные тесты, повторения и формат.
Компоненты перемножаются, и каждый из них оценивается отдельно, поэтому частично корректные страницы получают частичный балл. Для компонентов структуры, модульных тестов и формата установлен минимальный уровень 0,2, а для компонента таблиц — 0,1. Для компонента повторений минимальный уровень не установлен, поскольку циклы могут искусственно повышать оценку содержимого.
На естественных страницах вознаграждения за формулы и таблицы применяются к небольшому числу примеров. Поэтому Jina AI создала JinaOCRSynth — синтетические страницы, содержащие большое количество обоих типов элементов, каждая из которых снабжена модульными тестами в стиле olmOCR-Bench. Кроме того, агент объединяет контрольные точки-кандидаты в рамках фиксированного бюджета оценки. Голова чернового предсказания обучается последней, на замороженном финальном проверяющем модуле.
Бенчмарки и производительность
| Модель | Параметры, указанные в статье | OmniDocBench v1.6 | olmOCR-Bench |
|---|---|---|---|
| jina-ocr-v1 | 3B/570M | 91.14 | 83.4 |
| DeepSeek-OCR | 3B/570M | не указано | 76.0 |
| DeepSeek-OCR-2 | 3B/570M | 90.25 | не указано |
| PaddleOCR-VL-1.6 | 0.9B | 96.34 | не указано |
| chandra-ocr-2 | 4B | не указано | 85.8 |
| Qwen3-VL-235B | 235B/22B | 89.78 | не указано |
Для моделей MoE параметры показывают общее количество параметров декодера и количество активных параметров. Вся модель jina-ocr-v1 содержит около 3,4 млрд параметров.
Модель не лидирует по точности. PaddleOCR-VL-1.6 и HunyuanOCR-1.5 (94,74) набирают больше баллов на OmniDocBench. chandra-ocr-2 и dots.mocr (83,9) показывают более высокий результат на olmOCR-Bench. Постобучение действительно добавляет 7,4 балла по сравнению с базовой моделью DeepSeek-OCR на olmOCR-Bench.
Главный результат — производительность. На 1 A100 40 ГБ при уровне параллелизма 32 jina-ocr-v1 обрабатывает 2,57 страницы в секунду. Это самый высокий показатель среди 14 систем, измеренных Jina AI, по сравнению с 1,22 у olmOCR-2 и 0,38 у chandra-ocr-2. Модель генерирует 1085 выходных токенов на страницу. По словам Jina AI, это самый короткий результат среди систем, набирающих более 83 баллов.
На NVIDIA L4 при размере пакета 1 скорость при неторопливом декодировании возрастает с 42,7 до 83,1 токена в секунду. Это ускорение в 1,95 раза при коэффициенте принятия 57,6%. При использовании графов CUDA базовый показатель уже составляет 158,3 токена в секунду. В этом случае лучше всего работает K=1: скорость достигает 185,6 токена в секунду, что даёт прирост в 1,17 раза.
Как запустить модель
Самый быстрый способ — Jina Reader. Отправьте URL на r.jina.ai с заголовком X-Respond-With: jina-ocr-v1. Reader загрузит страницу или PDF-файл, запустит модель и вернёт Markdown. Заголовок X-Page позволяет транскрибировать 1 страницу более длинного документа.
Jina AI также предоставляет совместимую с OpenAI конечную точку по адресу https://api.jina.ai/v1/chat/completions. Для быстрых тестов доступна размещённая демонстрация.
Для самостоятельного размещения веса и пользовательский код находятся в 1 репозитории и загружаются с помощью trust_remote_code=True. Для FastMTP требуется vLLM версии 0.21 или новее и однократный вызов register(). Вариант с Transformers запускает только декодер MoE и игнорирует веса чернового предсказания.
Главные выводы
- 3,4 млрд общих параметров, около 570 млн активных параметров на токен; модель создана на основе DeepSeek-OCR.
- FastMTP создаёт черновые предсказания для 3 токенов за шаг, а жадная проверка сохраняет декодирование без потерь.
- Модель набирает 91,14 на OmniDocBench v1.6 и 83,4 на olmOCR-Bench.
- Достигает скорости 2,57 страницы в секунду на 1 A100 — это лучший результат среди 14 измеренных систем.
- Доступна на Hugging Face и через заголовок Jina Reader уже сегодня.
Ознакомьтесь с статьёй, весами модели, публикацией о выпуске, страницей модели и объявлением. Вся заслуга принадлежит исследователю этого проекта. Также подписывайтесь на нас в Twitter и не забудьте присоединиться к нашему сабреддиту по машинному обучению с более чем 150 тыс. участников и подписаться на нашу рассылку. Подождите! Вы пользуетесь Telegram? теперь вы также можете присоединиться к нам в Telegram.
Хотите стать нашим партнёром для продвижения своего репозитория GitHub, страницы на Hugging Face, выпуска продукта, вебинара и т. д.? Свяжитесь с нами
Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.