Saltar al contenido principal

Docling

Configuración de rendimiento

Docling utiliza una arquitectura de pool de workers donde los workers se dividen automáticamente en dos grupos para calidad de servicio:
  • Workers de archivos pequeños: Procesan archivos menores a 1MB y con menos de 100 páginas
  • Workers de archivos grandes: Procesan archivos mayores o iguales a 1MB o con 100 páginas o más
Esto evita que los archivos grandes bloqueen la cola de procesamiento.

Parámetros de configuración

numWorkers: Número total de workers (se dividen automáticamente 50/50 entre procesamiento de archivos pequeños y grandes) numThreads: Total de hilos disponibles entre todos los workers. Cada worker recibe numThreads / numWorkers hilos.
Restricciones
  • numWorkers >= 2 y debe ser par
  • numThreads >= 2
  • numThreads debe ser divisible por numWorkers
  • Recomendado: Dejar al menos 20-30% de los núcleos libres para procesos del sistema
EstrategiaAlta concurrencia, archivos pequeños → Muchos workers, menos hilos por worker
  • Maximiza el procesamiento paralelo de múltiples documentos pequeños
  • Usar cuando se procesan muchos PDFs de menos de 100 páginas
Baja concurrencia, archivos grandes → Menos workers, más hilos por worker
  • Asigna más poder computacional por documento
  • Usar cuando se procesan libros escaneados o manuales técnicos

Configuración adicional

tableMode: Controla la estrategia de extracción de tablas
  • accurate: Máxima precisión, mayor tiempo de procesamiento (predeterminado)
  • fast: Optimizado para velocidad con buena precisión
  • none: Deshabilita la extracción de tablas
doCellMatching: Habilita el matching de celdas de tabla para mejorar el reconocimiento de estructura. Recomendado para tablas complejas (predeterminado: true) forceFullPageOCR: Fuerza OCR de página completa en lugar de regiones selectivas. Usar cuando la extracción estándar omite contenido. Incrementa significativamente el tiempo de procesamiento (predeterminado: false)

Configuraciones de ejemplo

Los siguientes ejemplos consideran un sistema con 48 núcleos de CPU. Ajusta numWorkers y numThreads según el número de CPUs de tu sistema y las características de tu carga de trabajo.
Caso de uso: Carga de trabajo constante con volumen moderado de archivos y tamaños promedioQué hace esto: Punto medio entre alto rendimiento y procesamiento pesado. Proporciona 2 workers para archivos pequeños y 2 para archivos grandes con 9 hilos cada uno, balanceando concurrencia y poder de procesamiento.
external:
  docling:
    # Rendimiento
    numWorkers: 4   # 2 para archivos pequeños, 2 para archivos grandes
    numThreads: 36  # 9 hilos por worker, dejando 12 núcleos libres
    
    # Configuración adicional
    tableMode: "accurate"
    doCellMatching: true
    forceFullPageOCR: false
Caso de uso: Procesamiento de grandes volúmenes de documentos de menos de 100 páginas y menores a 1MBQué hace esto: Maximiza el procesamiento concurrente de archivos con 8 workers para archivos pequeños y 8 para archivos grandes. Reduce hilos por worker para incrementar el paralelismo. Usa extracción rápida de tablas para optimizar velocidad sobre precisión.
external:
  docling:
    # Rendimiento
    numWorkers: 16  # 8 para archivos pequeños, 8 para archivos grandes
    numThreads: 32  # 2 hilos por worker, dejando 16 núcleos libres
    
    # Configuración adicional
    tableMode: "fast"        # Priorizar velocidad
    doCellMatching: false    # Deshabilitar para procesamiento más rápido
    forceFullPageOCR: false
Caso de uso: Procesamiento de documentos menos numerosos pero más grandes o complejos con tablas detalladasQué hace esto: Asigna más poder computacional por documento con 8 hilos por worker. Usa solo 2 workers para archivos pequeños y 2 para archivos grandes para enfocar recursos en el procesamiento exhaustivo de contenido complejo.
external:
  docling:
    # Rendimiento
    numWorkers: 4   # 2 para archivos pequeños, 2 para archivos grandes
    numThreads: 32  # 8 hilos por worker, dejando 16 núcleos libres
    
    # Configuración adicional
    tableMode: "accurate"
    doCellMatching: true
    forceFullPageOCR: false
Caso de uso: Procesamiento principalmente de documentos escaneados o imágenes que requieren extracción OCR completaQué hace esto: Reduce el número de workers para asignar más hilos por worker para procesamiento OCR intensivo. Habilita OCR de página completa para extraer texto de imágenes escaneadas. Usa menos workers (2 para pequeños, 2 para grandes) con 10 hilos cada uno para maximizar el poder de procesamiento por documento.
external:
  docling:
    # Rendimiento
    numWorkers: 4   # 2 para archivos pequeños, 2 para archivos grandes
    numThreads: 40  # 10 hilos por worker, dejando 8 núcleos libres
    
    # Configuración adicional
    tableMode: "accurate"
    doCellMatching: true
    forceFullPageOCR: true  # Requerido para documentos escaneados