GLM-OCR
by zai-org
#1 document OCR at 0.9B: MIT licensed, edge-deployable
zai-org/GLM-OCRmixpeek://image_extractor@v1/zai_glm_ocr_v1Overview
GLM-OCR is a tiny (0.9B parameter) multimodal OCR model built on the GLM-V encoder-decoder architecture. Despite its small size, it ranks #1 on OmniDocBench V1.5 (94.62 overall score), outperforming models 10x its size on complex document understanding tasks including tables, formulas, handwriting, and multi-column layouts.
Its MIT license and sub-1B parameter count make it ideal for edge deployment, serverless functions, and cost-sensitive pipelines. On Mixpeek, GLM-OCR powers document text extraction for PDFs, scanned images, and screenshots where high accuracy matters more than raw throughput.
Architecture
GLM-V encoder-decoder with vision encoder (ViT variant) and autoregressive text decoder. 0.9B total parameters. Processes document images at native resolution with adaptive tiling for multi-page documents.
Mixpeek SDK Integration
// No extractor parameter takes a Hugging Face model id (checked against
// GET /v1/discovery/extractors, which returns 13), so GLM-OCR runs
// on your side and the output is upserted through POST
// /v1/namespaces/{namespace_id}/documents/upsert. On Enterprise the other
// path is to upload the weights instead: POST /v1/namespaces/{id}/models
// accepts the huggingface format and a custom plugin loads them.
const res = await fetch(
"https://api.mixpeek.com/v1/namespaces/ns_your_namespace/documents/upsert",
{
method: "POST",
headers: {
Authorization: "Bearer API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
collection_id: "col_your_collection",
documents: [
{
document_id: "asset-00412",
// The model produces text, so it lands in payload. Give the
// collection a text vector index and embed that text to make it
// searchable rather than only filterable.
payload: { extracted_text: modelOutput, source_key: "archive/2026/asset-00412" },
vectors: { "text-embedding": embeddingOfModelOutput },
},
],
}),
},
);
// Managed alternative, if this exact model is not the requirement:
// universal_extractor@v1 runs google/gemini-embedding-2
// (3072-d) over a bucket, with no inference of your own.Capabilities
- #1 on OmniDocBench V1.5 (94.62 overall)
- Tables, formulas, handwriting, multi-column layout support
- Only 0.9B parameters: runs on edge devices and serverless
- MIT license for unrestricted commercial use
Use Cases on Mixpeek
Benchmarks
| Dataset | Metric | Score | Source |
|---|---|---|---|
| OmniDocBench V1.5 (overall) | Score | 94.62 | ZAI, 2026: Model Card |
Performance
Common Pipeline Companions
Explore on Mixpeek
Compare alternatives in this category
Hand-picked tools & platforms compared
Deep-dive technical guide
See how Mixpeek runs models as extractors
Store & search embeddings at scale
Usage-based pricing for pipelines
Compare models, APIs & infrastructure
Specification
Research Paper
GLM-OCR: A Compact Multimodal OCR Model
arxiv.orgBuild a pipeline with GLM-OCR
Add this model to a processing pipeline alongside other extractors. Combine with retrieval stages for end-to-end search.
Run it on your own data, free