Orquestación de trabajos por lotes sin servidor en Amazon Bedrock utilizando AWS Step Functions

0
2
Build a serverless Amazon Bedrock batch job orchestration workflow using AWS Step Functions

Las organizaciones están adoptando cada vez más modelos de base (FMs) para sus cargas de trabajo de inteligencia artificial y aprendizaje automático (IA/ML), lo que hace esencial una gestión eficiente de las operaciones de inferencia a gran escala. Amazon Bedrock ofrece dos patrones generales de inferencia a gran escala: la inferencia en tiempo real y la inferencia en lotes, lo que resulta útil en casos que requieren procesar grandes volúmenes de datos, donde no es necesario obtener resultados inmediatos.

La inferencia por lotes de Amazon Bedrock se presenta como una solución rentable, ofreciendo un 50% de descuento en comparación con el procesamiento bajo demanda, lo que la convierte en la opción ideal para cargas de trabajo de alto volumen y que no requieren tiempo crítico. Sin embargo, implementar la inferencia por lotes a gran escala trae consigo desafíos, tales como la gestión del formato de entrada, las cuotas de trabajo, la orquestación de ejecuciones concurrentes y el manejo de tareas de postprocesamiento. Por ello, los desarrolladores requieren un marco robusto que simplifique estas operaciones.

En un reciente post, se presentó una solución flexible y escalable que facilita el flujo de trabajo de la inferencia por lotes. Este enfoque proporciona un sistema altamente escalable para gestionar las necesidades de inferencia por lotes de los FMs, como la generación de embeddings para millones de documentos o la ejecución de tareas de evaluación o finalización con grandes conjuntos de datos.

La solución divide el trabajo en tres fases principales: el preprocesamiento de los conjuntos de datos de entrada, la ejecución de trabajos de inferencia por lotes en paralelo y el postprocesamiento para analizar las salidas del modelo. Utilizando un simple input de configuración, el sistema de administración de funciones de AWS (Step Functions) se encarga de preparar el conjunto de datos, lanzar los trabajos en paralelo y realizar el postprocesamiento del output.

Por ejemplo, se analizan 2.2 millones de filas de datos del conjunto de datos de código abierto SimpleCoT. Este conjunto está diseñado para demostrar y entrenar el razonamiento «chain-of-thought» (CoT) en modelos de lenguaje, abarcando una variedad de tipos de problemas, desde comprensión de lectura hasta razonamiento lógico.

La arquitectura del sistema de orquestación por lotes utiliza componentes escalables y sin servidor para cubrir los aspectos arquitectónicos clave específicos de los flujos de trabajo de procesamiento por lotes. Los inputs del trabajo deben estar estructurados como archivos JSONL almacenados en un bucket de Amazon S3, y se deben tener en cuenta las cuotas para cada set de datos en función del modelo. Además, el sistema usa Step Functions para coordinar trabajos de larga duración, con Amazon DynamoDB manteniendo un inventario del estado de cada trabajo.

Para generar embeddings o respuestas de texto, no se necesita un identificador de prompt para la mayoría de los modelos, pero es crucial asegurarse de que el archivo de entrada contenga las columnas adecuadas. Durante la ejecución de la máquina de estados de Step Functions, se garantiza que el proceso se mantenga organizado y que las salidas sean unidas de vuelta con los datos de entrada originales.

A medida que esta solución se implementa, las empresas tienen la oportunidad de explorar una arquitectura sin servidor para el procesamiento por lotes a gran escala, contribuyendo tanto a la generación de datos sintéticos como a la obtención de etiquetas de datos de manera eficiente. La solución ya está disponible en un repositorio de GitHub, donde se espera que los desarrolladores la adapten a sus necesidades específicas.
vía: AWS machine learning blog