GLM-OCR Kurulumu: Belge Anlama için Kapsamlı Rehber

Ashley Goolam

Ashley Goolam

5 February 2026

GLM-OCR Kurulumu: Belge Anlama için Kapsamlı Rehber

Çoğu akıllı telefon uygulamasından daha küçük bir modelle karmaşık PDF'lerden, tablolardan ve formüllerden metin çıkarabildiğinizi düşünün. GLM-OCR, yalnızca 0,9 milyar parametreyle son teknoloji belge anlama başarısı elde ediyor. Mütevazı donanımlarda çalışacak kadar hafif, ancak 94,62 puanla OmniDocBench V1.5 liderlik tablosunda zirveye yerleşecek kadar da doğru.

Geleneksel OCR araçları belge yapısıyla mücadele eder. Tablo biçimlendirmesini kaybeder, matematiksel formülleri yanlış okur ve çok sütunlu düzenlerde başarısız olurlar. Bulut API'leri bu sorunları çözer ancak istek başına ücret alır ve hassas belgelerinizi üçüncü taraf sunucularına gönderir. GLM-OCR her iki sorunu da ortadan kaldırır: karmaşık düzenleri yerel olarak üretim düzeyinde doğrulukla, ticari kullanıma lisans ücreti olmadan izin veren bir MIT lisansı altında işler.

💡
Güvenilir API testi gerektiren belge işleme ardışık düzenleri oluştururken – faturalardan veri ayıklama, teknik dokümantasyonu ayrıştırma veya form işlemeyi otomatikleştirme olsun – Apidog tüm iş akışını kolaylaştırır. Görsel istek oluşturma, otomatik dokümantasyon üretimi ve GLM-OCR dağıtımınızla sorunsuz çalışan işbirlikçi hata ayıklama araçları sunar.
button

GLM-OCR Mimarisi Anlamak

GLM-OCR, belge anlamayı optimize etmek için üç bileşenli bir kodlayıcı-kod çözücü mimarisi kullanır. CogViT görsel kodlayıcı, milyarlarca görüntü-metin çifti üzerinde önceden eğitilmiş ağırlıklar kullanarak belge görüntülerini işler. Düzenin anlaşılması için kritik olan uzamsal ilişkileri korurken görsel özellikler çıkarır.

Kodlayıcı ve kod çözücü arasında hafif bir çapraz modlu bağlayıcı bulunur. Bu bileşen, görsel belirteçleri verimli bir şekilde alt örnekler, doğruluğu feda etmeden hesaplama yükünü azaltır. GLM-0.5B dil kod çözücü daha sonra düz paragraflardan karmaşık iç içe tablolara kadar her şeyi işleyerek yapılandırılmış metin çıktısı üretir.

Model, iki aşamalı bir çıkarım ardışık düzeni kullanır. İlk olarak, PP-DocLayout-V3 belge yapısını analiz eder – başlıkları, paragrafları, tabloları ve şekilleri tanımlar. İkinci olarak, paralel tanıma her bölgeyi eş zamanlı olarak işler. Bu yaklaşım, geleneksel OCR'nin her şeyi yapılandırılmamış metne dönüştürdüğü durumlarda belge hiyerarşisini korur.

Eğitimdeki yenilikler performansı daha da artırır. Çoklu belirteç tahmini kaybı, birden fazla belirteci aynı anda tahmin ederek eğitim verimliliğini artırır. Kararlı tam görev takviyeli öğrenme, farklı belge türleri arasında genellemeyi geliştirir. Sonuç: formül tanımada %96,5, tablo tanımada %86,0 doğruluk ve bilgi çıkarma görevlerinde lider performans.

Çıkarım sırasında GLM-OCR, tek bir GPU'da saniyede 1,86 PDF sayfasını işler; bu, benzer modellere göre önemli ölçüde daha hızlıdır. 0,9 milyar parametre sayısı, kurumsal kümeler yerine tüketici donanımında dağıtım yapabileceğiniz anlamına gelir.

glm-orc modeli

Model Özellikleri

GLM-OCR, 8K çözünürlüğe (7680×4320 piksel) kadar belgeleri işler. İngilizce, Çince, Japonca ve Korece dahil olmak üzere 8 dili tanır. Model hem raster görüntüleri (PNG, JPEG) hem de vektör girdilerini işler. Tipik çıkarım, FP16 hassasiyetinde 4-6 GB VRAM tüketir ve RTX 3060 gibi tüketici GPU'larına veya AWS g4dn.xlarge gibi bulut örneklerine sığar.

> | Donanım         | Gerekli VRAM  | Sayfa/sn  | Kullanım Durumu        |
 --------------------------------------------------------------------
> | RTX 3060        | 4-6GB         | ~1.5      | Geliştirme           |
> | RTX 4090        | 4-6GB         | ~2.5      | Üretim               |
> | AWS g4dn.xlarge | 16GB          | ~1.8      | Bulut dağıtımı     |
> | 4x A100 (TPS=4) | 80GB          | ~7.0      | Kurumsal             |

Yerel Dağıtım Seçenekleri

GLM-OCR, altyapınıza ve performans gereksinimlerinize bağlı olarak dört dağıtım yöntemini destekler. Her biri Hugging Face'ten aynı temel model ağırlıklarını kullanır ancak farklı senaryolar için optimize edilmiştir.

  1. vLLM, üretim iş yükleri için iş hacmi ve gecikme arasında en iyi dengeyi sağlar. Verimli bellek yönetimi için PagedAttention'ı uygular ve yüksek eşzamanlılık senaryoları için sürekli toplu işlemeyi destekler.
  2. SGLang, çalışma zamanı optimizasyonu sayesinde maksimum performans sunar. Spekülatif kod çözme ve yapılandırılmış üretimde üstündür, bu da mümkün olan en hızlı çıkarıma ihtiyacınız olduğunda onu ideal kılar.
  3. Ollama en basit kurulumu sunar. Tek bir komut modeli yerel olarak indirir ve çalıştırır; Python bağımlılıkları veya yapılandırma dosyaları yoktur. Prototipleme ve kişisel kullanım için mükemmeldir.
  4. Transformers doğrudan Python entegrasyonunu sağlar. Bunu geliştirme, hata ayıklama veya çıkarım ardışık düzeni üzerinde ince taneli kontrole ihtiyacınız olduğunda kullanın.

Tüm yöntemler, Hugging Face'ten (zai-org/GLM-OCR) GLM-OCR ağırlıklarını gerektirir. Model, CUDA desteğine sahip NVIDIA GPU'larda çalışır. Yalnızca CPU ile çıkarım çalışır ancak önemli ölçüde düşük hızda.

Üretim İçin vLLM Kurulumu

vLLM, OpenAI uyumlu API uç noktalarıyla üretim için hazır çıkarım sağlar. Bu, GLM-OCR'yi şu anda OpenAI'nin görüntü modellerini kullanan mevcut uygulamalara entegre etmenize olanak tanır.

Kurulum

vLLM'yi CUDA desteğiyle yükleyin:

pip install -U vllm --extra-index-url https://wheels.vllm.ai/nightly

Kapsayıcılı dağıtım için resmi Docker görüntüsünü kullanın:

docker pull vllm/vllm-openai:nightly

Uyumlu Transformers'ı yükleyin—vLLM, GLM-OCR desteği için en son geliştirme sürümünü gerektirir:

pip install git+https://github.com/huggingface/transformers.git

Hizmeti Başlatma

vLLM sunucusunu GLM-OCR ile başlatın:

vllm serve zai-org/GLM-OCR \
  --allowed-local-media-path / \
  --port 8080 \
  --speculative-config '{"method": "mtp", "num_speculative_tokens": 1}'

--allowed-local-media-path bayrağı, modelin yerel görüntü dosyalarına erişmesini sağlar. Bunu belge dizininize veya kısıtlamasız erişim için / olarak ayarlayın (üretimde dikkatli kullanın).

--speculative-config, GLM-OCR'nin bir özelliği olan ve birden fazla belirteci aynı anda tahmin ederek çıkarımı hızlandıran Çoklu Belirteç Tahminini etkinleştirir.

İstemci Entegrasyonu

Çalışmaya başladıktan sonra, standart HTTP istekleri aracılığıyla GLM-OCR ile etkileşim kurun:

curl --location --request POST 'http://localhost:8080/v1/chat/completions' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "model": "zai-org/GLM-OCR",
    "messages": [
      {
        "role": "user",
        "content": [
          {"type": "image_url", "image_url": {"url": "file:///path/to/document.png"}},
          {"type": "text", "text": "Extract all text from this document"}
        ]
      }
    ]
  }'

OpenAI uyumlu yanıt formatı, mevcut SDK'ların değişiklik yapmadan çalışması anlamına gelir. OpenAI istemcinizi http://localhost:8080 adresine yönlendirin ve model adı olarak zai-org/GLM-OCR kullanın.

Üretim Yapılandırması

Yüksek iş hacimli dağıtımlar için, birden fazla GPU arasında tensör paralelliği ekleyin:

vllm serve zai-org/GLM-OCR \
  --tensor-parallel-size 4 \
  --gpu-memory-utilization 0.95 \
  --max-model-len 8192 \
  --allowed-local-media-path / \
  --port 8080

--tensor-parallel-size değerini GPU sayınıza uyacak şekilde ayarlayın. GPU kullanımını izleyin ve iş hacmini en üst düzeye çıkarmak için toplu iş boyutlarını artırın.

İzleme ve Ölçeklendirme

vLLM performansını /metrics adresindeki yerleşik metrik uç noktası aracılığıyla izleyin. Prometheus uyumlu veriler, istek gecikmesini, kuyruk derinliğini ve GPU kullanımını içerir. Kuyruk derinliği 10 isteği aştığında veya GPU belleği %90'a ulaştığında uyarılar ayarlayın. Yatay ölçeklendirme için, istekler arasında bağlamı korumak amacıyla birden fazla vLLM örneğini kalıcı oturumlar içeren bir yük dengeleyici arkasına dağıtın.

Model performansınızın yanı sıra üretim metriklerini izlemek için Apidog'un API izleme özelliklerini kullanmayı düşünün.

SGLang Yüksek Performanslı Çıkarım

SGLang, maksimum çıkarım hızı için gelişmiş çalışma zamanı optimizasyonları sunar. Spekülatif kod çözme ve yapılandırılmış üretimde üstünlük sağlar, bu da onu gecikmeye duyarlı uygulamalar için ideal kılar.

Kurulum

SGLang'ı Docker aracılığıyla yükleyin (bağımlılık izolasyonu için önerilir):

docker pull lmsysorg/sglang:dev

Veya kaynaktan yükleyin:

pip install git+https://github.com/sgl-project/sglang.git#subdirectory=python

Uyumlu Transformers'ı yükleyin:

pip install git+https://github.com/huggingface/transformers.git

Hizmeti Başlatma

SGLang'ı optimize edilmiş spekülatif kod çözme ile başlatın:

python -m sglang.launch_server \
  --model zai-org/GLM-OCR \
  --port 8080 \
  --speculative-algorithm NEXTN \
  --speculative-num-steps 3 \
  --speculative-eagle-topk 1 \
  --speculative-num-draft-tokens 4

Spekülatif kod çözme parametreleri, birden fazla belirteci aynı anda taslak haline getirerek ve paralel olarak doğrulayarak çıkarımı hızlandırır. --speculative-num-steps değerini donanımınıza göre ayarlayın—daha yüksek değerler hızı artırır ancak daha fazla bellek gerektirir.

Yapılandırılmış Çıktı

SGLang'ın yapılandırılmış üretimi, GLM-OCR'nin geçerli JSON veya diğer şemaları çıktı olarak vermesini sağlar:

import sglang as sgl

@sgl.function
def extract_invoice(s, image_path):
    s += sgl.user(sgl.image(image_path) + "Extract invoice data as JSON")
    s += sgl.assistant(sgl.gen("json_output", json_schema={
        "type": "object",
        "properties": {
            "invoice_number": {"type": "string"},
            "date": {"type": "string"},
            "total": {"type": "number"},
            "items": {
                "type": "array",
                "items": {
                    "type": "object",
                    "properties": {
                        "description": {"type": "string"},
                        "quantity": {"type": "integer"},
                        "price": {"type": "number"}
                    }
                }
            }
        }
    }))

result = extract_invoice.run(image_path="invoice.png")
print(result["json_output"])

Bu, işlem sonrası veya yeniden deneme mantığı olmadan makine tarafından okunabilir çıktı garanti eder. Yapılandırılmış yanıtlar sunan API uç noktaları için, Apidog'un şema doğrulaması çıktı formatlarınızın beklenen JSON yapılarıyla eşleştiğini otomatik olarak doğrulayabilir.

vLLM Yerine SGLang Ne Zaman Seçilmeli

Yapılandırılmış çıktılara veya spekülatif kod çözmeye ihtiyacınız olduğunda SGLang'ı seçin. Düzenli ifade kısıtlı üretimi, geçerli JSON şemalarını garanti ederek yeniden deneme mantığını ortadan kaldırır. Spekülatif algoritma, yeterli belleğe sahip GPU'larda belirteç üretimini %30-40 oranında hızlandırır.

> | Özellik           | vLLM            | SGLang              |
 ---------------------------------------------------------------
> | İş Hacmi          | Yüksek          | Çok Yüksek          |
> | Gecikme           | İyi             | Mükemmel            |
> | OpenAI Uyumlu     | Evet            | Hayır               |
> | Yapılandırılmış Çıktı | Manuel          | Dahili              |
> | Topluluk Desteği  | Mükemmel        | Büyüyen             |
> | Kurulum Karmaşıklığı | Orta            | Yüksek              |
> | En İyi Olduğu Alan | Üretim API'leri | Hız Kritik Uygulamalar |

Sıkı gecikme gereksinimleri olmayan standart OCR için vLLM, daha basit yapılandırma ve daha iyi topluluk desteği ile yeterli performans sağlar.

Transformers Doğrudan Entegrasyon

Geliştirme, hata ayıklama veya özel ardışık düzenler için Transformers kütüphanesini doğrudan kullanın. Bu, vLLM veya SGLang'a kıyasla daha düşük iş hacmi pahasına maksimum esneklik sağlar.

Kurulum

En son Transformers'ı kaynaktan yükleyin:

pip install git+https://github.com/huggingface/transformers.git

Temel Çıkarım

GLM-OCR'yi Python'da yükleyin ve çalıştırın:

from transformers import AutoProcessor, AutoModelForImageTextToText
import torch

MODEL_PATH = "zai-org/GLM-OCR"

# Prepare input
messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "document.png"},
            {"type": "text", "text": "Text Recognition:"}
        ],
    }
]

# Load model and processor
processor = AutoProcessor.from_pretrained(MODEL_PATH)
model = AutoModelForImageTextToText.from_pretrained(
    MODEL_PATH,
    torch_dtype="auto",
    device_map="auto",
)

# Process input
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)

# Generate output
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)

device_map="auto", model katmanlarını mevcut GPU'lar arasında otomatik olarak dağıtır. Tek GPU dağıtımı için, bu tüm modeli tek bir cihaza yükler. Yalnızca CPU ile çıkarım için device_map="cpu" olarak değiştirin—önemli ölçüde daha yavaş performans bekleyin.

Toplu İşleme

Birden çok belgeyi verimli bir şekilde işleyin:

import os
from pathlib import Path

def batch_process(directory, output_file):
    documents = list(Path(directory).glob("*.png")) + \
                list(Path(directory).glob("*.pdf"))
    
    results = []
    for doc_path in documents:
        # Convert PDF to images if needed
        if doc_path.suffix == ".pdf":
            images = convert_pdf_to_images(doc_path)
        else:
            images = [doc_path]
        
        for image in images:
            text = extract_text(image)  # Your extraction function
            results.append({
                "file": str(doc_path),
                "page": image.page_num if hasattr(image, 'page_num') else 1,
                "text": text
            })
    
    # Save results
    with open(output_file, 'w') as f:
        json.dump(results, f, indent=2)

# Usage
batch_process("./invoices/", "extracted_data.json")

Üretimde belgeleri işlerken, Apidog'un çalışma alanı yönetimi, birden fazla belge işleme uç noktasını mantıksal gruplar halinde düzenlemeye yardımcı olarak farklı iş akışlarını test etmeyi ve izlemeyi kolaylaştırır.

Bellek Optimizasyonu

Sınırlı VRAM'e sahip GPU'lar için nicelemeyi kullanın:

from transformers import BitsAndBytesConfig

quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_compute_dtype=torch.float16
)

model = AutoModelForImageTextToText.from_pretrained(
    MODEL_PATH,
    quantization_config=quantization_config,
    device_map="auto",
)

4-bit niceleme, belge anlama görevleri için minimum doğruluk etkisiyle bellek kullanımını %75 oranında azaltır.

Kenar Durumlarını Yönetme

Yoğun el yazısı veya aşırı eğim açılarına sahip belgeler doğruluğu azaltır. GLM-OCR'ye göndermeden önce görüntüleri eğiklik giderme algoritmalarıyla ön işlemden geçirin. Çok sayfalı PDF'ler için, tüm dosyayı geçirmek yerine sayfaları ayrı görüntüler olarak çıkarın. Bu, paralel işlemeyi sağlar ve tek tek sayfalar başarısız olduğunda hata yönetimini basitleştirir. Filigranlı belgeler bazen metin bölgelerinde yanlış pozitifleri tetikler; belirli alanlarda bozuk çıktı görürseniz kontrast ayarlamalarıyla denemeler yapın.

Gerçek Dünya GLM-ORC Kullanım Senaryoları

GLM-OCR, çeşitli üretim senaryolarında üstünlük sağlar:

Fatura İşleme

Finans ekipleri, taranmış faturalardan kalemleri, tarihleri ve toplamları çıkarır. Model, manuel inceleme olmadan doğru toplam hesaplamasını sağlayarak tablo yapısını korur. Yerel dağıtımla ve sıfır API maliyetiyle günde binlerce faturayı işleyin.

Teknik Dokümantasyon

Mühendislik ekipleri, PDF kılavuzlarını ve teknik özelliklerini aranabilir metne dönüştürür. Formül tanıma, matematiksel denklemleri koruyarak teknik içeriği makine tarafından okunabilir hale getirir. Eski dokümantasyon modernizasyon projeleri için idealdir.

glm-orc örneği

Hukuki Belge Analizi

Hukuk uzmanları, belge hiyerarşisine saygı duyan OCR ile sözleşmeleri ve anlaşmaları inceler. Çok sütunlu düzen işleme, paragrafların yanlış birleştirilmemesini sağlar. Gizlilik öncelikli yaklaşım, hassas verileri tesis içinde tutar.

Sağlık Kayıtları

Sağlık kuruluşları hasta formlarını ve reçetelerini dijitalleştirir. Çok dilli sağlık ortamları için faydalı olan 8 dili tanır. Yerel dağıtım, verileri şirket içinde tutarak HIPAA uyumluluk gereksinimlerini karşılar.

Sonuç

GLM-OCR, 0,9 milyar parametrelik bir pakette üretim düzeyinde belge anlama sunar. Yerel olarak dağıtabilir, veri gizliliğini koruyabilir ve bulut API'leriyle rekabet eden iş hacmi oranlarına ulaşabilirsiniz; hem de istek başına fiyatlandırma olmadan. Mimari, geleneksel OCR'nin gözden kaçırdığı karmaşık düzenleri, tabloları ve formülleri işlerken, MIT lisansı sınırsız ticari kullanıma izin verir.

Yüksek iş hacmi ve OpenAI uyumluluğu gerektiren üretim dağıtımları için vLLM'yi seçin. Maksimum çıkarım hızı önemli olduğunda SGLang'ı kullanın. Geliştirme ve özel ardışık düzenler için Transformers'ı tercih edin. Her seçenek aynı temel modeli çalıştırır, bu nedenle yeniden eğitim veya yeniden ayarlama yapmadan dağıtım yöntemlerini değiştirebilirsiniz.

Belge işleme ardışık düzenleri oluştururken – faturalardan veri ayıklama, teknik dokümantasyonu ayrıştırma veya form işlemeyi otomatikleştirme olsun – Apidog ile API testlerinizi kolaylaştırın. GLM-OCR dağıtım iş akışınızı tamamlayan görsel istek oluşturma, otomatik dokümantasyon üretimi ve işbirlikçi hata ayıklama araçları sunar.

button

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin