
文档 OCR 领域正在经历一场参数量军备竞赛——Qwen3-VL 用 235B 参数拿到 89 分,Gemini-3 Pro 拿到 90 分。但 OmniDocBench V1.5 榜单的第一名 GLM-OCR,参数量只有 0.9B。
就在上周(3 月 11-12 日),智谱连续发布了两个更新:技术报告上线 arXiv,揭示了 Multi-Token Prediction 每步预测 10 个 token、吞吐量提升约 50% 的机制,以及全任务 GRPO 强化学习的完整设计;SDK 新增 Agent Skill 模式,一行代码即可将 GLM-OCR 接入 AI Agent 作为文档理解工具。
本文先介绍刚上线的 Agent Skill 集成方式,然后深入拆解技术报告中的关键设计。
AI Agent 在处理实际业务时,经常需要理解文档——读合同、解析票据、提取表格数据。但 Agent 本身不擅长 OCR,需要外接专门的工具来"看"文档。此前这意味着单独部署 OCR 服务、编写格式转换和调用胶水代码。Agent Skill 模式的价值在于把这个过程简化到一行代码:Agent 传入文档,GLM-OCR 返回结构化数据,中间不需要额外配置。
3 月 12 日的 SDK 更新(v0.1.2)新增了这一模式,核心目标是让 GLM-OCR 可以被 AI Agent 或 MCP Server 零配置调用。
import json
import glmocr
def ocr_tool(image_path: str) -> str:
"""Parse a document and return structured JSON."""
result = glmocr.parse(image_path)
return result.to_json()只需要在环境中设置 GLMOCR_API_KEY,不需要编写 YAML 配置文件。SDK 会自动走 MaaS 模式,将请求转发到智谱云端 API 并返回结构化结果。
模式 | 是否需要 GPU | 适用场景 |
|---|---|---|
MaaS | 不需要 | Agent 集成推荐,云端处理 |
Self-hosted | 需要 | 数据敏感场景,本地 vLLM/SGLang 部署 |
当提供 api_key 但未指定 mode 时,SDK 自动默认 MaaS 模式。
SDK 的配置解析遵循一个清晰的优先级链:
构造函数参数 > 环境变量 > .env 文件 > config.yaml > 内置默认值Agent 可以通过构造函数参数覆盖各项设置,不需要接触配置文件。所有环境变量使用 GLMOCR_ 前缀(如 GLMOCR_API_KEY、GLMOCR_MODE)。
PipelineResult 提供三种输出方式,方便 Agent 处理:
to_dict() — JSON 可序列化的 Python 字典to_json() — JSON 字符串save(output_dir) — 写入文件(JSON + Markdown + 裁剪图片)这个设计使 GLM-OCR 可以作为文档理解 Agent 的"眼睛"——Agent 负责决策和编排,GLM-OCR 负责将文档转为结构化数据。

图片来源于原论文

图片来源于原论文
技术报告揭示了 GLM-OCR 的完整架构设计。模型总参数量 0.9B,由三个组件构成:
组件 | 参数量 | 职责 |
|---|---|---|
CogViT 视觉编码器 | 0.4B | 在数百亿级图文对上通过 MIM + CLIP 双任务预训练,并从更大的内部 ViT 蒸馏知识 |
轻量跨模态连接器 | — | token 下采样,连接视觉与语言空间 |
GLM-0.5B 语言解码器 | 0.5B | 基于 ChatGLM,生成 OCR 结果文本 |
系统分两个任务路径:
任务 1:文档解析
文档图像 → PP-DocLayout-V3(版面检测 + 区域裁剪)→ 各区域并行送入 GLM-OCR Core → 合并 & 后处理 → Markdown + JSONPP-DocLayout-V3 将文档拆分为段落、表格、公式等区域,各区域独立识别后按阅读顺序合并。并行处理降低了单次输入的复杂度,也减少了幻觉风险。
任务 2:信息抽取(KIE)
完整文档图像 + JSON Schema 提示 → GLM-OCR Core → 结构化 JSON信息抽取跳过版面分析,直接将完整图像和 JSON 格式要求一起送入模型。

图片来源于原论文
MTP 是技术报告中最值得关注的设计。
标准自回归解码每步只生成一个 token,但 OCR 是确定性较强的任务——给定图像区域,输出文本的不确定性远低于开放式对话。特别是结构化标记(表格标签、Markdown 语法)具有很强的局部依赖性,适合一次预测多个 token。
在主预测头之外,附加 k 个共享参数的辅助预测头,同时预测未来 k 个 token。关键设计:
MTP 从预训练阶段引入,贯穿 SFT 阶段。
技术报告指出 MTP 还有一个训练效益:鼓励模型"看得更远",在生成结构化输出时产生更少的断裂标签和更稳定的格式。
GLM-OCR 在 SFT 之后加入了基于 GRPO(Group Relative Policy Optimization)的强化学习阶段,覆盖四类任务,每类有专门设计的奖励函数:
任务 | 准确性奖励 | 额外约束 |
|---|---|---|
文本识别 | 归一化编辑距离 | 重复惩罚 |
公式识别 | CDM 分数 | 结构有效性检查 |
表格识别 | TEDS 分数 | 标签闭合验证、结构解析 |
信息抽取 | 字段级 F1 分数 | JSON 解析验证、缺失/重复字段惩罚 |
此外还有全局正则化:重复率惩罚和结构异常惩罚。
训练样本通过 SFT 模型 rollout 生成,自动评估后按难度分层构建优化集。这种分层策略使 RL 训练更稳定,避免在简单样本上浪费优化资源。
以下摘录 GLM-OCR 与几个关键对手在各维度上的数据:
模型 | 参数量 | 综合 | 文本 Edit↓ | 公式 CDM | 表格 TEDS | 阅读顺序 Edit↓ |
|---|---|---|---|---|---|---|
GLM-OCR | 0.9B | 94.62 | 0.040 | 93.90 | 93.96 | 0.044 |
PaddleOCR-VL-1.5 | 0.9B | 94.50 | 0.035 | 94.21 | 92.76 | 0.042 |
Gemini-3 Pro | — | 90.33 | 0.065 | 89.18 | 88.28 | 0.071 |
Qwen3-VL | 235B | 89.15 | 0.069 | 89.18 | 88.14 | 0.068 |
GPT-5.2 | — | 85.50 | 0.123 | 86.11 | 82.66 | 0.099 |
dots.ocr | 3B | 88.41 | 0.048 | 83.22 | 86.78 | 0.053 |
MinerU2.5 | 1.2B | 90.67 | 0.047 | 88.46 | 88.22 | 0.044 |
几个值得注意的点:
除了公开基准,技术报告还在内部测试集上做了评测,覆盖代码文档、实际表格、手写体、多语言、印章、票据等场景:
场景 | GLM-OCR | PaddleOCR-VL-1.5 | Gemini-3 Pro |
|---|---|---|---|
代码文档 | 84.7 | 75.8 | 86.9 |
实际表格 | 91.5 | 86.1 | 90.6 |
手写体 | 87.0 | 87.4 | 90.0 |
多语言 | 69.3 | 54.8 | 86.2 |
印章识别 | 90.5 | 42.2 | 91.3 |
票据 KIE | 94.5 | — | 97.3 |
在印章识别上,GLM-OCR(90.5)大幅超越 PaddleOCR-VL-1.5(42.2),与 Gemini-3 Pro(91.3)接近。多语言场景(支持中英法西俄德日韩 8 种语言)也有较大优势。

图片来源于原论文
模型 | 图片(页/秒) | PDF(页/秒) |
|---|---|---|
GLM-OCR | 0.67 | 1.86 |
PaddleOCR-VL-1.5 | 0.39 | 1.22 |
Deepseek-OCR2 | 0.32 | — |
MinerU2.5 | 0.18 | 0.48 |
dots.ocr | 0.10 | — |
GLM-OCR 的处理速度在同类模型中最快,PDF 处理速度约为 PaddleOCR-VL-1.5 的 1.5 倍,MinerU2.5 的 3.9 倍。
GLM-OCR 技术报告最有价值的两个贡献:
当前局限:
项目信息:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。