智谱开源基于GLM-V编码器-解码器架构的多模态OCR模型——GLM-OCR

简介

GLM-OCR是一款基于GLM-V编码器-解码器架构的多模态OCR模型,专注于复杂文档理解。该模型通过引入多令牌预测(MTP)损失和稳定的全任务强化学习,显著提升了训练效率、识别准确率和泛化能力。其核心架构包含基于大规模图文数据预训练的CogViT视觉编码器、采用高效令牌降采样的轻量级跨模态连接器,以及GLM-0.5B语言解码器。结合基于PP-DocLayout-V3的两阶段流程(版面分析+并行识别),GLM-OCR能在各类文档布局场景中提供稳定优质的OCR性能。

核心优势

  • 顶尖性能表现:在OmniDocBench V1.5评测中获得94.62分综合排名第一,在公式识别、表格识别、信息抽取等主流文档理解任务中均达到SOTA水平

  • 真实场景优化:针对实际业务场景进行专项设计和优化,在复杂表格、代码密集文档、印章等具有挑战性的真实版面中保持稳健表现

  • 高效推理部署:仅0.9B参数量,支持通过vLLM/SGLang/Ollama等多种方案部署,显著降低推理延迟和计算成本,适合高并发服务和边缘端部署

  • 开箱即用体验 :完全开源并配备完整SDK和推理工具链,提供简易安装、单行调用能力,可快速接入现有生产流程

使用指南

vLLM方案

  1. 安装依赖:
bash 复制代码
pip install -U vllm --extra-index-url https://wheels.vllm.ai/nightly

或使用Docker镜像:

复制代码
docker pull vllm/vllm-openai:nightly
  1. 启动服务:
bash 复制代码
pip install git+https://github.com/huggingface/transformers.git
vllm serve zai-org/GLM-OCR  --allowed-local-media-path /  --port 8080

SGLang方案

  1. 使用Docker镜像:
bash 复制代码
docker pull lmsysorg/sglang:dev

或源码安装:

bash 复制代码
pip install git+https://github.com/sgl-project/sglang.git#subdirectory=python
  1. 启动服务:
bash 复制代码
pip install git+https://github.com/huggingface/transformers.git
python -m sglang.launch_server --model zai-org/GLM-OCR --port 8080

Ollama方案

  1. 下载Ollama
  2. 运行命令:
bash 复制代码
ollama run glm-ocr

拖拽图片至终端时自动识别文件路径:

bash 复制代码
ollama run glm-ocr Text Recognition: ./image.png

Transformers方案

安装依赖:

复制代码
pip install git+https://github.com/huggingface/transformers.git

示例代码:

python 复制代码
from transformers import AutoProcessor, AutoModelForImageTextToText
import torch

MODEL_PATH = "zai-org/GLM-OCR"
messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "url": "test_image.png"
            },
            {
                "type": "text",
                "text": "Text Recognition:"
            }
        ],
    }
]
processor = AutoProcessor.from_pretrained(MODEL_PATH)
model = AutoModelForImageTextToText.from_pretrained(
    pretrained_model_name_or_path=MODEL_PATH,
    torch_dtype="auto",
    device_map="auto",
)
inputs = processor.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt"
).to(model.device)
inputs.pop("token_type_ids", None)
generated_ids = model.generate(**inputs, max_new_tokens=8192)
output_text = processor.decode(generated_ids[0][inputs["input_ids"].shape[1]:], skip_special_tokens=False)
print(output_text)

提示词规范

GLM-OCR当前支持两类提示场景:

  1. 文档解析 - 提取文档原始内容,支持任务类型包括:
python 复制代码
{
    "text": "Text Recognition:",
    "formula": "Formula Recognition:",
    "table": "Table Recognition:"
}
  1. 信息抽取 - 从文档提取结构化信息,提示词需严格遵循JSON格式。例如提取身份证信息:
python 复制代码
请按下列JSON格式输出图中信息:
{
    "id_number": "",
    "last_name": "",
    "first_name": "",
    "date_of_birth": "",
    "address": {
        "street": "",
        "city": "",
        "state": "",
        "zip_code": ""
    },
    "dates": {
        "issue_date": "",
        "expiration_date": ""
    },
    "sex": ""
}

⚠️ 注意:使用信息抽取功能时,输出必须严格符合预设JSON结构,以确保下游处理兼容性。

GLM-OCR开发套件

我们提供了开箱即用的SDK工具包,可更高效便捷地使用GLM-OCR模型,详见GitHub仓库

致谢

本项目受以下优秀开源项目和社区启发:

许可证

GLM-OCR模型基于MIT许可证发布。

完整的OCR流程整合了PP-DocLayoutV3用于文档版面分析,该组件遵循Apache 2.0许可证。用户在使用本项目时需同时遵守两项许可协议。

相关推荐
范纹杉想快点毕业2 小时前
嵌入式系统架构之道:告别“意大利面条”,拥抱状态机与事件驱动
java·开发语言·c++·嵌入式硬件·算法·架构·mfc
Guheyunyi3 小时前
电气安全管理系统:筑牢现代用电安全的智能防线
大数据·人工智能·科技·安全·架构·能源
迎仔3 小时前
06-Spark 进阶指南:架构原理与 Alluxio 加速
大数据·架构·spark
power 雀儿3 小时前
Transformer 整体架构
深度学习·架构·transformer
猫头虎4 小时前
2026全网最热Claude Skills工具箱,GitHub上最受欢迎的7大Skills开源AI技能库
langchain·开源·prompt·github·aigc·ai编程·agi
向哆哆4 小时前
Flutter × OpenHarmony 跨端开发:高校四六级报名管理系统中的“常见问题”模块实现解析
flutter·开源·鸿蒙·openharmony·开源鸿蒙
cui_win4 小时前
企业级中后台开源解决方案汇总
开源·vue3·ts
麦兜*4 小时前
深入剖析云原生Service Mesh数据平面Envoy核心架构:基于xDS协议与WebAssembly实现动态流量管理与安全策略的微服务治理实战指南
云原生·架构·service_mesh
Elwin Wong4 小时前
浅析DeepSeek-OCR v1&v2
人工智能·大模型·llm·ocr·deepseek