Guía paso a paso para implementar olmOCR localmente: ¡Simplifica el procesamiento de PDF!

Guía paso a paso para implementar olmOCR localmente: ¡Simplifica el procesamiento de PDF!

Author

OLMOCR Team

1 de marzo de 2025

Guía paso a paso para implementar olmOCR localmente: ¡Simplifica el procesamiento de PDF!

olmOCR Logo

¡Atención a todos los que trabajan con documentos PDF! Hoy les presento una herramienta increíble: olmOCR, que permite a los modelos de lenguaje leer fácilmente archivos PDF con diseños complejos. Ya sean artículos académicos o tablas intrincadas, puede con todo. ¡Lo mejor es que admite la implementación local, lo que garantiza la seguridad de los datos! A continuación, te guiaré paso a paso por la instalación y el uso 👇


🛠️ Preparación: Instalación de dependencias

Primero, necesitamos instalar algunas dependencias a nivel de sistema (usando Ubuntu como ejemplo):

# Instalación completa con un solo comando
sudo apt-get update
sudo apt-get install poppler-utils ttf-mscorefonts-installer msttcorefonts fonts-crosextra-caladea fonts-crosextra-carlito gsfonts lcdf-typetools

💡 Consejo: Si encuentras un acuerdo de licencia de fuente durante la instalación, presiona la tecla TAB para seleccionar <Yes> y confirmar.


🌱 Creación del entorno Python

Se recomienda usar conda para administrar el entorno:

conda create -n olmocr python=3.11
conda activate olmocr

# Clona el repositorio e instala
git clone https://github.com/allenai/olmocr.git
cd olmocr
pip install -e .

⚡ Instalación de componentes de aceleración

¿Quieres usar la aceleración de GPU? Estos dos comandos son esenciales:

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/

🚀 Experiencia rápida: Conversión de PDF en acción

Conversión de un solo archivo

python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf

Procesamiento por lotes

python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/*.pdf

Los resultados de la conversión se guardarán en un archivo JSONL en el directorio ./localworkspace/results. Usa este comando para verlo:

cat localworkspace/results/output_*.jsonl

👀 Herramienta de comparación visual

¿Quieres comparar visualmente el PDF original y los resultados de la conversión? Prueba esto:

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

Abre el archivo HTML en el directorio dolma_previews generado y verás una interfaz de comparación como esta 👇

Ejemplo de comparación visual


🧰 Jugabilidad avanzada

Procesamiento de PDF a gran escala

Para el procesamiento de PDF a nivel empresarial, puedes usar un clúster de AWS:

# Inicialización del primer nodo
python -m olmocr.pipeline s3://my_bucket/workspace --pdfs s3://my_bucket/pdfs/*.pdf

# Otros nodos se unen al clúster
python -m olmocr.pipeline s3://my_bucket/workspace

Ver parámetros completos

python -m olmocr.pipeline --help

💻 Exclusivo para usuarios de Docker

Se proporciona un Dockerfile oficial, lo que facilita aún más la extracción directa de la imagen:

FROM allenai/olmocr-inference:latest
# Consulta la documentación del proyecto para obtener instrucciones de uso específicas.
# El enlace es el siguiente:
https://github.com/allenai/olmocr/blob/main/scripts/beaker/Dockerfile-inference

❓ Preguntas frecuentes

  1. ¿Qué debo hacer si hay un error de GPU?
    Verifica el controlador de la tarjeta gráfica y la versión de CUDA. Se recomiendan tarjetas más nuevas como RTX 4090/L40S/A100/H100.

  2. ¿Es compatible con PDF en chino?
    Actualmente, está optimizado principalmente para documentos en inglés, pero puedes probar otros idiomas con el parámetro --apply_filter.

  3. ¿Espacio en disco insuficiente?
    Reserva al menos 30 GB de espacio. Se recomienda montar un SSD para procesar archivos grandes.


👏 Agradecimientos

olmOCR es desarrollado por el Instituto Allen de Inteligencia Artificial (AI2) y utiliza la licencia de código abierto Apache 2.0. Un agradecimiento especial a las contribuciones del equipo de desarrollo (lista completa de colaboradores).

¡Pruébalo ahora! Si tienes algún problema, no dudes en comunicarte en la comunidad de Discord 🎉