olmOCR: conversión de documentos PDF a texto, compatibilidad con tablas, fórmulas y reconocimiento de contenido manuscrito.
Últimos recursos sobre IAPublicado hace 6 meses Círculo de intercambio de inteligencia artificial 2.9K 00
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.

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 --help
Si 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
- Preparación de archivos PDF:
- Coloque el PDF a procesar en un directorio local, por ejemplo
./tests/gnarly_pdfs/horribleocr.pdf
.
- Coloque el PDF a procesar en un directorio local, por ejemplo
- Ejecutar comando de procesamiento:
python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf
- 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.
- Una vez finalizado el procesamiento, los resultados se guardan en formato JSON en el archivo
- Parámetros de ajuste (opcional):
--workers
Establece 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)
- 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 cantandos3://my_s3_bucket/jakep/gnarly_pdfs/
.
- Cargar archivos PDF:
- Cargar archivos PDF en
s3://my_s3_bucket/jakep/gnarly_pdfs/
.
- Cargar archivos PDF en
- 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.
- 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á.
- Resultados:
- Los resultados se almacenan en el archivo
s3://my_s3_bucket/pdfworkspaces/exampleworkspace/results
.
- Los resultados se almacenan en el archivo
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)
- 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
- 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-preview
ejecute 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.
- modificaciones
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
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...