منصوبے کے بارے میں

# olmOCR **olmOCR** ایک ٹول کٹ ہے جو PDF اور دیگر امیج پر مبنی دستاویزات (PNG, JPEG) کو صاف، قابل مطالعہ سادہ متن یا مارک ڈاؤن میں تبدیل کرتی ہے۔ یہ بڑے پیمانے پر LLM تربیتی ڈیٹا سیٹس بنانے کے لیے ڈیزائن کیا گیا ہے، جس میں دستاویزات کو قدرتی پڑھنے کی ترتیب میں لکیری کیا جاتا ہے، حتیٰ کہ پیچیدہ لے آؤٹ والی دستاویزات بھی۔ یہ پروجیکٹ ایلن انسٹی ٹیوٹ فار آرٹیفیشل انٹیلیجنس (AI2) کی AllenNLP ٹیم نے تیار کیا ہے۔ ## اہم خصوصیات - **PDF/Image to Markdown**: PDF, PNG, اور JPEG دستاویزات کو صاف مارک ڈاؤن فارمیٹ میں تبدیل کرتا ہے۔ - **قدرتی پڑھنے کی ترتیب**: منطقی پڑھنے کی ترتیب کو محفوظ رکھتا ہے، حتیٰ کہ کثیر کالم یا پیچیدہ دستاویزات میں بھی۔ - **لاگت مؤثر**: ایک ملین صفحات کی تبدیلی پر $200 USD سے کم لاگت (7B پیرامیٹر VLM پر مبنی، GPU درکار ہے)۔ - **بینچ مارک سوٹ**: olmOCR-Bench شامل ہے جس میں 1,400 دستاویزات پر 7,000 سے زیادہ ٹیسٹ کیسز ہیں، OCR کارکردگی کی پیمائش کے لیے۔ - **لچکدار انفرنس**: مقامی GPU کے ساتھ چلائیں، بیرونی vLLM سرورز سے منسلک ہوں، یا کلاؤڈ فراہم کنندگان استعمال کریں (مثلاً Cirrascale, DeepInfra, Parasail)۔ - **متوازی پروسیسنگ**: لاکھوں PDFs کے لیے ملٹی نوڈ، ملٹی ورکر پروسیسنگ سپورٹ کرتا ہے۔ - **ڈوکر سپورٹ**: پہلے سے بنی امیجز ماڈل کے ساتھ یا بغیر ماڈل کے (ماڈل کے ساتھ ~30GB)۔ - **فلٹرنگ**: انگریزی PDFs کے لیے بنیادی فلٹرنگ (غیر فارم، غیر 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 کو مارک ڈاؤن میں تبدیل کریں # ایک نمونہ 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 نتائج `./localworkspace/markdown/` میں مارک ڈاؤن فائلوں کے طور پر محفوظ ہوتے ہیں۔ آپ `olmocr` کمانڈ کے بجائے `python -m olmocr.pipeline` بھی استعمال کر سکتے ہیں۔ ## کمانڈ لائن آپشنز اہم دلائل میں شامل ہیں: - `--pdfs`: PDFs کے پاتھ (مقامی، S3، یا گلوب پیٹرن)۔ - `--model`: ماڈل شناخت (ڈیفالٹ: `allenai/olmOCR-7B-0725-FP8`)۔ - `--server`: بیرونی vLLM یا OpenAI مطابق سرور کا URL۔ - `--api_key`: بیرونی فراہم کنندگان کے لیے API کلید۔ - `--workers`: متوازی ورکرز کی تعداد۔ - `--markdown`: آؤٹ پٹ کو مارک ڈاؤن میں لکھیں۔ - `--apply_filter`: انگریزی PDFs پر بنیادی فلٹرنگ لاگو کریں۔ - `--beaker`: AI2 Beaker میں جاب جمع کریں۔ - `--guided_decoding`: سٹرکچرڈ YAML آؤٹ پٹس کے لیے گائیڈڈ ڈیکوڈنگ فعال کریں۔ - `--max_concurrent_requests`: انفرنس فراہم کنندہ کو زیادہ سے زیادہ ہم آہنگ درخواستیں۔ ## بیرونی فراہم کنندگان olmOCR کو کئی فراہم کنندگان کے ساتھ آزمایا گیا ہے، فی ملین ٹوکن لاگت کے ساتھ: | فراہم کنندہ | ان پٹ $/1M | آؤٹ پٹ $/1M | مثال کمانڈ | |----------|-----------|-------------|-----------------| | Cirrascale | $0.07 | $0.15 | `olmocr ./workspace --server https://ai2endpoints.cirrascale.ai/api --api_key sk-XXXX --model olmOCR-2-7B-1025 --pdfs *.pdf` | | DeepInfra | $0.09 | $0.19 | `olmocr ./workspace --server https://api.deepinfra.com/v1/openai --api_key DfXXXX --model allenai/olmOCR-2-7B-1025 --pdfs *.pdf` | | Parasail | $0.10 | $0.20 | `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" ## کوڈ کا جائزہ دوبارہ استعمال کے قابل اجزاء شامل ہیں: - **پرامپٹنگ حکمت عملی** قدرتی ٹیکسٹ پارسنگ کے لیے (buildsilver.py) - **فلٹرنگ** زبان اور SEO اسپام ہٹانے سے (filter.py) - **SFT فائن ٹیوننگ** Qwen2.5-VL کے لیے (train.py) - **مصنوعی ڈیٹا جنریشن** (mine_html_templates.py) - **پائپ لائن** VLLM کے ساتھ لاکھوں PDFs پروسیس کرنے کے لیے (pipeline.py) ## حالیہ اپ ڈیٹس - **v0.4.0 (اکتوبر 21, 2025)**: نیا ماڈل ریلیز (olmOCR-2-7B-1025-FP8)، olmOCR-bench پر +4 پوائنٹس، RL ٹریننگ متعارف کراتا ہے۔ - **v0.3.0 (اگست 13, 2025)**: نیا ماڈل ریلیز (olmOCR-7B-0825-FP8)، آٹو روٹیشن اور خالی دستاویز کے ہیلوسینیشن کی اصلاح۔ - **v0.2.1 (جولائی 24, 2025)**: نیا ماڈل ریلیز (olmOCR-7B-0725-FP8)، olmOCR-Bench پر +3 پوائنٹس، تیز انفرنس۔ - **v0.2.0 (جولائی 23, 2025)**: آسان کسٹم ٹریننگ کے لیے ٹرینر کوڈ صاف کیا گیا۔ - **v0.1.75 (جون 17, 2025)**: sglang سے vllm انفرنس میں تبدیل، ڈوکر کو CUDA 12.8 پر اپ ڈیٹ کیا گیا۔ - **v0.1.68 (مئی 19, 2025)**: olmOCR-Bench لانچ (77.4 سکور)، پائپ لائن بگ فکسز۔ ## لائسنس Apache 2.0۔ تفصیلات کے لیے LICENSE فائل دیکھیں۔ ## ٹیم AI2 میں AllenNLP ٹیم کے ذریعہ تیار کردہ، ایک غیر منافع بخش تحقیقی ادارہ۔