zai-org/GLM-OCR
GLM-OCR: Accurate × Fast × Comprehensive
GLM‑OCR – 복잡한 문서를 위한 멀티모달 OCR 모델
개요 – GLM‑OCR은 GLM‑V 인코더‑디코더 아키텍처를 기반으로 구축된 0.9 B 파라미터 규모의 멀티모달 OCR 시스템입니다. 이 모델은 시각 인코더(CogViT)와 경량 교차 모달 커넥터, GLM‑0.5B 언어 디코더를 결합했으며, PP‑DocLayout‑V3 기반의 2단계 파이프라인(레이아웃 분석 → 병렬 영역 인식)을 사용합니다. 복잡한 문서(표, 수식, 코드, 도장 등)에 대한 정확도와 일반화 성능을 높이기 위해 Multi‑Token Prediction 손실 함수와 전체 작업 강화 학습으로 훈련되었습니다.
주요 기능
- 최첨단 정확도 – OmniDocBench V1.5에서 94.62 %를 기록하며 여러 문서 이해 벤치마크에서 최상위권 달성.
- 컴팩트하고 빠른 속도 – 0.9 B 파라미터로 vLLM, SGLang 또는 Ollama를 통해 서비스할 수 있어 낮은 지연 시간과 적은 컴퓨팅 비용을 보장.
- 유연한 배포 – 클라우드 MaaS API(GPU 불필요), vLLM/SGLang을 통한 자체 호스팅, Apple Silicon 최적화 MLX 또는 Ollama 지원. GPU가 없는 클라이언트‑서버 모드도 지원.
- 쉬운 통합 – Python SDK(
glmocr), CLI, Flask 서버 및 에이전트 스타일 호출을 위한 “Skill” 모드 제공.
설치
# 빠른 클라우드 지향 사용 (GPU 불필요)
pip install glmocr
# 자체 호스팅 파이프라인 (레이아웃 탐지기 포함)
pip install "glmocr[selfhosted]"
# 선택적 Flask 서버
pip install "glmocr[server]"
개발을 위해 uv 가상 환경을 사용하여 소스에서 설치할 수 있습니다.
일반적인 사용법
- CLI –
glmocr parse path/to/image.png(디렉토리, 사용자 정의 설정, 레이아웃 장치 선택 등 지원). - Python API –
from glmocr import parse, GlmOcr result = parse("image.png") result.save("./out") # 또는 더 많은 제어를 위한 클래스 기반 사용 with GlmOcr(layout_device="cpu") as ocr: r = ocr.parse("image.png") - Flask 서비스 –
python -m glmocr.server실행 후 JSON{"images": ["./doc.png"]}을 POST 요청.
배포 옵션
- Zhipu MaaS API –
config.yaml에 API 키를 설정하면 SDK가 요청을 전달하며 로컬 GPU가 필요하지 않습니다. - 자체 호스팅 vLLM –
vllm serve zai-org/GLM-OCR --port 8080 …(추론 MTP 디코딩 지원). - 자체 호스팅 SGLang – 추론 설정과 함께 유사한 실행 명령 사용.
- Apple Silicon / MLX –
examples/mlx-deploy참조. - Ollama –
examples/ollama-deploy참조. - GPU 없는 클라이언트 – GPU 머신에서 SDK 서버를 실행하고 다른 머신에서
api_url을 통해 연결.
모델 다운로드 – Hugging Face 및 ModelScope에 호스팅됨 (BF16 정밀도).
라이선스 – 코드는 Apache 2.0; GLM‑OCR 모델 가중치는 MIT; 레이아웃 탐지기는 Apache 2.0.
리소스
- 기술 보고서: https://arxiv.org/abs/2603.10910
- API 문서: https://docs.z.ai/guides/vlm/glm-ocr
- 커뮤니티: README의 WeChat 및 Discord 링크 참조.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트