Исследователи из Baidu представили Unlimited-OCR — модель для распознавания документов, которая работает с одним изображением, многостраничными файлами и PDF. Разработчики называют её следующим шагом после Deepseek-OCR. Статья уже выложена на arXiv, а саму модель можно загрузить с Hugging Face и ModelScope.
Главная фишка Unlimited-OCR — два режима обработки: «gundam» и «base». В режиме gundam изображение сжимается до 640 пикселей, включается нарезка на куски (crop_mode=True), и модель парсит текст с максимальной длиной до 32768 токенов. В режиме base картинка остается 1024×1024, нарезка отключена — это для страниц целиком и PDF. Для многостраничных документов используется только base.
В основе работы — связка PyTorch (2.10.0) с Huggingface Transformers и SGLang для инференса. Разработчики советуют запускать модель на NVIDIA GPU c CUDA 12.9. Для PDF нужно конвертировать страницы в PNG через PyMuPDF (fitz) с DPI 300 — скрипт pdf_to_images делает это автоматически во временную папку.
Есть два способа запуска. Первый — прямой инференс через Python: загружаешь модель с AutoModel.from_pretrained('baidu/Unlimited-OCR'), передаёшь промт (<image>document parsing.), путь к файлу и настройки. Второй — через SGLang server, который поднимается на порту 10000 и принимает запросы по OpenAI-совместимому API. Для стриминга используется кастомный DeepseekOCRNoRepeatNGramLogitProcessor с ngram_size=35 и настраиваемым окном (128 для gundam, 1024 для base).
Для пакетной обработки есть скрипт infer.py — он сам запускает сервер SGLang, принимает директорию с картинками или PDF и отправляет запросы c заданной конкурентностью (по умолчанию 8 потоков). Полезные опции: --gpu для выбора CUDA-устройства, --model_dir для локального пути, --server_log для логов.
Авторы благодарят сообщества Deepseek-OCR, Deepseek-OCR-2 и PaddleOCR за идеи и наработки. Полный список разработчиков — Юянг Йин, Хуанхуан Лю и другие — указан в препринте на arXiv.