Jina AI випустила jina-ocr-v1: парсер документів із 3,4 млрд параметрів та архітектурою MoE, із вбудованим спекулятивним декодуванням для бюджетних GPU
Jina AI, що входить до складу Elastic, випустила jina-ocr-v1 — наскрізний візуальний аналізатор документів. Він приймає PDF-файли, скани, таблиці, діаграми або рахунки-фактури та повертає чистий Markdown за 1 прохід. Модель має загалом 3,4 млрд параметрів, із приблизно 570 млн активних параметрів декодера на кожен токен. Головка спекулятивного декодування вбудована безпосередньо в чекпойнт. Jina AI створила її для роботи на недорогих графічних процесорах, таких як 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 і зберігає 2 його компоненти ефективності. DeepEncoder має близько 380 млн параметрів і поєднує SAM, згортковий компресор 16x та CLIP-L. Він перетворює подання сторінки розміром 1024×1024 із 4 096 патчів на 256 візуальних токенів. Режим динамічної роздільної здатності додає до 9 локальних плиток по 100 токенів кожна. Таким чином, сторінка містить не більше 1 156 візуальних токенів.
Декодер — це 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: для olmOCR-2 він становить 1,22, а для chandra-ocr-2 — 0,38. Модель генерує 1 085 вихідних токенів на сторінку. За словами 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, випуску продукту, вебінару тощо? Зв’яжіться з нами
Перекладено автоматично з англійської. Оригінал статті — за посиланням нижче.