Tutorial Langkah-demi-Langkah Pemasangan olmOCR Secara Lokal: Permudahkan Pemprosesan PDF!

Tutorial Langkah-demi-Langkah Pemasangan olmOCR Secara Lokal: Permudahkan Pemprosesan PDF!

Author

OLMOCR Team

1 Mac 2025

Tutorial Langkah-demi-Langkah Pemasangan olmOCR Secara Lokal: Permudahkan Pemprosesan PDF!

Logo olmOCR

Perhatian kepada semua yang memproses dokumen PDF! Hari ini, saya ingin memperkenalkan alat yang hebat - olmOCR, yang membolehkan model bahasa membaca pelbagai jenis PDF dengan susun atur yang pelik dengan mudah! Sama ada kertas akademik atau jadual yang kompleks, semuanya boleh dikendalikan. Yang paling menarik ialah ia menyokong pemasangan secara lokal, memastikan keselamatan data terjamin! Di bawah ini, saya akan membimbing anda langkah demi langkah melalui pemasangan dan penggunaannya 👇


🛠️ Persediaan: Pasang Pakej Kebergantungan

Pertama, kita perlu memasang beberapa kebergantungan peringkat sistem (contohnya, Ubuntu):

# Pemasangan satu klik untuk semua
sudo apt-get update
sudo apt-get install poppler-utils ttf-mscorefonts-installer msttcorefonts fonts-crosextra-caladea fonts-crosextra-carlito gsfonts lcdf-typetools

💡 Petua: Apabila anda menemui perjanjian lesen fon semasa pemasangan, tekan kekunci TAB untuk memilih <Yes> dan sahkan!


🌱 Cipta Persekitaran Python

Adalah disyorkan untuk menggunakan conda untuk menguruskan persekitaran:

conda create -n olmocr python=3.11
conda activate olmocr

# Klon repositori dan pasang
git clone https://github.com/allenai/olmocr.git
cd olmocr
pip install -e .

⚡ Pasang Komponen Pemecut

Ingin menggunakan GPU untuk pecutan? Dua baris arahan ini adalah penting:

pip install sgl-kernel==0.0.3.post1 --force-reinstall --no-deps
pip install "sglang[all]==0.4.2" --find-links https://flashinfer.ai/whl/cu124/torch2.4/flashinfer/

🚀 Pengalaman Pantas: Pertukaran PDF dalam Tindakan

Pertukaran Fail Tunggal

python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf

Pemprosesan Kelompok

python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/*.pdf

Hasil penukaran akan disimpan dalam fail JSONL dalam direktori ./localworkspace/results. Gunakan arahan ini untuk melihatnya:

cat localworkspace/results/output_*.jsonl

👀 Alat Perbandingan Visualisasi

Ingin membandingkan PDF asal dan hasil penukaran secara visual? Cuba ini:

python -m olmocr.viewer.dolmaviewer localworkspace/results/output_*.jsonl

Buka fail HTML dalam direktori dolma_previews yang dihasilkan, dan anda akan melihat antara muka perbandingan seperti ini 👇

Contoh Perbandingan Visualisasi


🧰 Permainan Lanjutan

Pemprosesan PDF Berskala Juta

Untuk pemprosesan PDF berskala besar peringkat perusahaan, anda boleh menggunakan kluster AWS:

# Permulaan nod pertama
python -m olmocr.pipeline s3://my_bucket/workspace --pdfs s3://my_bucket/pdfs/*.pdf

# Nod lain menyertai kluster
python -m olmocr.pipeline s3://my_bucket/workspace

Lihat Parameter Lengkap

python -m olmocr.pipeline --help

💻 Eksklusif untuk Peminat Docker

Dockerfile rasmi disediakan, menjadikannya lebih mudah untuk menarik imej secara langsung:

FROM allenai/olmocr-inference:latest
# Untuk penggunaan khusus, lihat dokumentasi projek
# Pautan adalah seperti berikut:
https://github.com/allenai/olmocr/blob/main/scripts/beaker/Dockerfile-inference

❓ Soalan Lazim

  1. Apa yang perlu dilakukan jika terdapat ralat GPU? Sahkan pemacu kad grafik dan versi CUDA. Adalah disyorkan untuk menggunakan kad baharu seperti RTX 4090/L40S/A100/H100.

  2. Adakah PDF Bahasa Cina disokong? Pada masa ini, ia dioptimumkan terutamanya untuk dokumen Bahasa Inggeris, tetapi anda boleh mencuba bahasa lain melalui parameter --apply_filter.

  3. Ruang cakera tidak mencukupi? Sediakan sekurang-kurangnya 30GB ruang. Adalah disyorkan untuk memasang SSD untuk memproses fail besar.


👏 Penghargaan

olmOCR dibangunkan oleh Allen Institute for AI (AI2) dan menggunakan lesen sumber terbuka Apache 2.0. Terima kasih khas kepada sumbangan pasukan pembangunan (senarai penyumbang penuh).

Cuba sekarang! Jika anda menghadapi sebarang masalah, sila berkomunikasi dalam komuniti Discord ~ 🎉