Logo Gen-AI Microsystems

Arquitectura 1: Pipeline distribuido con Ray para tolerancia a fallos

12/24/2025

Arquitectura 1: Pipeline distribuido con Ray para tolerancia a fallos

Arquitectura 1: Pipeline distribuido con Ray para tolerancia a fallos

Por Walter Milstein

La Arquitectura 1 utiliza Ray para procesamiento distribuido con recursos GPU gestionados a 300 DPI. Este diseño prioriza tolerancia a fallos, observabilidad y escalabilidad multi-nodo sobre velocidad bruta en un solo nodo.

Justificación del diseño

Los despliegues empresariales requieren garantías de robustez: recuperación automática de fallos, monitoreo detallado y escalado horizontal. Ray proporciona estas capacidades a través de su modelo de actores, mecanismos de tolerancia a fallos y gestión de clusters.

Los archivos PDF ingresan a la arquitectura y se procesan a través de cinco etapas secuenciales dentro de la capa de orquestación distribuida de Ray: extracción convierte páginas PDF a imágenes, preprocesamiento mejora la calidad de imagen, OCR realiza reconocimiento de texto usando aceleración GPU, chunking segmenta el texto en bloques semánticos, y finalmente generación de embeddings con almacenamiento persiste los vectores en Weaviate.

Stack tecnológico

Orquestación: Ray 2.x para distribución, scheduling y tolerancia a fallos.

Motor OCR: PaddleOCR + TensorRT FP16 para inferencia acelerada por GPU.

Rasterización: Poppler (pdf2image) para conversión PDF a imagen.

Embeddings: OpenAI API (text-embedding-ada-002) para generación de vectores.

Base de datos vectorial: Weaviate para almacenamiento y búsqueda por similitud.

Estrategia de paralelización

La estrategia de paralelización se basa en el scheduler de Ray para particionar trabajo entre actores. Cada etapa del pipeline se ejecuta como actores Ray independientes con recursos explícitamente gestionados, permitiendo control fino sobre la asignación de CPU y GPU.

Ray asigna recursos GPU a los actores OCR explícitamente, previniendo contención y asegurando rendimiento predecible. La transferencia de datos inter-etapa aprovecha el object store de Ray, un mecanismo de memoria compartida que evita overhead repetido de serialización y deserialización al pasar arrays de imágenes grandes entre etapas.

Tolerancia a fallos

La Arquitectura 1 proporciona confiabilidad de grado empresarial mediante tres mecanismos:

Reintento automático: Las tareas fallidas se reprograman automáticamente a workers disponibles sin intervención manual.

Checkpointing: El progreso se guarda y puede reanudarse después de interrupciones del sistema.

Reinicio de actores: Los actores crasheados son automáticamente reiniciados por el supervisor de Ray, asegurando que el pipeline continúe procesando incluso cuando componentes individuales fallan.

Resultados experimentales

Los resultados revelan una arquitectura que exhibe comportamiento de escalado estable y predecible, con la capa de coordinación de Ray introduciendo overhead pero habilitando la robustez esperada de sistemas distribuidos de grado empresarial.

Imagen del post

Análisis de resultados

A medida que aumentan los recursos CPU, el sistema muestra aceleración casi lineal en configuraciones solo-CPU, subiendo de 2.26x con 2 CPUs a 10.80x con 32 CPUs. Esto indica que el overhead de scheduling de Ray permanece controlado incluso bajo alta concurrencia de tareas.

Las configuraciones con GPU demuestran un efecto aún más pronunciado: una vez que se introduce la GPU, el cuello de botella se desplaza de la inferencia OCR a todas las etapas restantes del pipeline (rasterización PDF, preprocesamiento, chunking, embedding y almacenamiento). Como resultado, la mejora de throughput se vuelve dominada por el paralelismo del lado CPU mientras la GPU elimina el cuello de botella de inferencia.

Una observación clave es que la arquitectura mantiene escalado suave sin plateau temprano. Las configuraciones GPU escalan predeciblemente hasta 32 CPUs, sugiriendo que Ray balancea eficientemente el trabajo entre actores y que la contención GPU no se vuelve prohibitiva.

Throughput alcanzado

La configuración óptima—32 cores CPU con una GPU—logra 24.3x de speedup, reduciendo el tiempo total de procesamiento de aproximadamente 5 horas a solo 12.4 minutos, correspondiendo a un throughput de 917 páginas/minuto.

Ventajas y limitaciones

Ventajas

Robustez y observabilidad: El diseño proporciona tolerancia a fallos de grado empresarial adecuada para despliegues de misión crítica, mientras Ray Dashboard ofrece monitoreo en tiempo real del progreso de tareas, utilización de recursos y salud de la arquitectura.

Escalado horizontal: Agregar nodos al cluster Ray automáticamente aumenta la capacidad de procesamiento.

Alta calidad: El procesamiento a 300 DPI preserva detalles finos del documento para output OCR de alta calidad.

Limitaciones

Overhead de coordinación: La coordinación Ray introduce overhead de latencia comparado con procesamiento local, ya que las tareas deben ser scheduled, despachadas y los resultados agregados a través de la arquitectura distribuida.

Complejidad operacional: La arquitectura requiere setup y gestión continua del cluster Ray, aumentando la complejidad operacional.

Consumo de recursos: La infraestructura Ray consume recursos computacionales que de otro modo podrían dedicarse al procesamiento OCR.

¿Cuándo usar esta arquitectura?

La Arquitectura 1 es la opción recomendada cuando:

• Se requiere tolerancia a fallos para procesamiento de misión crítica.

• Se necesita monitoreo empresarial vía Ray Dashboard.

• La calidad máxima (300 DPI) es prioritaria sobre velocidad.

• Se requiere integración completa con pipeline RAG (chunking + embeddings + Weaviate).

• El despliegue es multi-nodo o se planea escalar horizontalmente.

Conclusión

La Arquitectura 1 demuestra que es posible lograr escalado predecible y garantías de robustez empresarial utilizando Ray como orquestador distribuido. Los resultados muestran que el diseño no persigue el tiempo mínimo absoluto, sino que entrega escalado predecible, resiliencia operacional y rendimiento competitivo incluso cuando procesa a alta resolución (300 DPI) con construcción completa de RAG.

En el próximo artículo, exploraremos la Arquitectura 2: el enfoque de máxima velocidad en un solo nodo que logra 69.9x de speedup eliminando todo overhead distribuido.

Próximo artículo: Arquitectura 2 - De 5 horas a 4 minutos: máxima velocidad local con ProcessPoolExecutor