zai-org/GLM-OCR
요약
GLM-OCR은 GLM-V 아키텍처를 기반으로 구축된 고성능 멀티모달 OCR 모델로, 복잡한 문서 이해(표, 수식, 레이아웃 등)에 최적화되어 있습니다. 이 모델은 CogViT 비전 인코더와 GLM 언어 디코더를 통합하고 2단계 파이프라인을 통해 강력한 성능과 안정성을 제공합니다. 최첨단 성능으로 OmniDocBench V1.5에서 최고 점수를 기록했으며, vLLM 등을 통한 효율적인 추론 및 완전한 오픈 소스 SDK를 제공하여 실제 환경 배포에 용이합니다.
핵심 포인트
- **SOTA 문서 이해:** OmniDocBench V1.5에서 94.62점으로 전체 순위 1위를 차지하는 최첨단 OCR 성능을 자랑합니다. **복잡한 레이아웃 처리:** 표, 코드 중심 문서, 직인 등 까다로운 실제 환경 시나리오에 안정적으로 대응하도록 설계되었습니다. **효율적인 배포 및 사용성:** 단 0.9B 파라미터로 vLLM/SGLang 등을 통해 효율적인 추론이 가능하며, 완전한 오픈 소스 SDK를 제공합니다. **유연한 접근 방식:** 클라우드 API(GPU 불필요)와 로컬 셀프 호스팅(완전 제어권) 두 가지 방식으로 사용자가 선택할 수 있습니다.
👋 저희 WeChat 및 Discord 커뮤니티에 참여하세요
📖 GLM-OCR 기술 보고서를 확인해 보세요
📍 GLM-OCR의 API를 사용하세요
GLM-OCR은 GLM-V 인코더–디코더 아키텍처를 기반으로 구축된 복잡한 문서 이해를 위한 멀티모달 OCR 모델입니다. 이 모델은 Multi-Token Prediction (MTP) 손실과 안정적인 전체 태스크 강화학습(full-task reinforcement learning)을 도입하여 훈련 효율성, 인식 정확도 및 일반화 성능을 향상시킵니다. 본 모델은 대규모 이미지–텍스트 데이터로 사전 학습된 CogViT 비전 인코더, 효율적인 토큰 다운샘플링을 갖춘 경량 크로스모달 커넥터, 그리고 GLM-0.5B 언어 디코더를 통합합니다. PP-DocLayout-V3 기반의 레이아웃 분석 및 병렬 인식이라는 2단계 파이프라인과 결합하여, GLM-OCR은 다양한 문서 레이아웃 전반에 걸쳐 강력하고 고품질의 OCR 성능을 제공합니다.
주요 기능
주요 기능
- 최첨단 성능 (State-of-the-Art Performance): OmniDocBench V1.5에서 94.62점의 점수를 달성하며 전체 순위 #1을 차지했고, 수식 인식, 표 인식, 정보 추출 등 주요 문서 이해 벤치마크 전반에 걸쳐 최첨단 결과를 제공합니다.
- 실제 환경 시나리오에 최적화 (Optimized for Real-World Scenarios): 복잡한 표, 코드 중심 문서, 직인(seals) 및 기타 까다로운 실제 레이아웃에서 안정적인 성능을 유지하도록 설계 및 최적화되었습니다.
- 효율적인 추론 (Efficient Inference): 단 0.9B 파라미터로 GLM-OCR은 vLLM, SGLang, Ollama를 통해 배포를 지원하여 추론 지연 시간과 컴퓨팅 비용을 크게 줄였으며, 고(高)동시성 서비스 및 엣지 배포에 이상적입니다.
- 사용 용이성 (Easy to Use): 완전한 오픈 소스이며 포괄적인 SDK와 추론 도구 체인(inference toolchain)을 갖추고 있어 간단한 설치, 한 줄 호출(one-line invocation), 기존 프로덕션 파이프라인에의 원활한 통합을 제공합니다.
[2026.3.12] GLM-OCR SDK가 에이전트 친화적인 Skill 모드를 지원하게 되었습니다 — pip install glmocr만 하면 됩니다.
- API 키를 설정하고, GPU나 YAML 설정 없이 CLI 또는 Python을 통해 바로 사용할 수 있습니다. 보기: GLM-OCR Skill
[2026.3.12] GLM-OCR 기술 보고서(Technical Report)가 이용 가능해졌습니다. 보기: GLM-OCR Technical Report
[2026.2.12] LLaMA-Factory 기반의 미세 조정 튜토리얼(Fine-tuning tutorial)이 이용 가능해졌습니다. 보기: GLM-OCR Fine-tuning Guide
| 모델 | 다운로드 링크 | 정밀도 (Precision) |
|---|---|---|
| GLM-OCR | 🤗 Hugging Face 🤖 ModelScope | BF16 |
GLM-OCR을 보다 효율적이고 편리하게 사용할 수 있는 SDK를 제공합니다.
시나리오에 맞는 가장 가벼운 설치 방법을 선택하세요:
# Cloud / MaaS + local images / PDFs (가장 빠른 설치)
pip install glmocr
# Self-hosted pipeline (레이아웃 감지)
...
개발을 위해 소스에서 설치하기:
# 소스에서 설치
git clone https://github.com/zai-org/glm-ocr.git
cd glm-ocr
...
GLM-OCR 사용 방법 두 가지:
1. 호스팅된 클라우드 API 사용 – GPU 불필요. 클라우드 서비스가 전체 GLM-OCR 파이프라인을 내부적으로 실행하므로, SDK는 단순히 요청을 전달하고 결과를 반환합니다.
- https://open.bigmodel.cn에서 API 키를 받으세요.
config.yaml을 구성하세요:
pipeline:
maas:
enabled: true # MaaS 모드 활성화
...
이것으로 끝입니다! maas.enabled=true인 경우, SDK는 다음과 같은 얇은 래퍼(thin wrapper) 역할을 합니다:
- 문서를 Zhipu 클라우드 API로 전달합니다.
- 결과를 직접 반환합니다 (Markdown + JSON 레이아웃 상세 정보).
- 로컬 처리나 GPU가 필요하지 않습니다.
입력 참고 사항 (MaaS): 상위(upstream) API는 file을 URL 또는 data:<mime>;base64,... 데이터 URI로 받습니다. 만약 data: 접두사 없이 순수 base64를 가지고 있다면, 이를 data URI로 감싸세요 (권장). SDK는 MaaS 호출 시 로컬 파일 경로/바이트/순수 base64를 자동으로 data URI로 감쌉니다.
API 문서: https://docs.bigmodel.cn/cn/guide/models/vlm/glm-ocr
2. GLM-OCR 모델을 로컬에 배포하여 완전한 제어권을 확보하세요. SDK는 레이아웃 감지, 병렬 영역 OCR, 결과 포맷팅 등 전체 파이프라인을 제공합니다.
먼저 셀프 호스팅(self-hosted) 확장 기능을 설치하세요:
pip install "glmocr[selfhosted]"
vLLM을 설치합니다:
docker pull vllm/vllm-openai:v0.19.0-ubuntu2404
또는 pip을 사용하여 설치합니다:
pip install -U "vllm>=0.19.0"
서비스를 실행합니다:
pip install "transformers>=5.3.0"
vllm serve zai-org/GLM-OCR --port 8080 --speculative-config '{"method": "mtp", "num_speculative_tokens": 3}' --served-model-name glm-ocr
참고 사항 (Note Add)
대용량 이미지/PDF 처리를 위해 사용자의 장치에 맞게 --max-model-len과 --gpu-memory-utilization을 조정하세요.
SGLang을 설치합니다:
docker pull lmsysorg/sglang:v0.5.10
또는 pip을 사용하여 설치합니다:
pip install "sglang>=0.5.10"
서비스를 실행합니다:
SGLANG_ENABLE_SPEC_V2=1 sglang serve --model-path zai-org/GLM-OCR --port 8080 --speculative-algorithm NEXTN --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 --served-model-name glm-ocr
참고 사항 (Note Add)
대용량 이미지/PDF 처리를 위해 사용자의 장치에 맞게 --context-len과 --mem-fraction-static을 조정하세요.
특정 배포 시나리오의 경우, 상세 가이드를 참고하세요:
Apple Silicon with mlx-vlm - Apple Silicon Mac용 최적화
Ollama Deployment - Ollama를 사용한 간단한 로컬 배포
SDK 서버를 GPU 장치에 배포하고, 모든 장치를 클라이언트로 사용할 수 있습니다. 이 경우 클라이언트 측에는 GPU가 필요하지 않습니다. 클라이언트는 MaaS 호환 프로토콜을 통해 연결하며, api_url을 셀프 호스팅된 서버로 지정합니다.
# Client config.yaml
pipeline:
maas:
...
전체 가이드는 Self-hosted SDK Server + Client를 참고하세요.
서비스를 실행한 후, config.yaml을 구성합니다.
:
pipeline:
maas:
enabled: false # MaaS 모드 비활성화 (기본값)
...
# 단일 이미지 파싱
glmocr parse examples/source/code.png
# 디렉터리 파싱
...
from glmocr import GlmOcr, parse
# 간단한 함수
result = parse("image.png")
...
선택적 서버 종속성을 먼저 설치합니다:
pip install "glmocr[server]"
# 서비스 시작
python -m glmocr.server
# 디버그 로깅 포함
...
의미론적 구조 (Semantics):
images는 문자열 또는 리스트일 수 있습니다.
- 리스트는 단일 문서의 페이지로 처리됩니다.
- 여러 독립적인 문서를 처리하려면 엔드포인트를 여러 번 호출해야 합니다 (요청당 하나의 문서).
GLM-OCR은 쉬운 사용자 정의를 위해 조합 가능한 모듈을 사용합니다:
| 구성 요소 | 설명 |
|---|---|
PageLoader | 전처리 및 이미지 인코딩 |
OCRClient | GLM-OCR 모델 서비스 호출 |
PPDocLayoutDetector | PP-DocLayout 레이아웃 감지 |
ResultFormatter | 후처리, JSON/Markdown 출력 |
사용자 지정 파이프라인을 생성하여 동작을 확장할 수 있습니다:
from glmocr.dataloader import PageLoader
from glmocr.ocr_client import OCRClient
from glmocr.postprocess import ResultFormatter
...
본 프로젝트는 다음 프로젝트 및 커뮤니티의 훌륭한 작업에서 영감을 받았습니다:
이 리포지토리의 코드는 Apache License 2.0 하에 있습니다.
GLM-OCR 모델은 MIT 라이선스 하에 공개되었습니다.
본 프로젝트는 다음 프로젝트 및 커뮤니티의 훌륭한 작업에서 영감을 받았습니다:
이 리포지토리의 코드는 Apache License 2.0 하에 있습니다.
GLM-OCR 모델은 MIT 라이선스 하에 공개되었습니다.
완전한 OCR 파이프라인은 문서 레이아웃 분석을 위해 Apache License 2.0 하에 라이선스가 부여된 PP-DocLayoutV3를 통합합니다. 사용자는 이 프로젝트를 사용할 때 두 라이선스를 모두 준수해야 합니다.
만약 GLM-OCR가 연구에 유용하다고 생각되시면, 다음 기술 보고서를 인용해 주시기 바랍니다:
@misc{duan2026glmocrtechnicalreport,
title={GLM-OCR Technical Report},
author={Shuaiqi Duan and Yadong Xue and Weihan Wang and Zhe Su and Huan Liu and Sheng Yang and Guobing Gan and Guo Wang and Zihan Wang and Shengdong Yan and Dexin Jin and Yuxuan Zhang and Guohong Wen and Yanfeng Wang and Yutao Zhang and Xiaohan Zhang and Wenyi Hong and Yukuo Cen and Da Yin and Bin Chen and Wenmeng Yu and Xiaotao Gu and Jie Tang},
...
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Python (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기