TL;DR
- Unlimited OCR — 3 Б параметров Mixture‑of‑Experts, из них активных только 500 М.
- Заменяет decoder‑attention на Reference Sliding Window Attention (R‑SWA), фиксируя размер KV‑кеша.
- Один forward‑pass обрабатывает десятки страниц при максимальной длине 32 K токенов.
- Результат — 93.23 балла на OmniDocBench v1.5, что на 6.22 пункта лучше базового DeepSeek OCR.
- Модель построена на продолжении обучения DeepSeek OCR, а не обучается с нуля.
Что такое Unlimited OCR?
Unlimited OCR использует DeepSeek OCR как основу. Сохраняет DeepEncoder и MoE‑decoder. Общий объём параметров — 3 Б, но при инференсе активируется лишь 500 М.
DeepEncoder — компрессор изображений. Сочетает SAM‑ViT‑окно с CLIP‑ViT‑глобальной вниманием, после чего происходит 16‑кратное сжатие токенов. Поэтому изображение PDF 1024×1024 превращается в всего 256 визуальных токенов, что существенно уменьшает предзаполнение.
Encoder поддерживает пять режимов разрешения; Unlimited OCR использует два: «Base» — 1024×1024 для многостраничных документов и «Gundam» — динамическое разрешение для одиночных страниц.
Как R‑SWA удерживает кеш постоянным
Стандартный Multi‑Head Attention хранит ключ и значение для каждого токена. При росте длины вывода T размер кеша растёт линейно: C₍MHA₎(T)=Lₘ+T. Это приводит к росту памяти и задержки.
Reference Sliding Window Attention меняет схему. Каждый сгенерированный токен смотрит на все референс‑токены (визуальные + prompt) и на последние n уже сгенерированных токенов (по умолчанию 128). Всё, что старше, удаляется из кеша. Размер кеша теперь:
C₍R‑SWA₎(T)=Lₘ+min(n, T) ≤ Lₘ+n. Он ограничен постоянной величиной, а при больших T отношение кеша к общему объёму стремится к нулю.
Это напоминает «мягкое забывание»: человек, переписывая книгу, время от времени смотрит только на исходный текст и последние несколько слов, а не перечитывает всё уже записанное.
Показатели и сравнение
- OmniDocBench v1.5: 93.23 балла (превосходит DeepSeek OCR на 6.22 пункта).
- Память: при 10 000 токенов вывода R‑SWA использует ~2 176 KV‑пар, тогда как обычный MHA — ~10 048.
- Сокращение потребления памяти ≈ 78 %.
- Одновременная обработка до 32 K токенов (около 125 страниц при 256 токенах на страницу).
Практические рекомендации
Если вы работаете с длинными документами (отчёты, книги, юридические тексты) и сталкиваетесь с ростом времени генерации и потребления RAM, переходите на Unlimited OCR. Он особенно полезен в следующих сценариях:
- Пакетная обработка десятков‑сотен PDF‑страниц без разбивки на отдельные запросы.
- Развёртывание OCR в ограниченных ресурсами средах (виртуальные машины, контейнеры).
- Инференс в режиме реального времени, где важна предсказуемая задержка.
Как начать использовать
Код и модели доступны в официальном репозитории Baidu:
- GitHub — Unlimited OCR
- Технический доклад: arXiv:2606.23050
- Набор данных OmniDocBench v1.5: GitHub
Для начала загрузите модель, настройте DeepEncoder в режиме «Base» при работе с многостраничными PDF и укажите желаемое значение окна n (рекомендовано 128). При инференсе модель автоматически управляет кешем, поддерживая постоянный уровень потребления памяти.
Заключение
Unlimited OCR решает классическую проблему масштабируемости OCR‑моделей, заменяя растущий KV‑кеш фиксированным. Это делает её практичным выбором для всех, кто регулярно обрабатывает большие документы и хочет сохранить быстрый и предсказуемый отклик без необходимости в дорогостоящих аппаратных решениях.


















