WeVisDoc — открытая модель от Tencent для сквозного разбора документов: подаёшь на вход картинку страницы, получаешь на выходе структурированный Markdown с формулами в LaTeX и таблицами в HTML. Модель дообучена на базе Qwen3-VL-2B-Instruct и Qwen3-VL-4B-Instruct, лежит на GitHub под лицензией Apache-2.0, и развернуть её можно у себя — своим сервером через vLLM или локально через Transformers. Подойдёт тем, кому нужен распознаватель сканов, научных статей и отчётов без отправки файлов в чужое облако.
Логика простая: одна модель делает всё сразу — читает текст, определяет порядок чтения, собирает таблицы и формулы. Не нужно склеивать пайплайн из детектора блоков, OCR и отдельного распознавателя таблиц. На вход примет PNG, JPEG или WebP, так что PDF придётся заранее отрендерить в страницы-картинки. Результат пишется в отдельный Markdown-файл на каждое изображение.
Версий две — 2B и 4B. По замерам авторов WeVisDoc-4B набирает 95.38 Overall на OmniDocBench v1.6 и 75.54 в среднем по трём трекам PureDocBench, обгоняя сравниваемые end-to-end парсеры во всех четырёх сетапах. Младшая 2B почти догоняет старшую на OmniDocBench — 95.06 против 95.38, — но на треке Real Degraded отстаёт заметнее: 65.60 против 69.08. Зато модель вдвое меньше по числу параметров, а значит и железа попросит скромнее — разумный выбор, если GPU одна и не самая топовая. Сам PureDocBench собран из трёх треков: Clean, Digital Degraded и Real Degraded, и на каждом из них WeVisDoc-4B идёт первым среди сравниваемых парсеров.
Запуск рассчитан на Python 3.10+ и vLLM от версии 0.11.1. Сервер поднимается одним скриптом, клиент общается с ним по OpenAI-совместимому API, поэтому встроить разбор в свой бэкенд можно без переписывания логики. Настраивается почти всё через переменные окружения:
- TENSOR_PARALLEL_SIZE — сколько GPU задействовать под тензорный параллелизм;
- MAX_MODEL_LEN — общий бюджет контекста на текст, картинку и вывод, по умолчанию 32768;
- GPU_MEMORY_UTILIZATION и MAX_NUM_SEQS — доля видеопамяти и число одновременных запросов;
- VLLM_API_KEY — если сервис выставляется в сеть и нужна авторизация.
Клиент умеет работать как с одним файлом, так и с целой папкой, параллельно в несколько воркеров; уже готовые результаты по умолчанию пропускает, пока не укажешь --overwrite. Меняются также таймаут, температура (по умолчанию 0) и лимит токенов (8192) — если вывод обрезается на длинных страницах, лимит стоит поднять. Не хватает видеопамяти — уменьшай размер картинок, контекст или число потоков. Локальный режим через Transformers работает без сервера, но авторы просят держать его в отдельном виртуальном окружении, чтобы не конфликтовали сборки PyTorch.
Денег сервис не просит: это репозиторий с кодом и весами, платить придётся только за железо или аренду GPU. Взамен — полный контроль над данными и возможность гонять документы пакетами без лимитов на страницы.