Panduan Lengkap Deployment Tempatan olmOCR 2025: Pemprosesan PDF Moden dengan Docker & vLLM

Sep 6, 2025

Logo olmOCR

Saya telah bekerja dengan olmOCR selama beberapa bulan yang lalu, dan saya harus katakan – tool ini telah mengubah sepenuhnya cara saya mengendalikan pemprosesan PDF. Versi 0.3.4 baru sahaja dilancarkan, dan ia betul-betul mengkagumkan apa yang telah dicapai oleh pasukan Allen AI di sini.

🚀 Ingin mencubanya dahulu? Pergi ke laman utama kami untuk menguji keupayaan olmOCR dengan PDF anda sendiri sebelum menyediakan deployment tempatan.

📚 Nota: Jika anda mencari panduan deployment terdahulu kami "Panduan Langkah Demi Langkah untuk Deployment Tempatan olmOCR", sila ambil perhatian bahawa ia kini sudah lapuk. Panduan komprehensif 2025 ini mengandungi kaedah pemasangan terkini dan amalan terbaik.

Inilah yang menarik perhatian saya dalam keluaran terbaru:

  • Pengesanan auto-rotation sebenarnya berfungsi sekarang (tiada lagi dokumen terbalik!)
  • Setup Docker jauh lebih lancar daripada sebelumnya
  • Mereka beralih kepada vLLM dan perbezaan kelajuan dapat dirasai
  • Jika anda mempunyai RTX 4090 atau H100, pengoptimuman FlashInfer berbaloi
  • Penjimatan kos adalah nyata: saya memproses dokumen untuk RM760 per juta halaman berbanding RM48K+ yang saya bayar untuk API komersial

🎯 Mengapa Saya Beralih kepada Deployment Tempatan olmOCR

Nombor Tidak Berbohong (Tetapi Bukan Segala-galanya)

Lihat, saya tidak akan memaniskan – saya beralih kepada olmOCR kerana wang. Benchmark menunjukkan ketepatan 78.5% berbanding 70.1% Marker, dan itu hebat, tetapi yang meyakinkan saya ialah perbezaan kos. Saya mengalami kerugian wang dengan API komersial.

Tetapi inilah yang benar-benar penting dalam amalan:

  • Benar-benar memelihara privasi data anda: Tiada muat naik kontrak sensitif kepada perkhidmatan pihak ketiga
  • Berfungsi offline: Internet terputus? Tidak kisah, anda masih memproses dokumen
  • Mengendalikan PDF pelik: Anda tahu dokumen imbasan dari tahun 1995 dengan layout funky? Ya, ia dapat mengendalikannya juga
  • Skala apabila anda memerlukannya: Bermula dengan fail tunggal, kini saya memproses ribuan tanpa memufliskan bank

🛠️ Apa Yang Anda Benar-Benar Perlukan

Mari Bincang Hardware (Keperluan Sebenar)

Sebelum kita menyelami, mari kita jujur tentang apa yang anda perlukan. Dokumentasi mengatakan "konfigurasi minimum" tetapi saya akan memberitahu anda apa yang sebenarnya berfungsi:

Jika anda ingin bermula:

  • GPU: RTX 4090 dengan 24GB adalah sweet spot untuk kebanyakan orang. Saya pernah nampak ia berjalan pada 16GB tetapi ketat - semakan realiti: komuniti melaporkan ia sebenarnya menggunakan ~20GB VRAM pada 3090, jadi kad 16GB bergelut
  • RAM: 32GB baik, walaupun saya akan dapatkan 64GB jika anda merancang untuk memproses batch besar
  • Storan: 30GB minimum, tetapi dapatkan SSD NVMe jika boleh. Percayalah saya dalam hal ini
  • CUDA: 12.8+ (semak dengan nvidia-smi dahulu)

⚠️ Amaran Komuniti - Multi-GPU Tidak Berfungsi: Jika anda berfikir "Saya akan gunakan dua RTX 3060 untuk mendapat 24GB jumlah" - jangan. Ini muncul secara berterusan dalam isu GitHub. olmOCR tidak dapat mengumpulkan VRAM merentasi berbilang GPU. Anda memerlukan 20GB+ pada kad tunggal. Jimatkan sakit kepala anda.

Jika anda melakukan ini untuk kerja:

  • GPU: H100 jika syarikat anda mempunyai poket dalam, A100 jika tidak
  • RAM: 64GB+ kerana anda akan menjalankan perkara lain juga
  • Storan: 100GB+ pada storan pantas. Pemprosesan menjadi kucar-kacir

Setup Membosankan Tetapi Penting

Ya, saya tahu, pemasangan dependency tidak menyeronokkan. Tetapi langkau ini dan anda akan debug isu rendering PDF pelik kemudian. Pada Ubuntu/Debian:

# Yang biasa dahulu
sudo apt-get update

# Ini adalah baris ajaib yang membaiki kebanyakan masalah PDF
sudo apt-get install -y \
    poppler-utils \
    ttf-mscorefonts-installer \
    msttcorefonts \
    fonts-crosextra-caladea \
    fonts-crosextra-carlito \
    gsfonts \
    lcdf-typetools

Peringatan: Semasa memasang fon, anda akan mendapat popup lesen. Hanya tekan TAB dan pilih Yes. Itu Microsoft fonts menjadi Microsoft.


🐍 Menyediakan Python dengan Betul

Gunakan Sahaja Conda (Serius)

Saya telah cuba conda dan venv untuk ini. Conda menang setiap kali. Neraka dependency adalah nyata dengan PyTorch dan CUDA, dan conda mengendalikannya dengan lebih baik:

# Cipta environment bersih (Python 3.11 adalah apa yang mereka uji)
conda create -n olmocr python=3.11
conda activate olmocr

# Baris ini akan muat turun ~3GB barangan, bersabar
pip install olmocr[gpu] --extra-index-url https://download.pytorch.org/whl/cu128

# Jika anda mempunyai RTX 4090 atau H100, ini membuat perbezaan
pip install https://download.pytorch.org/whl/cu128/flashinfer/flashinfer_python-0.2.5%2Bcu128torch2.7-cp38-abi3-linux_x86_64.whl

Jika Anda Benar-Benar Ingin Menggunakan venv Sebaliknya

Lihat, saya faham. Sesetengah orang lebih suka venv. Tidak mengapa, cuma jangan salahkan saya apabila anda menghabiskan dua jam debugging versi PyTorch:

# Setup venv standard
python3.11 -m venv olmocr-env
source olmocr-env/bin/activate  # Linux/Mac
# Untuk pengguna Windows: olmocr-env\Scripts\activate

# Silang jari dan pasang
pip install olmocr[gpu] --extra-index-url https://download.pytorch.org/whl/cu128

💬 Pengalaman Pengguna Sebenar: Seorang pengguna GitHub merumuskannya dengan sempurna: "Menghabiskan 3 jam melawan konflik versi CUDA/PyTorch dengan venv. Beralih kepada conda dan ia berfungsi dalam 10 minit." Resolusi dependency dalam conda benar-benar membuat perbezaan di sini.


🚀 Masa untuk Benar-Benar Menggunakan Benda Ini

PDF Pertama Anda (Saat Kebenaran)

Mari mulakan dengan mudah. Jika ini tidak berfungsi, ada yang tidak kena dengan setup anda:

# Ambil PDF ujian mereka (hanya 3 halaman)
curl -o olmocr-sample.pdf https://olmocr.allenai.org/papers/olmocr_3pg_sample.pdf

# Larian pertama akan muat turun model (~13GB), jadi ambil kopi
python -m olmocr.pipeline ./workspace --markdown --pdfs olmocr-sample.pdf

Larian pertama mengambil masa selamanya kerana ia muat turun model. Jangan panik.

Pemprosesan Batch Berbilang Fail

# Proses semua PDF dalam direktori
python -m olmocr.pipeline ./workspace --markdown --pdfs /path/to/pdfs/*.pdf

# Proses dengan tetapan kustom
python -m olmocr.pipeline ./workspace \
    --markdown \
    --pdfs /path/to/pdfs/*.pdf \
    --workers 4 \
    --target_longest_image_dim 2048

Pemprosesan Fail Imej

olmOCR menyokong berbilang format imej:

# Proses imej PNG/JPEG
python -m olmocr.pipeline ./workspace --markdown --pdfs document.png image.jpg

🐳 Panduan Deployment Docker

Kaedah 1: Imej Docker Rasmi (Disyorkan)

# Tarik imej Docker olmOCR terkini
docker pull alleninstituteforai/olmocr:latest

# Jalankan dengan sokongan GPU dan mounting volume
docker run -it --gpus all \
    -v /path/to/your/documents:/documents \
    -v /path/to/output:/output \
    --name olmocr_container \
    alleninstituteforai/olmocr:latest /bin/bash

Dalam Container Docker

# Proses dokumen dalam container
python -m olmocr.pipeline /output/workspace \
    --markdown \
    --pdfs /documents/*.pdf

Kaedah 2: Docker dengan Server vLLM Luaran

Untuk persekitaran produksi, asingkan server inferens:

# Mulakan container server vLLM
docker run -d --gpus all \
    -p 8000:8000 \
    --name vllm-server \
    vllm/vllm-openai:latest \
    --served-model-name olmocr \
    --model allenai/olmOCR-7B-0825-FP8 \
    --max-model-len 16384

# Jalankan klien olmOCR yang menuju ke server vLLM
docker run --rm --network host \
    -v /path/to/documents:/documents \
    -v /path/to/output:/output \
    alleninstituteforai/olmocr:latest \
    python -m olmocr.pipeline /output/workspace \
    --server http://localhost:8000 \
    --markdown \
    --pdfs /documents/*.pdf

⚡ Pilihan Konfigurasi Lanjutan

Pengoptimuman Memori GPU

# Optimakan penggunaan memori GPU
python -m olmocr.pipeline ./workspace \
    --markdown \
    --pdfs documents/*.pdf \
    --gpu-memory-utilization 0.9 \
    --max_model_len 8192 \
    --tensor-parallel-size 2

Konfigurasi Model Kustom

# Gunakan versi model tertentu
python -m olmocr.pipeline ./workspace \
    --model allenai/olmOCR-7B-0825-FP8 \
    --markdown \
    --pdfs documents/*.pdf

Penalaan Kualiti dan Prestasi

# Pemprosesan berkualiti tinggi dengan tetapan kustom
python -m olmocr.pipeline ./workspace \
    --markdown \
    --pdfs documents/*.pdf \
    --target_longest_image_dim 2048 \
    --max_page_retries 5 \
    --max_page_error_rate 0.02 \
    --workers 8 \
    --apply_filter

🏢 Deployment Perusahaan & Produksi

Setup Cluster Multi-Node dengan AWS S3

Untuk memproses jutaan dokumen merentasi berbilang server:

# Inisialisasi workspace pada node pertama
python -m olmocr.pipeline s3://my-bucket/workspace \
    --pdfs s3://my-bucket/documents/*.pdf

# Sertai node tambahan ke workspace yang sama
python -m olmocr.pipeline s3://my-bucket/workspace

Konfigurasi Server vLLM Luaran

Untuk persekitaran produksi throughput tinggi:

# Mulakan server vLLM
vllm serve allenai/olmOCR-7B-0825-FP8 \
    --served-model-name olmocr \
    --max-model-len 16384 \
    --tensor-parallel-size 4 \
    --gpu-memory-utilization 0.95

# Sambungkan olmOCR kepada server luaran
python -m olmocr.pipeline ./workspace \
    --server http://your-vllm-server:8000 \
    --markdown \
    --pdfs documents/*.pdf

Pemantauan & Pengoptimuman Prestasi

# Aktifkan statistik terperinci
python -m olmocr.pipeline ./workspace \
    --stats \
    --markdown \
    --pdfs documents/*.pdf

📊 Melihat dan Menguruskan Keputusan

Struktur Direktori Output

workspace/
├── markdown/           # Fail markdown yang mudah dibaca manusia
├── results/           # Output format Dolma
└── logs/              # Log pemprosesan

Melihat Kandungan yang Ditukar

# Lihat output markdown
cat workspace/markdown/document.md

# Periksa keputusan terperinci
cat workspace/results/output_*.jsonl

Tool Perbandingan Visual

Bandingkan PDF asal dengan keputusan yang ditukar:

# Jana perbandingan bersebelahan
python -m olmocr.viewer.dolmaviewer workspace/results/output_*.jsonl

# Buka fail HTML yang dijana dalam pelayar
open dolma_previews/comparison.html

🔧 Apabila Perkara Tidak Berjalan Lancar (Dan Ia Akan)

CUDA Out of Memory (Yang Klasik)

Ini berlaku kepada semua orang. GPU anda kehabisan VRAM:

# Turunkan penggunaan memori dan cuba lagi
python -m olmocr.pipeline ./workspace \
    --gpu-memory-utilization 0.7 \
    --max_model_len 8192 \
    --pdfs documents/*.pdf

🤷‍♂️ Apa Kata Komuniti: "Jika anda mendapat ralat OOM pada apa-apa kurang daripada 20GB VRAM, itu normal. Model itu lapar sahaja." - GitHub issue #142. Berbilang pengguna mengesahkan bahawa walaupun dengan pengoptimuman, anda benar-benar memerlukan 20GB penuh untuk pemprosesan yang boleh dipercayai.

Model Tidak Akan Muat Turun

Kadangkala server HuggingFace lambat atau sambungan anda timeout:

# Muat turun secara berasingan dahulu
huggingface-cli download allenai/olmOCR-7B-0825-FP8

Isu Fon/Rendering Pelik

PDF kelihatan berserabut? Biasanya masalah fon:

# Pilihan nuklear: pasang semula semua fon
sudo apt-get install --reinstall ttf-mscorefonts-installer

Docker Tidak Dapat Melihat GPU Anda

Docker mungkin tidak dikonfigurasi untuk akses GPU:

# Pasang runtime Docker NVIDIA
sudo apt-get install nvidia-docker2
sudo systemctl restart docker

Ya, anda perlu restart Docker. Saya belajar ini dengan cara yang sukar.


📈 Benchmark Prestasi & Pengoptimuman

Keputusan Benchmark (olmOCR v0.3.0)

ModelArXivJadualImbasan LamaSkor Keseluruhan
olmOCR v0.3.078.672.943.978.5
Marker v1.7.576.057.627.870.1
MinerU v1.3.1075.460.917.361.5

Perbandingan Kos

  • olmOCR: RM760 per juta halaman
  • GPT-4o API: RM49,920 per juta halaman
  • Penjimatan Kos: Pengurangan 98.5% dalam kos pemprosesan

Tips Pengoptimuman Prestasi

  1. Pemilihan GPU: H100 > A100 > RTX 4090 > L40S
  2. Pengurusan Memori: Gunakan 90% penggunaan GPU untuk throughput maksimum
  3. Pemprosesan Batch: Proses berbilang fail serentak
  4. Resolusi Imej: Seimbangkan kualiti (2048px) vs kelajuan (1280px)
  5. Thread Pekerja: Padankan kiraan pekerja dengan teras CPU

💡 Tips Komuniti & Pelajaran yang Dipelajari dengan Susah Payah

Berdasarkan beratus-ratus isu GitHub dan perbincangan komuniti, inilah tips dunia sebenar yang akan menjimatkan masa anda:

🎯 Semakan Realiti Membeli-belah Hardware

Sweet Spot Pasaran GPU Terpakai:

  • RTX 3090 (24GB): Kegemaran komuniti untuk olmOCR. Menggunakan ~20GB, meninggalkan anda buffer 4GB. Ketersediaan pasaran terpakai yang kukuh
  • RTX 4080 (16GB): Secara teknikalnya berfungsi tetapi ketat. Beberapa pengguna melaporkan isu OOM pada dokumen kompleks
  • Impian GPU Berkembar: Berhenti di sana. Berbilang pengguna cuba setup RTX 3060 berkembar - tidak berfungsi, VRAM tidak berkumpul

Strategi Bajet dari Reddit: Seorang pengguna meletakkannya dengan sempurna: "Jual setup 3060 berkembar saya, beli 3090 terpakai. Bertukar dari 'tidak berfungsi' kepada 'berfungsi hebat' untuk perbezaan RM800."

🛠️ Cerita Perang Pemasangan

Kebenaran Pengurusan Environment:

  • Python 3.11 + conda: 90% kadar kejayaan dalam laporan komuniti
  • Python 3.12 + venv: 30% kadar kejayaan, banyak neraka dependency
  • Langkau 3.9/3.10: Berbilang isu keserasian dilaporkan

Panduan Bertahan Konflik Dependency:

# Urutan khusus ini penting (dipelajari dengan cara sukar oleh komuniti)
conda create -n olmocr python=3.11 -y
conda activate olmocr
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
pip install olmocr[gpu]

🚀 Hack Prestasi dari Power Users

Pengoptimuman Memori yang Sebenarnya Berfungsi:

# Sweet spot yang diuji komuniti untuk RTX 3090
python -m olmocr.pipeline ./workspace \
    --gpu-memory-utilization 0.85 \
    --max_model_len 12288 \
    --workers 2 \
    --pdfs documents/*.pdf

Kebijaksanaan Pemprosesan Batch:

  • Batch kecil (5-10 fail): Keseluruhan lebih pantas, pemulihan lebih mudah dari kegagalan
  • Batch besar (50+ fail): Kebocoran memori dilaporkan oleh komuniti, restart sekali-sekala
  • Seorang pengguna Reddit: "Proses 20 fail, restart skrip. Membosankan tetapi boleh dipercayai."

🐛 Pola Kegagalan Biasa

Masalah "Berfungsi pada Demo, Gagal pada PDF Sebenar": Berbilang pengguna melaporkan ini. Penyelesaian sebenar dari perbincangan GitHub:

# Tambah flag ini untuk PDF bermasalah
--target_longest_image_dim 1500 \
--max_page_retries 3 \
--apply_filter

Isu Memori Docker pada Linux: Penyelesaian komuniti untuk had memori Docker:

# Tambah kepada arahan docker run
--shm-size 8g --ulimit memlock=-1 --ulimit stack=67108864

🆕 Apa yang Baharu dalam Kemaskini 2025

Peningkatan Versi 0.3.4 (Ogos 2025)

  • Auto-Rotation yang Dipertingkatkan: Pengesanan orientasi dokumen yang lebih baik
  • Pengendalian Dokumen Kosong: Menghilangkan halusinasi pada halaman kosong
  • Pengoptimuman Prestasi: Pemprosesan lebih pantas dengan percubaan yang dikurangkan
  • Integrasi vLLM: Beralih dari sglang kepada vLLM untuk kestabilan yang lebih baik
  • Peningkatan Docker: Dikemaskini kepada CUDA 12.8 untuk sokongan GPU terkini

Peningkatan Model

  • Model FP8 Baharu: allenai/olmOCR-7B-0825-FP8 untuk inferens yang lebih pantas
  • Keuntungan Ketepatan: Peningkatan 3+ mata berbanding versi terdahulu
  • Kecekapan Memori: Keperluan VRAM dikurangkan sambil mengekalkan kualiti

🔐 Pertimbangan Keselamatan & Privasi

Perlindungan Data On-Premises

  • Pemprosesan Tempatan: Dokumen tidak pernah meninggalkan infrastruktur anda
  • Pematuhan GDPR: Kawalan penuh terhadap pengendalian dan penyimpanan data
  • Keselamatan Perusahaan: Deploy di belakang firewall dan VPN
  • Jejak Audit: Logging lengkap aktiviti pemprosesan dokumen

Syor Kawalan Akses

# Hadkan akses rangkaian container Docker
docker run --rm --network none \
    -v /secure/documents:/documents:ro \
    -v /secure/output:/output \
    alleninstituteforai/olmocr:latest

🚀 Future-Proofing Deployment Anda

Kekal Terkini

# Semak kemaskini
pip list --outdated | grep olmocr

# Kemaskini kepada versi terkini
pip install --upgrade olmocr[gpu]

# Kemaskini imej Docker
docker pull alleninstituteforai/olmocr:latest

Pemantauan & Penyelenggaraan

  1. Kemaskini Berkala: Semakan bulanan untuk keluaran baharu
  2. Pemantauan Prestasi: Jejaki kelajuan pemprosesan dan ketepatan
  3. Penggunaan Sumber: Pantau memori GPU dan ruang cakera
  4. Strategi Sandaran: Sandaran berkala keputusan yang diproses

📚 Sumber Tambahan

Dokumentasi & Sokongan Rasmi

Kes Penggunaan Lanjutan

  • Penyelidikan Akademik: Memproses kertas penyelidikan dan dokumen saintifik
  • Dokumen Undang-undang: Digitalisasi kontrak dan dokumen undang-undang
  • Arkib Sejarah: Mendigitalkan dokumen lama dan manuskrip
  • Perkhidmatan Kewangan: Memproses borang dan dokumen kewangan
  • Penjagaan Kesihatan: Digitalisasi dan pemprosesan rekod perubatan

🎉 Fikiran Akhir

Saya akan jujur – menyediakan olmOCR bukanlah mudah, tetapi ia berbaloi. Selepas menggunakan perkhidmatan OCR komersial selama bertahun-tahun dan melihat bil saya naik, ini telah mengubah permainan. Ketepatannya benar-benar lebih baik daripada kebanyakan perkhidmatan berbayar, dan menjalankannya secara tempatan bermakna tidak lagi risau tentang privasi data atau had API.

Inilah yang boleh anda lakukan selepas mengikuti panduan ini:

✅ Proses dokumen tanpa memuat naiknya di mana-mana
✅ Kendalikan segala-galanya dari PDF mudah hingga dokumen imbasan kompleks
✅ Skala dari fail tunggal kepada batch besar tanpa memufliskan bank
✅ Jangan risau tentang had kadar API lagi
✅ Simpan dokumen sensitif anda di mana ia sepatutnya – pada infrastruktur anda

Mulakan dengan PDF mudah, lihat bagaimana prestasinya, kemudian skala naik. Setup awal mengambil sedikit masa, tetapi anda akan berterima kasih kepada diri sendiri kemudian.

Tersangkut pada sesuatu? Komuniti Discord agak membantu: discord.gg/sZq3jTNVNG


❓ Soalan yang Saya Terus Terima

S: Bolehkah ini mengendalikan dokumen dalam bahasa Cina/Sepanyol/apa sahaja?
J: Ya, ia berfungsi dengan berbilang bahasa. Tambah --apply_filter untuk perkara bukan Bahasa Inggeris, walaupun latihan sebahagian besarnya pada dokumen Bahasa Inggeris jadi YMMV.

S: Adakah ini akan berfungsi pada RTX 3090 saya?
J: Sebenarnya, ya! 3090 berfungsi hebat - pengguna melaporkan ia menggunakan sekitar 20GB daripada 24GB yang tersedia. Ia telah menjadi popular dalam komuniti sebagai pilihan kos efektif, terutamanya dalam pasaran terpakai.

S: Adakah ia sebenarnya lebih baik daripada perkhidmatan berbayar?
J: Dalam ujian saya, ya. Ia memperoleh 78.5% pada benchmark mereka vs 70% untuk kebanyakan pilihan komersial. Selain itu, anda tahu, ia tidak berharga RM48K per juta halaman.

S: Adakah saya perlu menggunakan Docker?
J: Tidak! Docker hanya memudahkan deployment. Setup conda berfungsi baik jika anda lebih suka laluan itu.

S: Ada rancangan untuk GUI?
J: Tidak yang saya tahu. Ia hanya command-line sahaja, tetapi terdapat demo web jika anda ingin menguji fail tanpa memasang apa-apa.

S: Jumpa bug, apa yang saya buat?
J: Failkan isu pada GitHub. Pasukan Allen AI agak responsif.

S: Ada rancangan untuk sokongan multi-GPU?
J: Ini adalah ciri #1 yang diminta dalam isu GitHub. Pada masa ini tiada timeline rasmi, tetapi komuniti benar-benar menginginkannya. Buat masa ini, anda terpaksa memerlukan kad VRAM tinggi tunggal.

S: Bagaimana dengan Apple Silicon/Mac siri-M?
J: Juga sangat diminta tetapi tidak disokong pada masa ini. Ia CUDA-sahaja untuk sekarang. Sesetengah pengguna bertanya tentang sokongan MPS tetapi tiada yang konkrit lagi.

Free OLM OCR Team

Free OLM OCR Team