olmOCR: conversión de documentos PDF a texto, compatibilidad con tablas, fórmulas y reconocimiento de contenido manuscrito.

Introducción general

olmOCR es una herramienta de código abierto desarrollada por el equipo AllenNLP del Allen Institute for Artificial Intelligence (AI2) que se centra en la conversión de archivos PDF a texto linealizado, y es especialmente adecuada para la preparación de conjuntos de datos y el entrenamiento de modelos lingüísticos a gran escala (LLM). Admite la extracción de texto de documentos PDF complejos, mantiene el orden natural de lectura y puede manejar tablas, fórmulas e incluso contenido manuscrito. La herramienta está diseñada para ser eficiente y puede ejecutarse en GPU locales o a través de AWS S3 para procesamiento paralelo multinodo, lo que reduce significativamente los costes de procesamiento. Según los datos oficiales, su velocidad de procesamiento de hasta 3000 + tokens por segundo, el costo es sólo 1/32 de GPT-4o, es muy adecuado para los investigadores y desarrolladores que necesitan para hacer frente a un gran número de PDF. olmOCR utilizando Apache 2.0 licencia, código, modelo de pesos y los datos es completamente de código abierto, y anima a la comunidad a participar en la mejora.

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

Dirección de demostración: https://olmocr.allenai.org/

 

Lista de funciones

  • Extracción y linealización de textos PDF: Convierte archivos PDF en texto con formato JSONL al estilo Dolma, conservando el orden de lectura.
  • Razonamiento acelerado en la GPU: Aprovechamiento de GPU nativas y tecnología sglang para el procesamiento eficiente de documentos.
  • Procesamiento paralelo multinodo: Soporte para coordinar tareas multinodo a través de AWS S3, apto para procesar millones de PDFs.
  • Reconocimiento de contenidos complejosProcesamiento de tablas, fórmulas matemáticas y texto manuscrito para generar resultados estructurados.
  • Gestión flexible del espacio de trabajoSoporte de espacio de trabajo local o en la nube para almacenar los resultados del procesamiento y los datos intermedios.
  • Apoyo ecológico de código abierto: Proporcionar código y documentación completos para el desarrollo secundario y la personalización.

 

Utilizar la ayuda

Proceso de instalación

La instalación de olmOCR debe realizarse en un entorno que soporte Python, y se recomienda utilizar una GPU para mejorar la eficiencia del procesamiento. A continuación se detallan los pasos a seguir:

1. Preparación medioambiental

  • Instalación de Anaconda: Si no tienes Anaconda, ve a la web oficial para descargarlo e instalarlo.
  • Creación de un entorno virtual:
    conda create -n olmocr python=3.11
    conda activate olmocr
  • Repositorio de código clonado:
    git clone https://github.com/allenai/olmocr.git
    cd olmocr
    

2. Instalación de las dependencias básicas

  • Instalación de dependencias básicas:
    pip install -e .
    
  • Instalación de soporte para GPU (opcional)Instala sglang y flashinfer si necesitas aceleración GPU:
    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/
    

    tenga en cuentaAsegúrese de que el controlador de la GPU y la versión de CUDA son compatibles con las dependencias anteriores.

3. Verificación de la instalación

  • En la línea de comandos, ejecute python -m olmocr.pipeline --helpSi aparece el mensaje de ayuda, la instalación se ha realizado correctamente.

Utilización

olmOCR ofrece dos escenarios de uso principales: procesamiento local de un único archivo y procesamiento a gran escala en la nube. A continuación se describe en detalle el proceso de funcionamiento.

Procesamiento local de PDF individuales

  1. Preparación de archivos PDF:
    • Coloque el PDF a procesar en un directorio local, por ejemplo ./tests/gnarly_pdfs/horribleocr.pdf.
  2. Ejecutar comando de procesamiento:
    python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf
    
  3. Ver resultados:
    • Una vez finalizado el procesamiento, los resultados se guardan en formato JSON en el archivo ./localworkspace.
    • El texto extraído se almacena en formato JSONL al estilo Dolma en el archivo ./localworkspace/results Medio.
  4. Parámetros de ajuste (opcional):
    • --workersEstablece el número de subprocesos concurrentes, por defecto 8.
    • --target_longest_image_dim: Establece la longitud máxima del lado de la imagen renderizada, por defecto 1024 píxeles.

muestra de salida (cálculo):

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

Procesamiento a gran escala en la nube (AWS S3)

  1. Configuración del entorno de AWS:
    • Asegúrese de que dispone de una cuenta de AWS y genere una clave de acceso.
    • Cree dos buckets en S3, por ejemplo s3://my_s3_bucket/pdfworkspaces/exampleworkspace responder cantando s3://my_s3_bucket/jakep/gnarly_pdfs/.
  2. Cargar archivos PDF:
    • Cargar archivos PDF en s3://my_s3_bucket/jakep/gnarly_pdfs/.
  3. Iniciar una tarea de nodo maestro:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf
    
    • Este comando crea una cola de trabajo e inicia el procesamiento.
  4. Añadir nodos esclavos:
    • Funcionando en otras máquinas:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace
    
    • El nodo esclavo obtendrá automáticamente la tarea de la cola y la procesará.
  5. Resultados:
    • Los resultados se almacenan en el archivo s3://my_s3_bucket/pdfworkspaces/exampleworkspace/results.

tenga en cuentaConfiguración de la CLI de AWS: Debe configurar la CLI de AWS y asegurarse de que dispone de permisos suficientes para acceder al bucket de almacenamiento de S3.

Uso del vaso de precipitados (usuario interno AI2)

  1. Añadir parámetros del vaso:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf --beaker --beaker_gpus 4
    
  2. efecto operativo:
    • Una vez preparado el espacio de trabajo a nivel local, se inician automáticamente 4 nodos de trabajo GPU en el clúster.

Función destacada Operación

1. Tratamiento de documentos complejos

  • procedimiento:
    • Cargar PDF que contengan tablas o fórmulas.
    • Utilizar el modelo por defecto allenai/olmOCR-7B-0225-previewejecute el comando de procesamiento.
    • Compruebe el archivo JSONL de salida para asegurarse de que las tablas y las fórmulas se analizan como texto correctamente.
  • llamar la atención sobre algo:: Ajuste si el reconocimiento es deficiente --target_longest_image_dim para aumentar la resolución de la imagen.

2. Procesamiento de alto rendimiento

  • procedimiento:
    • Configurar un entorno multinodo (como AWS o Beaker).
    • aumentando --workers para mejorar el paralelismo autónomo.
    • Supervise la velocidad de procesamiento para garantizar más de 3000 fichas por segundo.
  • vanguardiaLos costes son tan bajos como 190 dólares por millón de páginas, mucho menos que las API comerciales.

3. Desarrollo a medida

  • procedimiento:
    • modificaciones olmocr/pipeline.py, ajustando la lógica de procesamiento.
    • intercambiabilidad --model utilizando una ruta de modelo personalizada.
    • Envíe código a GitHub y participe en el desarrollo de la comunidad.

advertencia

  • requisitos de hardwareSe requiere GPU para el funcionamiento local, se recomienda la tarjeta gráfica NVIDIA.
  • requisitos de la redEl procesamiento en la nube requiere una conexión de red estable con AWS.
  • Consejos de depuración: Uso --stats Parámetro para ver las estadísticas del espacio de trabajo para la resolución de problemas.

Con estos pasos, podrá ponerse al día rápidamente con olmOCR y realizar el trabajo de forma eficiente, tanto si trabaja con un único PDF como con un conjunto de datos a gran escala.

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...