Статьи · arXiv 2606.23050
Unlimited OCR Works
Опубликовано cs.CVcs.CL arXivPDF
Кратко в трёх строках
- 🎯 Стандартные OCR-декодеры на базе LLM страдают от линейного роста KV-кэша и падения скорости при транскрипции длинных многостраничных документов.
- 🔧 Применяется Reference Sliding Window Attention (R-SWA): генерируемые токены глобально обращают внимание на все префиксные/визуальные токены, сохраняя лишь константное причинное окно недавних выходов ().
- 📈 Достигает 93,23% в общем зачете OmniDocBench v1.5 (+6,22% по сравнению с DeepSeek OCR) и сохраняет стабильную задержку генерации на длинных последовательностях.
Аннотация
В последнее время сквозные (end-to-end) модели OCR, ярким примером которых является DeepSeek OCR, вновь привлекли всеобщее внимание к задаче распознавания текста. Широко распространено мнение, что использование большой языковой модели (LLM) в качестве декодера позволяет задействовать априорное распределение языка, что повышает качество OCR. Однако недостаток столь же очевиден: по мере удлинения выходной последовательности накапливающийся KV-кэш увеличивает потребление памяти и постепенно замедляет генерацию. Это резко контрастирует с возможностями человека, у которого не наблюдается подобного падения эффективности при длительном переписывании текстов. В данном техническом отчете мы предлагаем Unlimited OCR — модель, разработанную для имитации рабочей памяти человека при парсинге. Взяв DeepSeek OCR за основу, мы заменяем все слои внимания в декодере на предложенный нами механизм Reference Sliding Window Attention (R-SWA), который снижает вычислительные затраты на внимание, поддерживая константный размер KV-кэша на протяжении всего процесса декодирования. Благодаря сочетанию высокого коэффициента сжатия энкодера DeepSeek OCR и нашей архитектуры с константным KV-кэшем, Unlimited OCR способна транскрибировать десятки страниц документов за один прямой проход в рамках стандартного лимита длины в 32K. Что еще важнее, R-SWA представляет собой универсальный механизм внимания для задач парсинга: помимо OCR, он в равной степени применим к ASR, машинному переводу и другим задачам. Код и веса модели находятся в открытом доступе по адресу http://github.com/baidu/Unlimited-OCR.
Оригинальная аннотация (англ.)
Recently, end-to-end OCR models, exemplified by DeepSeek OCR, have once again thrust OCR into the spotlight. A widely held view is that employing a large language model (LLM) as the decoder allows the model to leverage the prior distribution of language, leading to improved OCR performance. However, the downside is equally evident: as the output sequence lengthens, the accumulated KV cache drives up memory consumption and progressively slows down generation. This stands in stark contrast to humans, who exhibit no such decline in efficiency during long-horizon copying tasks. In this technical report, we propose Unlimited OCR, a model designed to emulate human parsing working memory. Taking DeepSeek OCR as the baseline, we replace all attention layers in the decoder with our proposed Reference Sliding Window Attention (R-SWA), which reduces attention computation costs while maintaining a constant KV cache throughout the entire decoding process. By combining the high compression rate of DeepSeek OCR's encoder with our constant KV cache design, Unlimited OCR can transcribe dozens of pages of documents in a single forward pass under a standard maximum length of 32K. More importantly, R-SWA is a general-purpose parsing attention mechanism - beyond OCR, it is equally applicable to tasks such as ASR, translation, etc. Codes and model weights are publicly available at http://github.com/baidu/Unlimited-OCR.
Разбор статьи
Проблема и мотивация
Человек способен непрерывно переписывать сотни страниц или переводить часы аудиозаписей без снижения скорости, используя рабочую память для отслеживания локального контекста, пока исходный материал остается доступным. В отличие от этого, современные мультимодальные большие языковые модели (MLLM) и плотные OCR-системы испытывают трудности при длительном парсинге (long-horizon parsing). Существующие системы обычно обрабатывают многостраничные документы постранично в цикле for-loop, сбрасывая память на каждом шаге, что является инженерным обходным решением, а не истинной непрерывной обработкой.
Когда сквозные модели пытаются генерировать длинные последовательности, стандартное многоголовое внимание (MHA) накапливает key-value (KV) кэш линейно с ростом длины вывода . Это приводит к постоянному росту потребления памяти GPU и деградации задержки. Модели с линейным вниманием и рекуррентными обновлениями также терпят неудачу, поскольку рекуррентные обновления состояния постепенно размывают визуальные опорные признаки.
Ключевые идеи
- Reference Sliding Window Attention (R-SWA): Генерируемые токены глобально обращают внимание на все статические префиксные опорные токены (визуальные представления и инструкции), обращаясь локально только к предшествующим выходным токенам ( по умолчанию).
- Константный KV-кэш декодирования: За счет вытеснения токенов старше из буфера генерации через очередь FIFO объем кэша декодирования строго ограничен сверху величиной , что гарантирует постоянную задержку на шаг и фиксированное потребление памяти GPU.
- Визуальный префикс высокой степени сжатия: В сочетании с DeepEncoder из DeepSeek OCR (который сжимает изображение в 16 раз до 256 токенов) десятки страниц могут быть обработаны на этапе prefill за один проход без превышения стандартных лимитов контекста.
Метод
Unlimited OCR построена на базе DeepSeek OCR, сохраняя ее замороженный DeepEncoder (каскад SAM-ViT и CLIP-ViT) в паре с декодером LLM типа Mixture-of-Experts (MoE) на 3B параметров (активирующим 500M параметров). Все стандартные слои MHA в декодере заменены на R-SWA.
Математическая формулировка
Для генерируемого токена на шаге декодирования доступное множество внимания состоит из двух сегментов:
где — статический префиксный сегмент длины , а — причинное скользящее окно по сгенерированным токенам:
Вес внимания от токена к позиции равен:
Выходное представление агрегируется по доступному множеству:
Масштабирование KV-кэша
В то время как стандартное MHA масштабируется линейно с длиной декодирования (), R-SWA ограничивает емкость кэша:
Когда декодирование доминирует ( и ), относительное соотношение размеров кэша стремится к нулю:
Результаты
- OmniDocBench v1.5: Unlimited OCR достигает общего балла 93,23% (абсолютный прирост 6,22% по сравнению с DeepSeek OCR с ее 87,01%), снижая редакционное расстояние текста (Text Edit Distance) с 0,073 до 0,038 и повышая метрику таблиц TEDS с 84,97% до 90,93%.
- OmniDocBench v1.6: Достигает 93,92% в общем зачете, соответствуя или превосходя современные сквозные модели, такие как Qianfan-OCR (93,90%) и FireRed-OCR (93,26%).
- Скорость инференса: В тестах OmniDocBench Unlimited OCR обеспечивает 5 580 TPS по сравнению с 4 951 TPS у DeepSeek OCR (ускорение на 12,7%). При теоретической максимальной конкурентности на 6 144 сгенерированных токенах Unlimited OCR достигает 7 847,71 TPS, тогда как DeepSeek OCR проседает до 5 822,87 TPS (разрыв в производительности составляет 35%).
- Многостраничный OCR длинных документов: При оценке на многостраничных книгах Unlimited OCR достигает Edit Distance 0,0362 на 2 страницах, 0,0572 на 20 страницах и 0,1069 на 40+ страницах (сохраняя 96,90% Distinct-35).
Ограничения и открытые вопросы
- Узкое место фазы Prefill: Текущая модель по-прежнему ограничена максимальной длиной входного контекста (32K токенов). Хотя DeepEncoder сжимает одну страницу до 256 токенов, сотни страниц по-прежнему занимают значительный объем памяти на этапе prefill.
- Ухудшение распознавания мелкого текста: В многостраничных сценариях использование режима Base с разрешением 1024×1024 в DeepEncoder приводит к ошибкам распознавания шрифтов мелкого кегля из-за ограничений разрешения, а не из-за потери окна внимания.
- Внешний пул Prefill: Будущие исследования направлены на обучение на контексте в 128K и создание автономного механизма динамической подгрузки KV-кэша фазы prefill, имитирующего перелистывание страниц.
Ключевые термины
- Reference Sliding Window Attention (R-SWA)
- Механизм внимания, в котором каждый декодируемый токен обращает глобальное внимание на все статические префиксные/визуальные токены и локальное — на предшествующие сгенерированных токенов.
- DeepEncoder
- Визуальный энкодер, объединяющий SAM-ViT и CLIP-ViT, который обеспечивает 16-кратное сжатие токенов, сжимая изображение 1024x1024 в 256 визуальных токенов.
- Constant KV Cache
- Структура кэша декодирования, ограниченная токенами с использованием очереди вытеснения FIFO, сохраняющая постоянное потребление памяти GPU и фиксированную задержку на шаг.
- Long-horizon Parsing
- Непрерывная транскрипция или парсинг многостраничных документов (например, от 20 до 40+ страниц) за один непрерывный прямой проход модели.
- OmniDocBench
- Комплексный бенчмарк парсинга документов, оценивающий редакционное расстояние текста, CDM формул, структуру таблиц (TEDS) и порядок чтения.
- Flash Attention v3 Kernel Latency
- Время выполнения ядра внимания на один шаг при декодировании, которое растет линейно в стандартном MHA, но остается постоянным при R-SWA.
- Distinct-n
- Метрика разнообразия, определяемая как отношение уникальных n-грамм к общему числу n-грамм; используется для выявления галлюцинаций или зацикливаний при генерации.
Вопросы
Какова ширина скользящего окна $n$ по умолчанию в Unlimited OCR?
Причинное окно декодирования по умолчанию равно 128 токенам, чего достаточно для отслеживания прогресса и связности текста внутри страницы.
Чем R-SWA отличается от классического Sliding Window Attention (SWA)?
Классическое SWA применяет локальное окно ко всем токенам подряд, что привело бы к отбрасыванию или прогрессирующему размытию визуальных опорных токенов. R-SWA сохраняет все визуальные/префиксные токены глобально доступными без смены состояний, смещая окно только по генерируемому тексту.
Сколько параметров активируется при инференсе?
Unlimited OCR использует MoE-архитектуру с 3B параметров в сумме, из которых во время инференса активируются только 500M.
Почему DeepSeek OCR замедляется по мере роста длины вывода, а Unlimited OCR — нет?
DeepSeek OCR опирается на стандартное MHA, где размер KV-кэша растет вместе с длиной последовательности, увеличивая накладные расходы на вычисление внимания и память. Unlimited OCR поддерживает постоянный размер KV-кэша, равный , сохраняя фиксированную задержку на шаг генерации.
Обзор на этой странице написан ИИ по тексту статьи и может содержать ошибки. Подробности смотрите в самой статье.