GLM-OCR: 0.9B 파라미터로 SOTA 성능을 달성한 초경량 오픈소스 OCR 모델

  • 카카오톡 공유하기
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 링크 복사하기

AI를 기반으로한 텍스트 인식 OCR은 나날이 발전해가고 있습니다.

최근 중국의 선도적인 AI 연구 기업 Zhipu AI(Z.ai)가 공개한 GLM-OCR은 이러한 문제를 해결하는 혁신적인 모델이 공개되었습니다. 단 0.9B(약 9억) 파라미터만으로 거대 모델에 버금가는 성능을 달성하며, ‘효율적인 AI’의 새로운 기록을 자랑하고 있습니다.

GLM-OCR이란?

GLM-OCR은 GLM-V 아키텍처를 기반으로 구축된 멀티모달 OCR 모델로, 단순히 이미지 내 텍스트를 추출하는 것을 넘어 문서의 구조를 완벽하게 이해하고 이를 구조화된 데이터로 변환하는 데 특화되어 있습니다.

주요 특징

1. 뛰어난 성능 – SOTA 달성

GLM-OCR은 권위 있는 문서 파싱 벤치마크인 OmniDocBench V1.5에서 94.62점을 기록하며 현재 공개된 오픈소스 모델 중 최고 성능(SOTA)을 보여줍니다.

  • 텍스트 인식: 인쇄된 텍스트, 손글씨, 수학 공식을 정확하게 인식
  • 표 인식: 복잡한 셀 병합 구조도 HTML 형식으로 완벽 변환
  • 정보 추출: 카드, 증명서, 영수증에서 구조화된 JSON 데이터 추출
  • 수식 변환: 복잡한 수학 공식을 컴파일 가능한 LaTeX 코드로 변환

Gemini-3-Pro와 같은 거대 모델에 근접한 성능을 보이면서도, 파라미터 수는 훨씬 적어 효율성이 뛰어납니다.

2. 실전 최적화 – 복잡한 현실 시나리오 대응

GLM-OCR은 실제 비즈니스 환경을 고려하여 설계되었습니다:

  • 코드 문서: 프로그래밍 코드가 포함된 기술 문서 인식
  • 복잡한 표: 다중 병합 셀, 중첩된 표 구조 처리
  • 인장/스탬프: 문서에 찍힌 도장 및 인장 인식
  • 다국어 혼합: 한글, 영어, 한자가 혼재된 문서 처리
  • 손글씨: 필기체 텍스트 인식

3. 초경량 & 고효율

  • 0.9B 파라미터: 일반 게이밍 노트북(NVIDIA RTX 3060)에서도 구동 가능
  • 낮은 VRAM 요구사항: FP16 정밀도 기준 약 4~6GB VRAM만 필요
  • 빠른 처리 속도: PDF 1.86 페이지/초, 이미지 0.67장/초 처리
  • 저렴한 비용: API 사용 시 백만 토큰당 $0.03

4. 고해상도 지원

최대 8K 해상도(7680×4320 픽셀)의 이미지를 처리할 수 있어, 대형 설계도면이나 포스터와 같은 복잡한 문서도 선명하게 인식합니다.

5. 다국어 지원

한국어, 영어, 중국어(간체/번체), 일본어, 프랑스어, 스페인어, 러시아어, 독일어 등 8개 언어를 인식합니다.

기술 아키텍처

GLM-OCR은 크게 세 가지 핵심 모듈로 구성됩니다:

1. CogViT Visual Encoder

  • 대규모 이미지-텍스트 데이터로 사전 학습된 시각 인코더
  • 고해상도 이미지의 특징(Feature)을 추출
  • 텍스트 내용뿐만 아니라 폰트 크기, 굵기, 위치 정보 등 시각적 맥락도 학습

2. Cross-Modal Connector

  • MLP(Multi-Layer Perceptron) 어댑터를 통해 시각 정보를 언어 토큰으로 변환
  • 효율적인 토큰 다운샘플링으로 처리 속도 향상

3. GLM-0.5B Language Decoder

  • 변환된 토큰을 해석하고 구조화된 텍스트로 출력
  • Multi-Token Prediction(MTP) 손실 함수로 학습 효율성 향상
  • 안정적인 강화학습을 통해 일반화 성능 개선

4. PP-DocLayout-V3 통합

  • 문서 레이아웃 분석을 위한 2단계 파이프라인
  • 레이아웃 분석 후 병렬 인식으로 다양한 문서 구조 처리

벤치마크 성능

OmniDocBench V1.5 비교

모델점수
GLM-OCR94.62
기타 오픈소스 모델87-92 범위
Gemini-3-Pro~95

실전 시나리오 평가

GLM-OCR은 6가지 핵심 실무 시나리오에서 내부 평가를 수행했으며, 다음 영역에서 뛰어난 성능을 보였습니다:

<출처: https://docs.z.ai/guides/vlm/glm-ocr>
  • 코드 문서 인식
  • 실제 복잡한 표 처리
  • 손글씨 인식
  • 다국어 텍스트 처리
  • 인장 인식
  • 인보이스/영수증 데이터 추출

속도 비교

동일한 하드웨어 환경(단일 복제본, 단일 동시성)에서 테스트한 결과:

  • PDF 문서: 1.86 페이지/초
  • 이미지: 0.67 이미지/초

이는 유사한 모델 대비 현저히 빠른 처리 속도입니다.

설치 및 환경 요구사항

시스템 요구사항

  • 가성비 구성: NVIDIA RTX 3060 (12GB) 또는 T4 (16GB) 가장 저렴한 비용으로 쾌적하게 서빙할 수 있는 구성입니다.
    시스템 RAM: 8GB 이상, Disk: 10GB 이상의 여유 공간 (모델 가중치 파일 약 2~3GB)
  • 고성능 구성: NVIDIA RTX 4090 (24GB) 높은 처리량이 필요할 때 가장 추천하며, 모델이 작아 하나의 GPU에 여러 인스턴스를 띄우거나 아주 큰 배치 사이즈로 처리할 수 있습니다.
    시스템 RAM: 16GB ~ 32GB, CPU: 최신 8코어 이상 (데이터 전처리 및 이미지 디코딩 부하 고려)

요약하자면, VRAM 4GB 이상의 엔비디아 GPU만 있다면 어디서든 실행 가능하며, 본격적인 서비스를 위해서는 16GB 이상의 VRAM을 가진 GPU를 추천합니다.

SDK 설치

GLM-OCR SDK를 설치하는 방법은 매우 간단합니다:

모델 배포 방법

GLM-OCR을 사용하는 두 가지 방법이 있습니다:

옵션 1: Zhipu MaaS API 사용 (권장)

GPU 없이 호스팅된 API를 사용하는 방법:

  1. open.bigmodel.cn에서 API 키 발급
  2. config.yaml 설정:

옵션 2: 자체 호스팅 (vLLM / SGLang)

vLLM 사용
# vLLM 설치
pip install -U vllm --extra-index-url https://wheels.vllm.ai/nightly

# 서비스 실행
vllm serve zai-org/GLM-OCR --allowed-local-media-path / --port 8080
SGLang 사용
# Docker 사용
docker pull lmsysorg/sglang:dev

# 서비스 실행
python -m sglang.launch_server --model zai-org/GLM-OCR --port 8080

설정 업데이트:

pipeline:
ocr_api:
api_host: localhost
api_port: 8080

사용 예제

CLI 사용

# 단일 이미지 파싱
glmocr parse examples/source/code.png

# 디렉토리 내 모든 이미지 파싱
glmocr parse examples/source/

# 출력 경로 지정
glmocr parse examples/source/code.png --output ./results/

# 커스텀 설정 사용
glmocr parse examples/source/code.png --config my_config.yaml

# 디버그 모드로 프로파일링 활성화
glmocr parse examples/source/code.png --log-level DEBUG

Python API 사용

from glmocr import GlmOcr, parse

# 간단한 함수 호출
result = parse("image.png")
result = parse(["img1.png", "img2.jpg"])
result = parse("https://example.com/image.png")
result.save(output_dir="./results")

# 클래스 기반 API
with GlmOcr() as parser:
    result = parser.parse("image.png")
    print(result.json_result)
    result.save()

OpenAI 호환 API 사용

import openai

client = openai.Client(
    base_url="http://localhost:8080/v1",
    api_key="EMPTY"
)

response = client.chat.completions.create(
    model="zai-org/GLM-OCR",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "이미지의 표를 마크다운으로 변환해줘."},
            {"type": "image_url", "image_url": {"url": "https://example.com/doc.jpg"}}
        ]
    }]
)
print(response.choices[0].message.content)

Flask 서비스

# 서비스 시작
python -m glmocr.server

# 디버그 로깅 활성화
python -m glmocr.server --log-level DEBUG
# API 호출
curl -X POST http://localhost:5002/glmocr/parse \
  -H "Content-Type: application/json" \
  -d '{"images": ["./example/source/code.png"]}'

출력 형식

GLM-OCR은 두 가지 출력 형식을 지원합니다:

1. JSON 형식

[
  [{
    "index": 0,
    "label": "text",
    "content": "...",
    "bbox_2d": null
  }]
]

2. Markdown 형식

# Document Title

Body...

| Table | Content |
| ----- | ------- |
| ...   | ...     |

출력 결과 구조 (입력당 하나의 폴더):

  • result.json – 구조화된 OCR 결과
  • result.md – Markdown 결과
  • imgs/ – 레이아웃 모드 활성화 시 잘라낸 이미지 영역

주요 활용 사례

1. 텍스트 인식

사진, 스크린샷, 문서, 스캔본에서 텍스트 내용을 인식합니다. 인쇄된 텍스트, 손글씨, 수학 공식을 지원하며 교육, 연구, 사무 업무 등 다양한 시나리오에 적용 가능합니다.

변환 예시:

  • 손으로 쓴 메모 → 편집 가능한 텍스트
  • 수학 문제집 → LaTeX 코드
  • 명함 → 연락처 정보

2. 표 인식

표 구조와 내용을 식별하여 HTML 형식으로 변환합니다. 표 데이터 입력, 변환, 편집이 필요한 시나리오에 적합합니다.

변환 예시:

  • 복잡한 재무제표 → Markdown/HTML 테이블
  • 실험 데이터 표 → 구조화된 JSON
  • 병합된 셀이 있는 보고서 → 정확한 표 구조

3. 정보 구조화

각종 카드, 증명서, 영수증, 양식에서 핵심 정보를 추출하여 구조화된 JSON 데이터로 출력합니다. 은행, 보험, 정부 서비스, 법률, 물류 등 다양한 산업에 적용 가능합니다.

변환 예시:

  • 신분증 → {이름, 주민등록번호, 주소, …}
  • 영수증 → {날짜, 금액, 항목, 상점명, …}
  • 계약서 → 핵심 조항 추출

4. RAG (검색 증강 생성) 파이프라인

대량의 문서를 높은 정확도로 인식 및 파싱하고 표준화된 출력 형식을 제공하여 RAG 시스템의 견고한 기반을 제공합니다.

장점:

  • 구조화된 Markdown으로 변환하여 벡터 데이터베이스에 저장
  • LLM의 문맥 파악 정확도 향상
  • 전체 AI 서비스 품질 개선

기존 OCR 솔루션과의 차별성

vs. 전통적인 OCR (Tesseract 등)

특징전통적 OCRGLM-OCR
문서 구조 이해텍스트만 추출레이아웃, 표, 수식 구조 파악
복잡한 표 처리순서 뒤섞임셀 병합 구조 완벽 재현
수식 변환이미지로만 인식LaTeX 코드로 변환
출력 형식일반 텍스트Markdown, JSON, HTML

vs. 거대 멀티모달 모델 (GPT-4o, Gemini 1.5 Pro)

특징거대 모델GLM-OCR
파라미터 수수백억~수천억0.9B
VRAM 요구량80GB+4-6GB
처리 속도느림빠름 (1.86 페이지/초)
비용높음저렴 ($0.03/M tokens)
온프레미스 배포어려움용이함
문서 처리 최적화범용적특화됨

핵심 차별점

  1. 효율성: 10억 개 미만의 파라미터로 특정 도메인(문서 처리)에서 거대 모델 수준의 성능
  2. 접근성: 일반 소비자용 그래픽 카드에서도 구동 가능
  3. 비용: 클라우드 API 비용이 낮고, 자체 호스팅 시 서버 비용 절감
  4. 보안: 온프레미스 배포로 기밀 문서 처리 시 데이터 유출 위험 없음
  5. 속도: 동일 하드웨어에서 더 많은 문서를 더 빠르게 처리

모듈형 아키텍처 – 커스터마이징 가능

GLM-OCR은 조합 가능한 모듈 구조로 설계되어 쉽게 커스터마이징할 수 있습니다:

컴포넌트설명
PageLoader전처리 및 이미지 인코딩
OCRClientGLM-OCR 모델 서비스 호출
PPDocLayoutDetectorPP-DocLayout 레이아웃 감지
ResultFormatter후처리, JSON/Markdown 출력

커스텀 파이프라인 생성 예시:

from glmocr.dataloader import PageLoader
from glmocr.ocr_client import OCRClient
from glmocr.postprocess import ResultFormatter

class MyPipeline:
    def __init__(self, config):
        self.page_loader = PageLoader(config)
        self.ocr_client = OCRClient(config)
        self.formatter = ResultFormatter(config)
    
    def process(self, request_data):
        # 자신만의 처리 로직 구현
        pass

라이선스

GLM-OCR 프로젝트는 구성 요소별로 다른 라이선스가 적용됩니다:

  • GLM-OCR 모델 가중치: MIT License (상업적 이용 가능)
  • 레이아웃 분석 코드 (PP-DocLayout-V3) 및 리포지토리 코드: Apache License 2.0

프로젝트 활용 시 두 가지 라이선스 정책을 모두 준수해야 합니다.

실전 적용 분야

GLM-OCR은 다양한 산업 분야에서 활용될 수 있습니다:

금융 & 보험

  • 계약서, 증명서 자동 데이터 추출
  • 청구서, 영수증 처리
  • 신용평가를 위한 문서 분석

법률

  • 법률 문서 디지털화
  • 계약서 핵심 조항 자동 추출
  • 판례 검색을 위한 문서 구조화

연구 & 교육

  • 논문 PDF를 편집 가능한 형식으로 변환
  • 수학 공식 LaTeX 변환
  • 교재 디지털화

헬스케어

  • 의료 기록 디지털화
  • 처방전 자동 읽기
  • 진단서 정보 구조화

물류 & 유통

  • 운송장 자동 처리
  • 재고 관리 문서화
  • 송장 정보 추출

마치며

GLM-OCR은 단순히 작은 모델이 아닙니다. 효율성과 성능을 동시에 달성하며, 실무에서 즉시 활용 가능한 수준의 완성도를 갖춘 프로덕션 레디 솔루션입니다.

GLM-OCR의 핵심 가치

  1. 민주화된 AI: 고가의 GPU 없이도 고성능 OCR 서비스 구축 가능
  2. 프라이버시 보호: 온프레미스 배포로 기밀 문서 안전하게 처리
  3. 비용 효율성: 클라우드 API 비용 절감 및 자체 인프라 비용 최소화
  4. 즉시 사용 가능: 상세한 SDK와 문서, 다양한 배포 옵션 제공

특히 기밀 문서를 다루는 금융, 법률, 연구 분야에서 큰 파급력을 가질 것으로 예상되며, RAG 시스템의 전처리 도구로서도 매우 높은 가치를 제공합니다.

참고 자료


게시됨

카테고리

,

작성자

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다