Поддержка Unlimited-OCR в vLLM: парсинг длинных документов и фиксированный KV-кэш
Unlimited-OCR теперь можно запускать через vLLM. Разбираем, что дает фиксированный KV-кэш, какие метрики заявляют авторы и где остаются ограничения.
Интеграция в популярный движок инференса
Проект PaddlePaddle в социальной сети X обратил внимание на обновление от сообщества vLLM: модель Unlimited-OCR от Baidu теперь поддерживается в этом фреймворке. В своем сообщении разработчики PaddlePaddle поблагодарили команду vLLM за помощь в адаптации модели и расширении доступа к эффективному OCR для длинных контекстов. В цитируемом посте проекта vLLM подтверждается, что Unlimited-OCR теперь работает в их движке и нацелена на парсинг длинных документов и книг за один проход.
Для ML-инженеров, разработчиков продуктов document-AI и технических основателей, выбирающих стек для анализа документов, это обновление меняет статус проекта. Unlimited-OCR переходит из категории исследовательского артефакта, представленного в виде научной статьи и весов модели, в инструмент с задокументированным путем сервинга. Ранее веса были опубликованы на платформе Hugging Face, где в логе релизов отмечено добавление поддержки vLLM, а также приведены ссылки на репозиторий GitHub, ModelScope и Spaces.
Теперь команды могут тестировать OCR-модель для длинных документов в знакомом движке инференса, с меньшим объемом собственного кода вокруг демо-запуска. Главное практическое следствие этой новости заключается не просто в появлении очередного бенчмарка OCR, а в том, что заявленные возможности парсинга длинных документов теперь подкреплены рабочим рецептом и интеграцией в мейнстримный фреймворк.
Проблема длинного контекста и механизм R-SWA
Техническая актуальность интеграции связана с задачей long-horizon OCR: распознаванием объемных документов целиком. Классические системы OCR и многие конвейеры на базе визуально-языковых моделей проще проектировать и контролировать при постраничной обработке. При попытке парсинга длинных документов системы на базе LLM-декодеров сталкиваются с серьезными ограничениями: длинные выходные последовательности создают нагрузку на память и увеличивают задержку. По мере генерации текста растет объем потребляемой памяти под KV-кэш, что в итоге замедляет процесс вывода.
В техническом отчете на arXiv под названием "Unlimited OCR Works: Welcome the Era of One-shot Long-horizon Parsing" исследователи из Baidu предлагают решение этой проблемы. Они используют архитектурный механизм Reference Sliding Window Attention, или R-SWA. Согласно статье, этот механизм заменяет стандартный слой внимания декодера. Заявлено, что R-SWA позволяет зафиксировать размер KV-кэша на этапе декодирования. Таким образом, механизм должен предотвращать рост потребления памяти и сохранять пропускную способность по мере увеличения длины сгенерированного текста.
Требования к сервингу и конфигурация vLLM
Переход к практическому использованию описан в официальном рецепте vLLM для Unlimited-OCR. Документация описывает модель как решение от Baidu, оптимизированное для полностраничного OCR и генерации разметки Markdown.
Рецепт содержит конкретные требования к сервингу, выполнение которых необходимо для корректной работы пайплайна. Приложению требуется использовать выделенный образ vLLM и подключить n-gram logits processor. Формат входных данных строго регламентирован: пользовательский промпт должен начинаться с тега `<image>`.
Кроме того, документация предписывает передавать специфические аргументы процессора на уровне каждого отдельного запроса. Также требуется устанавливать параметр `skip_special_tokens=False`. Наличие этих инструкций делает анонс в X проверяемым инженерным маршрутом, а не только ссылкой на модельные веса: разработчик видит, какие параметры нужно выставить, чтобы воспроизвести работу Unlimited-OCR через API vLLM.
Заявленные метрики и ограничения архитектуры
В публикациях vLLM, Baidu и в оригинальном препринте приводится ряд метрик производительности. Авторы утверждают, что модель способна транскрибировать более 40 страниц за один проход, укладываясь в максимальный бюджет контекста в 32K токенов. По заявлениям исследователей, в их тестовом окружении на отметке в 6000 выходных токенов Unlimited-OCR работает на 35% быстрее, чем DeepSeek-OCR, сохраняя при этом константный показатель пропускной способности и неизменный объем потребляемой видеопамяти.
Несмотря на наличие модели в vLLM и опубликованные веса, перед использованием системы в рабочих задачах необходимо учитывать несколько ограничений. Во-первых, название "Unlimited" не следует воспринимать буквально. В самом техническом отчете авторы прямо указывают, что по-настоящему безлимитный парсинг остается недостижимым: система по-прежнему ограничена конечной длиной контекста и лимитами фазы предварительной обработки.
Во-вторых, заявленные показатели производительности, включая парсинг десятков страниц, преимущество в скорости на 35% и константный TPS, являются метриками из тестов авторов статьи. Эти данные требуют независимой проверки ML-инженерами на собственных наборах документов. Интеграция в vLLM предоставляет удобный инструмент для такой проверки, однако сама по себе не гарантирует готовности модели к production-нагрузкам без предварительного тестирования.
Try this workflow in SotaOCR
Upload a document in the OCR playground or wire the asynchronous API into an agent pipeline.