Roca Amazónica es un servicio totalmente administrado que ofrece una selección de modelos básicos (FM) de alto rendimiento de empresas líderes en inteligencia artificial como AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI y Amazon a través de una única API, junto con una amplia conjunto de capacidades que necesita desarrollar IA generativa aplicaciones con seguridad, privacidad e IA responsable.

Inferencia por lotes en Amazon Bedrock procesa eficientemente grandes volúmenes de datos utilizando modelos básicos (FM) cuando los resultados en tiempo real no son necesarios. Es ideal para cargas de trabajo que no son sensibles a la latencia, como la obtención de incrustaciones, extracción de entidades, evaluaciones de FM como juez y categorización y resumen de texto para tareas de informes comerciales. Una ventaja clave es su rentabilidad, ya que las cargas de trabajo de inferencia por lotes se cobran con un descuento del 50 % en comparación con los precios bajo demanda. Referirse a Regiones y modelos admitidos para inferencia por lotes para soporte actual Regiones de AWS y modelos.

Aunque la inferencia por lotes ofrece numerosos beneficios, está limitada a 10 trabajos de inferencia por lotes enviados por modelo y región. Para abordar esta consideración y mejorar el uso de la inferencia por lotes, hemos desarrollado una solución escalable utilizando AWS Lambda y AmazonDynamoDB. Esta publicación lo guía a través de la implementación de un sistema de administración de colas que monitorea automáticamente los espacios de trabajo disponibles y envía nuevos trabajos a medida que hay espacios disponibles.

Lo guiamos a través de nuestra solución y detallamos la lógica central de las funciones Lambda. Al final, comprenderá cómo implementar esta solución para poder maximizar la eficiencia de sus flujos de trabajo de inferencia por lotes en Amazon Bedrock. Para obtener instrucciones sobre cómo iniciar su trabajo de inferencia por lotes de Amazon Bedrock, consulte Mejore la eficiencia del centro de llamadas mediante la inferencia por lotes para el resumen de transcripciones con Amazon Bedrock.

El poder de la inferencia por lotes

Las organizaciones pueden utilizar la inferencia por lotes para procesar grandes volúmenes de datos de forma asincrónica, lo que la hace ideal para escenarios donde los resultados en tiempo real no son críticos. Esta capacidad es particularmente útil para tareas como la generación de incrustaciones asincrónicas, la clasificación de texto a gran escala y el análisis de contenido masivo. Por ejemplo, las empresas pueden utilizar la inferencia por lotes para generar incrustaciones de grandes colecciones de documentos, clasificar conjuntos de datos extensos o analizar cantidades sustanciales de contenido generado por el usuario de manera eficiente.

Una de las ventajas clave de la inferencia por lotes es su rentabilidad. Amazon Bedrock ofrece FM seleccionados para inferencia por lotes al 50 % del precio de inferencia bajo demanda. Las organizaciones pueden procesar grandes conjuntos de datos de manera más económica debido a esta importante reducción de costos, lo que la convierte en una opción atractiva para las empresas que buscan optimizar sus gastos de procesamiento de IA generativa y al mismo tiempo mantener la capacidad de manejar volúmenes sustanciales de datos.

Descripción general de la solución

La solución presentada en esta publicación utiliza inferencia por lotes en Amazon Bedrock para procesar muchas solicitudes de manera eficiente utilizando la siguiente arquitectura de solución.

Este flujo de trabajo de arquitectura incluye los siguientes pasos:

  1. Un usuario carga archivos para ser procesados ​​en un Servicio de almacenamiento simple de Amazon (Amazon S3) cubo br-batch-inference-{Account_Id}-{AWS-Region} en el para procesar carpeta. Amazon S3 invoca el {stack_name}-create-batch-queue-{AWS-Region} Función lambda.
  2. La función Lambda invocada crea nuevas entradas de trabajo en una tabla de DynamoDB con el estado Pendiente. La tabla de DynamoDB es crucial para rastrear y administrar los trabajos de inferencia por lotes a lo largo de su ciclo de vida. Almacena información como ID del trabajo, estado, hora de creación y otros metadatos.
  3. El Puente de eventos de Amazon regla programado para ejecutarse cada 15 minutos invoca el {stack_name}-process-batch-jobs-{AWS-Region} Función lambda.
  4. El {stack_name}-process-batch-jobs-{AWS-Region} La función Lambda realiza varias tareas clave:
    • Explora la tabla de DynamoDB en busca de trabajos en InProgress, Submitted, Validation y Scheduled estado
    • Actualiza el estado del trabajo en DynamoDB según la información más reciente de Amazon Bedrock
    • Calcula los puestos de trabajo disponibles y envía nuevos trabajos desde el Pending hacer cola si hay espacios disponibles
    • Maneja escenarios de error actualizando el estado del trabajo a Failed y registrar detalles del error para solucionar problemas
  5. La función Lambda hace que Obtener trabajo de invocación de modelo Llamada API para obtener el estado más reciente de los trabajos de inferencia por lotes de Amazon Bedrock
  6. Luego, la función Lambda actualiza el estado de los trabajos en DynamoDB utilizando el Actualizar elemento Llamada API, asegurándose de que la tabla siempre refleje el estado más actual de cada trabajo.
  7. La función Lambda calcula el número de espacios disponibles antes del Límite de cuota de servicio para trabajos de inferencia por lotes. En base a esto, consulta trabajos en estado Pendiente que se pueden enviar.
  8. Si hay una ranura disponible, la función Lambda hará Crear trabajo de invocación de modelo Llamadas API para crear nuevos trabajos de inferencia por lotes para los trabajos pendientes
  9. Actualiza la tabla de DynamoDB con el estado de los trabajos de inferencia por lotes creados en el paso anterior.
  10. Una vez completado un trabajo por lotes, sus archivos de salida estarán disponibles en el depósito de S3. br-batch-inference-{Account_Id}-{AWS-Region} carpeta procesada

Requisitos previos

Para realizar la solución, necesita los siguientes requisitos previos:

Guía de implementación

Para implementar la canalización, complete los siguientes pasos:

  1. Elige el Pila de lanzamiento botón:
    Inicie Stack para crear recursos de solución
  2. Elegir Próximocomo se muestra en la siguiente captura de pantalla
  3. Especifique los detalles de la canalización con las opciones que se ajusten a su caso de uso:
    • Nombre de la pila (obligatorio) – El nombre que especificaste para esto Formación en la nube de AWS. El nombre debe ser único en la región en la que lo estás creando.
    • Id. del modelo (obligatorio) – Proporcionar el identificación del modelo que necesita que ejecute su trabajo por lotes.
    • RoleArn (opcional) – De forma predeterminada, la pila de CloudFormation implementará una nueva función de IAM con los permisos necesarios. Si tiene un rol que desea utilizar en lugar de crear un nuevo rol, proporcione el rol de IAM Nombre del recurso de Amazon (ARN) que tenga permiso suficiente para crear un trabajo de inferencia por lotes en Amazon Bedrock y leer/escribir en el depósito S3 creado br-batch-inference-{Account_Id}-{AWS-Region}. Siga las instrucciones en la sección de requisitos previos para crear este rol.
  1. En la sección de opciones de pila de configuración de Amazon, agregue etiquetas opcionales, permisos y otras configuraciones avanzadas si es necesario. O simplemente puedes dejarlo en blanco y elegir Próximocomo se muestra en la siguiente captura de pantalla.
  2. Revise los detalles de la pila y seleccione Reconozco que AWS CloudFormation podría crear recursos de AWS IAMcomo se muestra en la siguiente captura de pantalla.
  3. Elegir Entregar. Esto inicia la implementación de la canalización en su cuenta de AWS.
  4. Una vez que la pila se haya implementado correctamente, puede comenzar a utilizar la canalización. Primero, crea un /a-procesar carpeta en la ubicación creada de Amazon S3 para la entrada. Un .jsonl cargado en esta carpeta tendrá un trabajo por lotes creado con el modelo seleccionado. La siguiente es una captura de pantalla de la tabla de DynamoDB donde puede realizar un seguimiento del estado del trabajo y otros tipos de metadatos relacionados con el trabajo.
  5. Una vez completado el primer trabajo por lotes de la canalización, la canalización creará un /procesado carpeta en el mismo depósito, como se muestra en la siguiente captura de pantalla. Los resultados de los trabajos por lotes creados por esta canalización se almacenarán en esta carpeta.
  6. Para comenzar a utilizar este canal, cargue el .jsonl archivos que ha preparado para la inferencia por lotes en Amazon Bedrock

¡Ya terminaste! Ha implementado correctamente su canalización y puede verificar el estado del trabajo por lotes en la consola de Amazon Bedrock. Si quieres tener más insights sobre cada uno .jsonl estado del archivo, navegue hasta la tabla de DynamoDB creada {StackName}-DynamoDBTable-{UniqueString} y comprobar el estado allí. Es posible que deba esperar hasta 15 minutos para observar los trabajos por lotes creados porque EventBridge está programado para escanear DynamoDB cada 15 minutos.

Limpiar

Si ya no necesita esta canalización automatizada, siga estos pasos para eliminar los recursos que creó y evitar costos adicionales:

  1. En la consola de Amazon S3, elimine manualmente el contenido dentro de los depósitos. Asegúrese de que el balde esté vacío antes de pasar al paso 2.
  2. En la consola de AWS CloudFormation, elija pilas en el panel de navegación.
  3. Seleccione la pila creada y elija Borrarcomo se muestra en la siguiente captura de pantalla.

Esto elimina automáticamente la pila implementada.

Conclusión

En esta publicación, presentamos una solución escalable y eficiente para automatizar trabajos de inferencia por lotes en Amazon Bedrock. Al utilizar AWS Lambda, Amazon DynamoDB y Amazon EventBridge, hemos abordado desafíos clave en la gestión de flujos de trabajo de procesamiento por lotes a gran escala.

Esta solución ofrece varios beneficios importantes:

  1. Gestión de colas automatizada – Maximiza el rendimiento mediante la gestión dinámica de los espacios y envíos de trabajos
  2. Optimización de costos – Utiliza el descuento del 50% en el precio de inferencia por lotes para un procesamiento económico a gran escala

Esta canalización automatizada mejora significativamente su capacidad para procesar grandes cantidades de datos mediante inferencia por lotes para Amazon Bedrock. Ya sea que esté generando incrustaciones, clasificando texto o analizando contenido en masa, esta solución ofrece un enfoque escalable, eficiente y rentable para la inferencia por lotes.

A medida que implemente esta solución, recuerde revisar y optimizar periódicamente su configuración en función de sus patrones y requisitos de carga de trabajo específicos. Con este canal automatizado y el poder de Amazon Bedrock, está bien equipado para abordar tareas de inferencia de IA a gran escala de manera eficiente y efectiva. Le animamos a que lo pruebe y comparta sus comentarios para ayudarnos a mejorar continuamente esta solución.

Para recursos adicionales, consulte lo siguiente:


Sobre los autores

Yanyan Zhang es científica senior de datos de IA generativa en Amazon Web Services, donde ha estado trabajando en tecnologías de IA/ML de vanguardia como especialista en IA generativa, ayudando a los clientes a utilizar la IA generativa para lograr los resultados deseados. Yanyan se graduó de la Universidad Texas A&M con un doctorado en Ingeniería Eléctrica. Fuera del trabajo, le encanta viajar, hacer ejercicio y explorar cosas nuevas.

Ishan Singh es científico de datos de IA generativa en Amazon Web Services, donde ayuda a los clientes a crear soluciones y productos de IA generativa innovadores y responsables. Con una sólida experiencia en IA/ML, Ishan se especializa en la creación de soluciones de IA generativa que impulsan el valor empresarial. Fuera del trabajo, le gusta jugar voleibol, explorar senderos para bicicletas locales y pasar tiempo con su esposa y su perro, Beau.

Neeraj Lamba es un arquitecto de infraestructura en la nube con servicios profesionales del sector público mundial de Amazon Web Services (AWS). Ayuda a los clientes a transformar sus negocios ayudándolos a diseñar sus soluciones en la nube y ofreciéndoles orientación técnica. Fuera del trabajo le gusta viajar, jugar al tenis y experimentar con nuevas tecnologías.