olmOCR: un toolkit de código abierto para procesar millones de PDFs con modelos de lenguaje

El Allen Institute for AI lanza olmOCR, una potente herramienta que transforma documentos PDF complejos en datos estructurados para entrenamiento de modelos LLM, integrando OCR, filtrado, visualización y procesamiento masivo en clúster.

El procesamiento de documentos en formato PDF sigue siendo uno de los mayores desafíos en la creación de datasets para modelos de lenguaje. olmOCR, desarrollado por el equipo de AllenNLP en el Allen Institute for AI (AI2), surge como una solución integral y escalable para abordar esta problemática.

¿Qué es olmOCR?

olmOCR es un toolkit de procesamiento y conversión de documentos PDF “in the wild” (con formatos variados, ruido y baja calidad OCR) pensado para alimentar sistemas de inteligencia artificial basados en texto y visión. El proyecto combina modelos de lenguaje de última generación como Qwen2-VL o Molmo-O con estrategias de prompting optimizadas y soporte para pipelines distribuidos a gran escala.

Entre sus características principales destacan:

  • 🔍 Estrategia de prompting con ChatGPT 4o para extraer texto natural con alta precisión.
  • 🧪 Toolkit de evaluación visual comparativa de diferentes versiones de pipeline.
  • 🧹 Filtro por idioma (inglés) y eliminación de contenido SEO o spam.
  • 🧠 Código de fine-tuning para modelos vision-language (VLM).
  • 📦 Procesamiento distribuido a través de múltiples nodos y soporte nativo para S3 y Beaker.
  • 👁️ Visualización Dolma-style para comparar el PDF original y el texto extraído.

Casos de uso

El objetivo de olmOCR es claro: desbloquear billones de tokens valiosos ocultos en documentos PDF, especialmente de dominios como papers científicos, reportes legales, documentos financieros o contenido educativo, y convertirlos en datos limpios para entrenamiento o inferencia de modelos LLM.

Es ideal para:

  • Creación de datasets de entrenamiento basados en documentos estructurados.
  • Análisis masivo de PDF en pipelines corporativos.
  • Extracción de texto natural en documentos con OCR deficiente.
  • Entrenamiento y evaluación de nuevos modelos vision-language en entornos reales.

Requisitos técnicos

Para operar olmOCR localmente se necesita:

  • GPU NVIDIA moderna (probado con RTX 4090, L40S, A100, H100) con al menos 20 GB de VRAM.
  • Dependencias de sistema como poppler-utils y fuentes tipográficas compatibles.
  • Entorno con Python 3.11 y sglang instalado para inferencia con modelos finetuneados.

Además, el sistema soporta procesamiento distribuido en clúster, lectura/escritura directa desde buckets de Amazon S3, y envío de trabajos a la infraestructura Beaker de AI2 para conversión a escala.

Cómo usar olmOCR

1. Procesamiento local

python -m olmocr.pipeline ./workspace --pdfs ./pdfs/*.pdf

Los resultados se almacenan como archivos .jsonl al estilo Dolma en el directorio workspace/results/.

2. Visualización de resultados

python -m olmocr.viewer.dolmaviewer workspace/results/output_*.jsonl

Esto genera una visualización HTML lado a lado del texto extraído frente al PDF original.

3. Procesamiento masivo en clúster/S3

python -m olmocr.pipeline s3://mybucket/pdfworkspace --pdfs s3://mybucket/docs/*.pdf --beaker --beaker_gpus 4

Esto lanza múltiples nodos de GPU en paralelo utilizando Beaker, ideal para convertir millones de documentos.

olmOCR-Bench: benchmark para OCR realista

Junto al toolkit se ha publicado olmOCR-Bench, una suite de evaluación con más de 1.400 documentos reales de distintas fuentes, con el fin de evaluar rendimiento OCR en escenarios adversos.

Código abierto y documentación

El proyecto está disponible en GitHub bajo licencia Apache 2.0:

👉 https://github.com/allenai/olmocr

Incluye documentación, scripts de entrenamiento, evaluación y visualización, así como herramientas adicionales como filter.py para limpieza del corpus y runeval.py para pruebas comparativas.


Cita académica

El trabajo completo puede consultarse en arXiv:2502.18443:

olmOCR: Unlocking Trillions of Tokens in PDFs with Vision Language Models
Jake Poznanski, Jon Borchardt, Jason Dunkelberger, Regan Huff, Daniel Lin, Aman Rangapur, Christopher Wilhelm, Kyle Lo, Luca Soldaini.

Scroll al inicio