/ Модель

Характеристики

Контекст
655 380 токенов
Лицензия
MIT
Архитектура
glm_ocr · dense
Базовая модель
GLM-OCR
Библиотека
transformers
Опубликована
7 сен 2026

GravityOCR

Изображение и текст → текст12 профессий

Дообученная на базе GLM-OCR модель распознаёт текст, таблицы и формулы в изображениях документов и поддерживает ускоренное самоспекулятивное декодирование.

215скачиваний за 30 дней4лайкавеса обновлены21 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Изображение → текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

GravityOCR — дообученная модель trillionlabs на базе zai-org/GLM-OCR для распознавания текста и разбора документов по изображениям. Она использует архитектуру GlmOcrForConditionalGeneration с визуальным энкодером CogViT и текстовым декодером 0,5 млрд параметров; веса сохранены в формате bf16. Модель принимает изображение с запросом на распознавание текста, таблицы или формулы и выдаёт текст, HTML таблицы либо LaTeX формулы.

Модель предназначена для OCR документов с обработкой отдельных областей страницы; для целых страниц README указывает на предварительное обнаружение макета. В режиме авторегрессивного декодирования она совместима с обычным конвейером GLM-OCR. Основное отличие — самоспекулятивное декодирование: модель черновым блоком предсказывает несколько токенов и проверяет их собственным авторегрессивным путём. На OmniDocBench v1.6 автор сообщает ускорение страниц в секунду в 1,32 раза относительно авторегрессивного режима при том же итоговом балле.

Дообучение было преимущественно на английском; для китайского заявлен уровень базовой GLM-OCR. Лицензия — MIT. Самоспекулятивный режим требует кода репозитория и специальной настройки сервинга; результаты по скорости приведены для одного H100 и конкретного бенчмарка.

Сценарии применения

  • извлечение текста из сканов документов
  • распознавание таблиц с выдачей HTML
  • распознавание формул с выдачей LaTeX
  • OCR отдельных областей страницы
  • ускорение пакетной обработки документных изображений

Ограничения

Дообучение преимущественно ориентировано на английский; китайский работает на уровне базовой модели. Для обработки полной страницы сначала нужен детектор макета, а самоспекулятивный режим требует специальной настройки сервинга.

Для каких профессий подходит12

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

GravityOCR

Diffusion Drafts, AR Verifies: Accelerating Document OCR with Self-Speculative Decoding

Code Tech Report License

One set of weights drafts a whole block of tokens with block diffusion and verifies it with its own autoregressive path — the AR output, several tokens per forward pass.

Results

OmniDocBench v1.6, official protocol. Speed: SGLang, one H100, batch size 1.

ModelDecodeOverall ↑Tokens / forward ↑Pages / s ↑
GLM-OCR (base)AR95.481.00.571
GravityOCRAR95.161.00.554
GravityOCRself-speculative95.169.70.730
  • 1.32× more pages per second than the AR path, identical output → same score.
  • On region crops: 3.94× decode-only, 1.74× end to end.
  • Under bf16 serving kernels the two paths agree exactly on 96.6% of crops; the rest are floating-point tie-breaks.

See it decode

Use

Autoregressive decoding — stock transformers, nothing else needed

from transformers import AutoProcessor, GlmOcrForConditionalGeneration
import torch
from PIL import Image

repo = "trillionlabs/GravityOCR"
processor = AutoProcessor.from_pretrained(repo)
model = GlmOcrForConditionalGeneration.from_pretrained(repo, torch_dtype=torch.bfloat16, device_map="cuda")

image = Image.open("page_region.png").convert("RGB")
messages = [{"role": "user", "content": [{"type": "image", "image": image},
                                         {"type": "text", "text": "Text Recognition:"}]}]
inputs = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=True,
                                       return_dict=True, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=4096, do_sample=False)
print(processor.decode(out[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True))

Prompts follow GLM-OCR: Text Recognition:, Table Recognition: (HTML), Formula Recognition: (LaTeX). The model reads one layout region per request — full pages go through a layout detector first, as in the GLM-OCR SDK. Fine-tuning was predominantly English; Chinese works at the base model's level.

Self-speculative decoding — the point of the model

Needs the code repository; same weights, same output, ~9.7 tokens per forward pass.

  • Serve: SGLang v0.5.12 + patches/sglang/, then bash serve/serve_sglang_ocr.sh MODE=spec CKPT=trillionlabs/GravityOCR — an OpenAI-compatible endpoint (MODE=ar serves the same checkpoint autoregressively for a direct comparison).
  • In process: python src/infer_omnidocbench.py --checkpoint trillionlabs/GravityOCR --spec_natcache ...

Both are written out step by step in the repository's AGENTS.md.

Model details

  • Architecture: GlmOcrForConditionalGeneration — CogViT vision encoder + 0.5B text decoder, unchanged from GLM-OCR, so the checkpoint is a drop-in replacement in any AR pipeline.

  • Files: model.safetensors (bf16, 2.2 GB), processor and tokenizer, and block_diffusion.json:

    {"bd_size": 32, "mask_id": 59282, "ar_loss_weight": 1.0, "mask_schedule": "uniform", ...}
    

    bd_size — block size the model was trained with (serve with the same value) · mask_id — the <|mask|> token used for drafting · ar_loss_weight > 0 — the checkpoint has a trained AR path and can verify its own drafts.

Citation

@techreport{gravityocr2026,
  title  = {Diffusion Drafts, AR Verifies: Accelerating Document OCR with Self-Speculative Decoding},
  author = {Trillion Labs},
  year   = {2026}
}

License

MIT, inheriting GLM-OCR's MIT license.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
GlmOcrForConditionalGeneration
Ревизия весов
bdbe9ab

0 моделей