প্রকল্প সম্পর্কে
olmOCR
olmOCR হলো এমন একটি টুলকিট যা PDF এবং অন্যান্য ইমেজ-ভিত্তিক ডকুমেন্ট ফরম্যাট (PNG, JPEG) থেকে পরিষ্কার, পাঠযোগ্য প্লেইন টেক্সট বা Markdown তৈরি করে। এটি জটিল লেআউটেও ডকুমেন্টকে প্রাকৃতিক পড়ার ক্রমে সাজিয়ে বড় আকারের LLM প্রশিক্ষণ ডেটাসেট তৈরির জন্য ডিজাইন করা হয়েছে। প্রজেক্টটি Allen Institute for Artificial Intelligence (AI2)-এর AllenNLP টিম তৈরি করেছে।
মূল বৈশিষ্ট্যসমূহ
- PDF/Image to Markdown: PDF, PNG এবং JPEG ডকুমেন্টকে পরিষ্কার Markdown ফরম্যাটে রূপান্তর করে।
- Natural Reading Order: একাধিক কলাম বা জটিল ডকুমেন্টেও যৌক্তিক পড়ার ক্রম বজায় রাখে।
- Cost-Effective: প্রতি মিলিয়ন পৃষ্ঠা রূপান্তরে $200 USD-এর কম খরচ (7B প্যারামিটার VLM-এর ভিত্তিতে, GPU প্রয়োজন)।
- Benchmark Suite: olmOCR-Bench অন্তর্ভুক্ত, যেখানে ১,৪০০ ডকুমেন্ট জুড়ে ৭,০০০+ টেস্ট কেস রয়েছে OCR কর্মক্ষমতা মাপার জন্য।
- Flexible Inference: লোকাল GPU-তে চালান, বাহ্যিক vLLM সার্ভারের সাথে সংযোগ করুন, অথবা ক্লাউড প্রদানকারী (যেমন Cirrascale, DeepInfra, Parasail) ব্যবহার করুন।
- Parallel Processing: মিলিয়ন PDF প্রক্রিয়াকরণের জন্য মাল্টি-নোড, মাল্টি-ওয়ার্কার সাপোর্ট।
- Docker Support: মডেল সহ বা ছাড়া প্রি-বিল্ড ইমেজ (মডেল সহ ~30GB)।
- Filtering: ইংরেজি PDF-এর জন্য বেসিক ফিল্টারিং (নন-ফর্ম, নন-SEO স্প্যাম)।
ইনস্টলেশন
pip দিয়ে ইনস্টল করুন। GPU সাপোর্টের জন্য (লোকাল ইনফারেন্সের জন্য সুপারিশকৃত):
pip install olmocr[gpu] --extra-index-url https://download.pytorch.org/whl/cu128
শুধুমাত্র বাহ্যিক সার্ভার ব্যবহারের জন্য (GPU ডিপেন্ডেন্সি ছাড়া):
pip install olmocr
ঐচ্ছিক এক্সট্রা: beaker AI2 Beaker ইন্টিগ্রেশনের জন্য, bench বেঞ্চমার্ক স্যুটের জন্য।
দ্রুত শুরু
PDF-কে Markdown-এ রূপান্তর করুন
# একটি নমুনা PDF ডাউনলোড করুন
wget https://arxiv.org/pdf/2502.18443
# এটি মার্কডাউনে রূপান্তর করুন
olmocr ./localworkspace --markdown --pdfs olmocr-sample.pdf
একটি ইমেজ ফাইল রূপান্তর করুন
olmocr ./localworkspace --markdown --pdfs random_page.png
রিমোট ইনফারেন্স সার্ভার ব্যবহার করুন
olmocr ./localworkspace --server http://remote-server:8000/v1 --model allenai/olmOCR-2-7B-1025-FP8 --markdown --pdfs *.pdf
ফলাফল Markdown ফাইল হিসেবে ./localworkspace/markdown/-এ সংরক্ষিত হয়। olmocr কমান্ডের পরিবর্তে python -m olmocr.pipeline-ও ব্যবহার করতে পারেন।
কমান্ড-লাইন অপশন
মূল আর্গুমেন্টগুলো:
- --pdfs: PDF-এর পাথ (লোকাল, S3, বা glob প্যাটার্ন)।
- --model: মডেল আইডেন্টিফায়ার (ডিফল্ট: allenai/olmOCR-7B-0725-FP8)।
- --server: বাহ্যিক vLLM বা OpenAI-সামঞ্জস্যপূর্ণ সার্ভারের URL।
- --api_key: বাহ্যিক প্রদানকারীদের জন্য API কী।
- --workers: সমান্তরাল ওয়ার্কারের সংখ্যা।
- --markdown: আউটপুট Markdown হিসেবে লেখে।
- --apply_filter: ইংরেজি PDF-এ বেসিক ফিল্টারিং প্রয়োগ করে।
- --beaker: AI2 Beaker-এ জব জমা দেয়।
- --guided_decoding: কাঠামোবদ্ধ YAML আউটপুটের জন্য গাইডেড ডিকোডিং চালু করে।
- --max_concurrent_requests: ইনফারেন্স প্রদানকারীর কাছে সর্বোচ্চ সমকালীন অনুরোধ।
বাহ্যিক প্রদানকারী
olmOCR বিভিন্ন প্রদানকারীর সাথে পরীক্ষিত, প্রতি মিলিয়ন টোকেন খরচ:
Cirrascale: ইনপুট $0.07/1M, আউটপুট $0.15/1M।
উদাহরণ কমান্ড:
olmocr ./workspace --server https://ai2endpoints.cirrascale.ai/api --api_key sk-XXXX --model olmOCR-2-7B-1025 --pdfs *.pdf
DeepInfra: ইনপুট $0.09/1M, আউটপুট $0.19/1M।
উদাহরণ কমান্ড:
olmocr ./workspace --server https://api.deepinfra.com/v1/openai --api_key DfXXXX --model allenai/olmOCR-2-7B-1025 --pdfs *.pdf
Parasail: ইনপুট $0.10/1M, আউটপুট $0.20/1M।
উদাহরণ কমান্ড:
olmocr ./workspace --server https://api.parasail.io/v1 --api_key psk-XXXX --model allenai/olmOCR-2-7B-1025 --pdfs *.pdf
ডকার ব্যবহার
মডেল সহ ইমেজ পুল করুন (~30GB):
docker pull alleninstituteforai/olmocr:latest-with-model
একটি একক PDF রূপান্তর চালান:
docker run --gpus all alleninstituteforai/olmocr:latest-with-model -c "olmocr /workspace/output --markdown --pdfs /workspace/sample.pdf"
ব্যাচ প্রসেসিংয়ের জন্য:
docker run --gpus all -v /input:/input -v /output:/output alleninstituteforai/olmocr:latest-with-model -c "olmocr /output --markdown --pdfs /input/*.pdf"
কোড ওভারভিউ
পুনর্ব্যবহারযোগ্য উপাদান:
- Prompting strategy for natural text parsing (buildsilver.py)
- ভাষা অনুযায়ী ফিল্টারিং এবং SEO স্প্যাম অপসারণ (filter.py)
- Qwen2.5-VL-এর জন্য SFT ফাইনটিউনিং কোড (train.py)
- সিন্থেটিক ডেটা জেনারেশন (mine_html_templates.py)
- VLLM-এর সাথে মিলিয়ন PDF প্রক্রিয়াকরণের পাইপলাইন (pipeline.py)
সাম্প্রতিক আপডেট
- v0.4.0 (অক্টোবর ২১, ২০২৫): নতুন মডেল রিলিজ (olmOCR-2-7B-1025-FP8), olmOCR-bench-এ +৪ পয়েন্ট, RL প্রশিক্ষণ চালু।
- v0.3.0 (আগস্ট ১৩, ২০২৫): নতুন মডেল রিলিজ (olmOCR-7B-0825-FP8), অটো-রোটেশন এবং খালি ডকুমেন্ট হ্যালুসিনেশন ফিক্স।
- v0.2.1 (জুলাই ২৪, ২০২৫): নতুন মডেল রিলিজ (olmOCR-7B-0725-FP8), olmOCR-Bench-এ +৩ পয়েন্ট, দ্রুত ইনফারেন্স।
- v0.2.0 (জুলাই ২৩, ২০২৫): সহজ কাস্টম প্রশিক্ষণের জন্য ট্রেইনার কোড পরিষ্কার করা হয়েছে।
- v0.1.75 (জুন ১৭, ২০২৫): sglang থেকে vllm ইনফারেন্সে পরিবর্তন, Docker আপডেট করে CUDA 12.8।
- v0.1.68 (মে ১৯, ২০২৫): olmOCR-Bench লঞ্চ (77.4 স্কোর), পাইপলাইন বাগ ফিক্স।
লাইসেন্স
Apache 2.0। বিস্তারিত জানতে LICENSE ফাইল দেখুন।
টিম
AI2-এর AllenNLP টিম তৈরি করেছে, যা একটি অলাভজনক গবেষণা প্রতিষ্ঠান।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.