olmOCR: PDF 문서를 텍스트로 변환, 표, 수식 및 필기 콘텐츠 인식 지원

최신 AI 리소스게시됨 6 개월 전 AI 공유 서클
13.5K 00

일반 소개

olmOCR은 Allen 인공지능 연구소(AI2)의 AllenNLP 팀이 개발한 오픈 소스 도구로, PDF 파일을 선형화된 텍스트로 변환하는 데 중점을 두고 있으며 특히 대규모 언어 모델(LLM)을 위한 데이터 세트 준비 및 훈련에 적합합니다. 복잡한 PDF 문서에서 텍스트 추출을 지원하고, 자연스러운 읽기 순서를 유지하며, 표, 수식, 심지어 손으로 쓴 내용까지 처리할 수 있습니다. 이 도구는 효율적으로 설계되어 로컬 GPU에서 실행하거나 다중 노드 병렬 처리를 위해 AWS S3를 통해 실행할 수 있어 처리 비용을 크게 절감할 수 있습니다. 공식 데이터에 따르면 처리 속도가 초당 최대 3000개 이상의 토큰을 처리할 수 있고 비용은 GPT-4o의 1/32에 불과해 대량의 PDF를 처리해야 하는 연구자와 개발자에게 매우 적합합니다. Apache 2.0 라이선스, 코드, 모델 가중치 및 데이터를 사용하는 olmOCR은 완전히 오픈 소스이며 커뮤니티가 개선에 참여하도록 장려하고 있습니다.

olmOCR:PDF文档转换为文本,支持表格、公式和手写内容的识别

데모 주소: https://olmocr.allenai.org/

 

기능 목록

  • PDF 텍스트 추출 및 선형화: 읽기 순서를 유지하면서 PDF 파일을 돌마 스타일 JSONL 형식의 텍스트로 변환합니다.
  • GPU 가속 추론효율적인 문서 처리를 위해 네이티브 GPU와 sglang 기술을 활용합니다.
  • 멀티 노드 병렬 처리수백만 개의 PDF를 처리하는 데 적합한 AWS S3를 통한 멀티 노드 작업 조정 지원.
  • 복잡한 콘텐츠 인식표, 수학 공식, 손글씨 텍스트를 처리하여 구조화된 결과를 출력합니다.
  • 유연한 업무 공간 관리처리 결과 및 중간 데이터를 저장하기 위한 로컬 또는 클라우드 작업 공간을 지원합니다.
  • 오픈 소스 생태 지원2차 개발 및 커스터마이징을 위한 완전한 코드와 문서를 제공합니다.

 

도움말 사용

설치 프로세스

olmOCR의 설치는 Python을 지원하는 환경에서 수행해야 하며, 처리 효율을 높이기 위해 GPU를 사용하는 것이 좋습니다. 자세한 단계는 다음과 같습니다:

1. 환경 준비

  • Anaconda 설치아나콘다가 없는 경우 공식 웹사이트로 이동하여 다운로드하여 설치하세요.
  • 가상 환경 만들기:
    conda create -n olmocr python=3.11
    conda activate olmocr
  • 복제 코드 리포지토리:
    git clone https://github.com/allenai/olmocr.git
    cd olmocr
    

2. 핵심 종속성 설치

  • 기본 종속성 설치:
    pip install -e .
    
  • GPU 지원 설치(선택 사항)GPU 가속이 필요한 경우 sglang과 flashinfer를 설치하세요:
    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/
    

    다음 사항에 유의하십시오.GPU 드라이버 및 CUDA 버전이 위의 종속성과 호환되는지 확인하세요.

3. 설치 확인

  • 명령줄에서 다음을 실행합니다. python -m olmocr.pipeline --help도움말 메시지가 출력되면 설치에 성공한 것입니다.

사용법

olmOCR은 로컬 단일 파일 처리와 클라우드에서의 대규모 처리라는 두 가지 주요 사용 시나리오를 제공합니다. 다음은 운영 프로세스에 대해 자세히 설명합니다.

개별 PDF의 로컬 처리

  1. PDF 파일 준비:
    • 처리할 PDF를 로컬 디렉터리에 배치합니다. ./tests/gnarly_pdfs/horribleocr.pdf.
  2. 처리 명령 실행:
    python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf
    
  3. 결과 보기:
    • 처리가 완료되면 결과는 JSON 형식의 ./localworkspace.
    • 추출된 텍스트는 Dolma 스타일 JSONL 형식으로 저장됩니다. ./localworkspace/results 가운데.
  4. 조정 매개변수(선택 사항):
    • --workers: 동시 작업자 스레드 수를 설정합니다(기본값은 8개).
    • --target_longest_image_dim렌더링된 이미지의 최대 측면 길이를 설정합니다(기본값은 1024픽셀).

샘플 출력(컴퓨팅):

{"text": "Molmo and PixMo:\nOpen Weights and Open Data\nfor State-of-the...", "metadata": {"primary_language": "en", "is_table": false}}

클라우드에서의 대규모 처리(AWS S3)

  1. AWS 환경 구성:
    • AWS 계정이 있는지 확인하고 액세스 키를 생성합니다.
    • 예를 들어 S3에서 두 개의 버킷을 만듭니다. s3://my_s3_bucket/pdfworkspaces/exampleworkspace 노래로 응답 s3://my_s3_bucket/jakep/gnarly_pdfs/.
  2. PDF 파일 업로드:
    • PDF 파일을 다음 주소로 업로드하세요. s3://my_s3_bucket/jakep/gnarly_pdfs/.
  3. 마스터 노드 작업 시작:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf
    
    • 이 명령은 작업 대기열을 만들고 처리를 시작합니다.
  4. 슬레이브 노드 추가:
    • 다른 컴퓨터에서 실행 중입니다:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace
    
    • 슬레이브 노드는 대기열에서 자동으로 작업을 가져와서 처리합니다.
  5. 결과 보기:
    • 결과는 s3://my_s3_bucket/pdfworkspaces/exampleworkspace/results.

다음 사항에 유의하십시오.AWS CLI를 구성하고 S3 스토리지 버킷에 액세스할 수 있는 충분한 권한이 있는지 확인해야 합니다.

비커 사용(AI2 내부 사용자)

  1. 비커 매개변수 추가:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf --beaker --beaker_gpus 4
    
  2. 운영 효과:
    • 로컬에서 작업 공간을 준비하면 클러스터에서 4개의 GPU 워커 노드가 자동으로 시작됩니다.

주요 기능 작동

1. 복잡한 문서 처리

  • 절차:
    • 표나 수식이 포함된 PDF를 업로드합니다.
    • 기본 모델 사용 allenai/olmOCR-7B-0225-preview를 클릭하고 처리 명령을 실행합니다.
    • 출력 JSONL 파일을 확인하여 표와 수식이 텍스트로 올바르게 구문 분석되고 있는지 확인합니다.
  • STH에 주목하세요.:: 인식이 잘 안 되는 경우 조정 --target_longest_image_dim 매개변수를 설정하여 이미지 해상도를 높일 수 있습니다.

2. 높은 처리량 처리

  • 절차:
    • 멀티노드 환경(예: AWS 또는 Beaker)을 구성합니다.
    • 증가 --workers 매개변수를 사용하여 독립형 병렬 처리를 향상시킬 수 있습니다.
    • 초당 3000개 이상의 토큰을 처리할 수 있도록 처리 속도를 모니터링합니다.
  • 최첨단비용은 백만 페이지당 190달러로 상용 API보다 훨씬 저렴합니다.

3. 사용자 지정 개발

  • 절차:
    • 수정 olmocr/pipeline.py를 클릭하고 처리 로직을 조정합니다.
    • 상호 호환성 --model 매개 변수를 사용하여 사용자 지정 모델 경로를 사용합니다.
    • GitHub에 코드를 제출하고 커뮤니티 개발에 참여하세요.

주의

  • 하드웨어 요구 사항로컬 작동을 위해서는 GPU가 필요하며, NVIDIA 그래픽 카드가 권장됩니다.
  • 네트워크 요구 사항클라우드 처리를 위해서는 AWS에 대한 안정적인 네트워크 연결이 필요합니다.
  • 디버깅 팁사용 --stats 문제 해결을 위한 작업 공간 통계를 볼 수 있는 매개변수입니다.

이러한 단계를 통해 단일 PDF 작업이든 대규모 데이터 세트 작업이든 상관없이 olmOCR을 빠르게 익히고 효율적으로 작업을 완료할 수 있습니다.

© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...