Orquestación de Trabajos por Lotes Sin Servidor en Amazon Bedrock con AWS Step Functions

Elena Digital López

Las organizaciones están incorporando cada vez más modelos de base (FMs) en sus operaciones de inteligencia artificial y aprendizaje automático (IA/ML), lo que ha puesto de relieve la necesidad de gestionar de manera eficiente las operaciones de inferencia a gran escala. Con esta premisa, Amazon Bedrock se ha posicionado como una solución clave, ofreciendo dos patrones de inferencia: en tiempo real y por lotes. La inferencia por lotes se convierte en una opción particularmente valiosa para manejar grandes volúmenes de datos que no requieren resultados inmediatos.

Este método se destaca por su rentabilidad, ya que ofrece un 50% de descuento en comparación con el procesamiento bajo demanda, lo que lo hace ideal para cargas de trabajo de gran volumen que pueden permitirse un cierto margen de tiempo. Sin embargo, los desarrolladores enfrentan desafíos en su implementación, como la gestión del formato de entrada, las cuotas de trabajo y la orquestación de ejecuciones concurrentes. Para abordar estas complejidades, se requiere un marco robusto que facilite la ejecución de estas operaciones.

Recientemente, se ha presentado una solución escalable y flexible que simplifica el flujo de trabajo de la inferencia por lotes. Este enfoque permite gestionar eficazmente las solicitudes de inferencia por lotes de los FMs, como la generación de embeddings para millones de documentos o la realización de evaluaciones con grandes conjuntos de datos.

La arquitectura del sistema se estructura en tres fases principales: primero, el preprocesamiento de los conjuntos de datos de entrada; segundo, la ejecución de trabajos de inferencia por lotes en paralelo; y tercero, el postprocesamiento para analizar los resultados generados por el modelo. Mediante un simple input de configuración, el sistema de gestión de funciones de AWS (Step Functions) se encarga de preparar el conjunto de datos, lanzar los trabajos en paralelo y gestionar el postprocesamiento de las salidas.

Un caso práctico que ilustra la eficacia de esta solución es el análisis de 2.2 millones de filas de datos del conjunto de datos SimpleCoT. Este set está diseñado para entrenar el razonamiento «chain-of-thought» (CoT) en modelos de lenguaje, abarcando diversas problemáticas desde comprensión lectora hasta razonamientos lógicos.

La solución de orquestación por lotes emplea componentes escalables y sin servidor, atendiendo a las particularidades arquitectónicas de los flujos de trabajo de procesamiento por lotes. Los inputs del trabajo deben estar en formato JSONL y almacenados en un bucket de Amazon S3, considerando las cuotas necesarias para cada conjunto de datos. Además, Step Functions juega un papel crucial en la coordinación de trabajos de larga duración, mientras que Amazon DynamoDB gestiona el estado de cada proceso.

Al generar embeddings o respuestas de texto, generalmente no se requiere un identificador de prompt, aunque es esencial que los archivos de entrada contengan las columnas adecuadas. Durante la ejecución de Step Functions, se facilita la organización del proceso y se garantiza que las salidas se unan correctamente con los datos de entrada originales.

La implementación de esta solución brinda a las empresas la oportunidad de explorar una arquitectura sin servidor para el procesamiento intensivo de datos, facilitando la generación de datos sintéticos y etiquetado de manera efectiva. La solución ya está disponible en un repositorio de GitHub, y se anticipa que los desarrolladores la adapten a sus necesidades específicas.