Saltar al contenido principal

Amazon Bedrock: Guía completa para crear aplicaciones de IA

Descubre cómo crear aplicaciones de IA generativa utilizando Amazon Bedrock. Este tutorial paso a paso te guía a través de sus funciones, configuración y técnicas de optimización.
Actualizado 31 ene 2025  · 30 min de lectura

La IA generativa se ha convertido en el elemento perturbador en todos los sectores, impulsando el progreso en el procesamiento del lenguaje natural, la visión por ordenador y muchas otras áreas. Sin embargo, el aprovechamiento de su potencial ha ido a menudo acompañado de retos de costes, infraestructuras complejas y pronunciadas curvas de aprendizaje. Ahí es donde entra AWS Bedrock: esta solución ayuda a desbloquear permitiendo utilizar modelos de cimientos sin necesidad de administrar la infraestructura.

Este tutorial pretende ser tu guía completa de Amazon Bedrock, describiendo qué es, cómo funciona y cómo puedes utilizarlo. Al final de esta guía, tendrás la información y las habilidades que necesitas para desarrollar tus propias aplicaciones de IA generativa: escalables, flexibles y alineadas con tus objetivos.

¿Qué es Amazon Bedrock?

Amazon Bedrock es un servicio gestionado de AWS para acceder y administrar modelos de base (FM), los componentes básicos de la IA generativa de Amazon Web Services (AWS). Bedrock simplifica tanto las cosas que no tienes que preocuparte de aprovisionar GPUs, configurar pipelines de modelos ni gestionar ninguna otra infraestructura.

AWS Bedrock es una puerta a la innovación. Es una plataforma unificada que permite a los desarrolladores explorar, probar y desplegar modelos de IA de vanguardia de proveedores líderes como Anthropic, Stability AI y Titan de Amazon.

Por ejemplo, imagina que estás desarrollando un chatbot de atención al cliente. Con AWS Bedrock, puedes seleccionar un modelo de lenguaje sofisticado, ajustarlo a las necesidades de tu aplicación e incrustarlo en ella sin tener que escribir nunca la configuración del servidor en código.

Características de AWS Bedrock

Las características de AWS Bedrock están diseñadas para simplificar y acelerar el viaje desde el concepto de IA hasta la producción. Vamos a desglosarlos en detalle.

Acceso a múltiples modelos de fundaciones

Una de las ventajas más significativas de AWS Bedrock es la variedad de modelos de cimentación disponibles. Tanto si trabajas en aplicaciones de texto, contenido visual o IA segura e interpretable, Bedrock te tiene cubierto. Aquí tienes algunos de los modelos disponibles:

  • Modelos de Amazon: Estos modelos propios pueden utilizarse para tareas como crear texto similar al humano para chatbots o aplicaciones de creación de contenidos, reducir la longitud de los documentos a su esencia o interpretar el sentimiento de las opiniones de los clientes.
  • Modelos antrópicos: Estos modelos se centran en desarrollar una inteligencia artificial buena y segura, y son los más adecuados para las industrias que exigen cumplimiento y confianza, como la banca o la sanidad.
  • Estabilidad AI: Los modelos de IA de estabilidad son bien conocidos por su generación de imágenes. Ayudan a transformar las ideas en imágenes para el marketing, las ilustraciones o el desarrollo de productos.

Diagrama de Amazon Bedrock, que conecta con Amazon Models, Anthropic, Stability AI y otros proveedores, ilustrando su papel como centro de servicios de IA generativa.

Visión general de Amazon Bedrock, destacando su integración con los modelos.

No hay gestión de infraestructuras

AWS Bedrock abstrae la gestión de la infraestructura, lo que significa:

  • No es necesario aprovisionar instancias de GPU.
  • Puedes centrarte exclusivamente en crear aplicaciones con una arquitectura sin servidor.
  • La facilidad de uso reduce significativamente los tiempos de configuración, a menudo de semanas a horas.

Escalabilidad y flexibilidad

Las aplicaciones generativas de IA suelen tener una demanda impredecible. Un chatbot puede responder a cientos de usuarios en horas punta y sólo a unos pocos por la noche. Pero AWS Bedrock lo resuelve con su escalabilidad integrada:

  • Escala automática: Esto significa que los modelos pueden ajustarse automáticamente para gestionar los picos de carga de trabajo sin que tengas que intervenir manualmente.
  • Cargas de trabajo paralelas: Puedes ejecutar varios modelos a la vez para diferentes casos de uso dentro de una misma aplicación.
  • Disponibilidad mundial: Con la red global de AWS, puedes desplegar tus aplicaciones más cerca de tus usuarios, reduciendo la latencia y mejorando la experiencia del usuario.

Integración con el ecosistema AWS

AWS Bedrock va más allá de proporcionar potentes modelos: se integra con otros servicios de AWS para respaldar flujos de trabajo de IA de extremo a extremo. Algunas integraciones son:

  • Amazon SageMaker: Permite ajustar los modelos de cimentación para satisfacer requisitos específicos.
  • AWS Lambda: Facilita las aplicaciones de IA basadas en eventos, como activar un modelo para ajustar nuevos datos o revisar los resultados de la inferencia.
  • Amazon CloudWatch: Proporciona funciones de supervisión y registro para analizar el rendimiento de los modelos y recoger opiniones de los usuarios.
  • Amazon S3: Sirve como solución de almacenamiento para conjuntos de datos, permitiendo el seguimiento del rendimiento y el análisis de costes.

Configuración de AWS Bedrock

Esta sección te guiará a través de la configuración de los permisos necesarios, la creación de una cuenta de AWS y la puesta en marcha de AWS Bedrock.

Paso 1: Crear una cuenta AWS (si aún no lo has hecho)

Si aún no tienes una, dirígete a la página de registro de AWS y crea una cuenta. Para los usuarios existentes, asegúrate de que tu usuario IAM tiene privilegios de administrador.

Página de registro en AWS con un formulario para introducir la dirección de correo electrónico del usuario raíz y el nombre de la cuenta de AWS.

La página de registro de AWS, que muestra la exploración de productos de la capa gratuita para cuentas nuevas.

Si buscas pasos detallados, visita la guía oficial de AWS.

Paso 2: Navegar a AWS Bedrock

Se puede acceder a Amazon Bedrock a través de la consola de administración de AWS. Sigue estos pasos para localizarlo y empezar a utilizarlo:

  • Inicia sesión en la consola de administración de AWS: Navega hasta la Consola de AWS e introduce tus credenciales de acceso.
  • Busca Bedrock: Utiliza la barra de búsqueda de la parte superior de la consola. Escribe "Bedrock" y selecciónalo en el desplegable.

Captura de pantalla de los resultados de la búsqueda de "Bedrock" en la consola de administración de AWS, que muestra Amazon Bedrock como el servicio para crear aplicaciones de IA generativa, Amazon SageMaker para el análisis de datos e IA, y una introducción destacada a la búsqueda de recursos con capacidades entre regiones

Resultados de la búsqueda de Bedrock en la consola de administración de AWS.

  • Explora el salpicadero de Bedrock: Una vez en el panel de control de Bedrock, verás opciones para elegir proveedores de modelos y modelos de cimientos.

Captura de pantalla de la página de proveedores de Amazon Bedrock en la que aparecen tres proveedores de modelos sin servidor: Amazon, Anthropic y Meta

Página de proveedores de Amazon Bedrock que muestra las opciones de modelos sin servidor de Amazon.

  • Selecciona un proveedor de modelos y un modelo de fundación:
    • Elige un proveedor en función de tu caso de uso (por ejemplo, Amazon Titan para la generación de texto, Stability AI para las imágenes, etc.).
    • Explora las opciones específicas del modelo, como los tipos de entrada, las características admitidas y los parámetros de salida.
  • Ejecuta una inferencia de prueba: AWS Bedrock te permite ejecutar inferencias de muestra directamente desde la consola. Es una forma estupenda de hacerte una idea de cómo funciona cada modelo antes de integrarlo en tu aplicación.

Captura de pantalla del Patio de Juegos de Chat/Texto de Amazon Bedrock, con el modelo Claude 3 Opus. La interfaz incluye opciones para introducir una pregunta, ejecutar respuestas y comparar diferentes modelos. En el panel izquierdo aparecen opciones como "Primeros pasos", "Modelos de cimientos", "Campos de juego", "Herramientas del constructor" y "Salvaguardas".

Interfaz de Amazon Bedrock Chat/Text Playground.

Paso 3: Configurar los permisos IAM

AWS Identity and Access Management (IAM) es fundamental para acceder de forma segura a AWS Bedrock. Sigue estos pasos para configurar los permisos:

  • En la consola de administración de AWS, navega a la sección IAM IAM.
  • Haz clic en Funciones en la barra lateral y selecciona Crear política.
  • En Especifica los permisos, elige "JSON".

Captura de pantalla del Editor de Políticas de AWS IAM en modo JSON, mostrando una política parcialmente configurada con una lista vacía de "Acción" y "Recurso". La barra lateral izquierda indica un proceso en dos pasos: "Especificar permisos" y "Revisar y crear" El panel derecho ofrece opciones para añadir acciones, filtrar servicios y eliminar declaraciones.

Editor de políticas de AWS IAM en modo JSON

  • Pega la siguiente política en el cuadro de texto:
{
    "Version": "2012-10-17",
    "Statement": [        {
            "Sid": "BedrockFullAccess",
            "Effect": "Allow",
            "Action": ["bedrock:*"],
            "Resource": "*"
        }
    ]
}

Nota: La política anterior puede adjuntarse a cualquier rol que necesite acceder al servicio Amazon Bedrock. Puede ser SageMaker o un usuario. Al utilizar Amazon SageMaker, el rol de ejecución de tu bloc de notas suele ser un usuario o rol distinto del que utilizas para iniciar sesión en la consola de administración de AWS. Para saber cómo explorar el servicio Amazon Bedrock utilizando la Consola de AWS, asegúrate de autorizar tu usuario o rol de la Consola. Puedes ejecutar los cuadernos desde cualquier entorno con acceso al servicio AWS Bedrock y credenciales válidas.

Uso de Amazon Bedrock para aplicaciones de IA generativa

Las aplicaciones de IA generativa se construyen sobre modelos básicos que se ajustan para una tarea concreta, como la generación de texto, la creación de imágenes o la transformación de datos. A continuación encontrarás una guía paso a paso para elegir un modelo básico, utilizar trabajos de inferencia básicos y modificar las respuestas del modelo para adaptarlas a tus necesidades.

Seleccionar un modelo de cimentación

Elegir el modelo de cimentación adecuado es importante porque depende de lo que necesite tu proyecto. He aquí cómo hacer una selección:

1. Identifica tu caso de uso:

  • Generación de texto: Para tareas como el resumen, la creación de contenidos o el desarrollo de chatbot, considera modelos como:
    • Amazon Titan Text G1: Este modelo genera un texto de alta calidad con una buena comprensión del contexto.
    • Cláusula Antrópica 3: Este modelo es muy bueno produciendo texto coherente y relevante para el contexto, por lo que es adecuado para aplicaciones de IA conversacional.
  • Generación de imágenes: Si tu proyecto consiste en crear imágenes o cualquier forma de contenido visual, entonces los modelos de IA de Estabilidad son el camino a seguir:
    • Difusión estable 3,5 Grande: Este modelo es muy bueno generando imágenes a partir de descripciones de texto, ya sean fotorrealistas o artísticas.
  • Tareas multimodales: Para aplicaciones que necesiten tanto procesamiento de texto como de imágenes, se recomiendan los modelos Amazon Nova:
    • Nova Lite: Un modelo multimodal sensible a los costes que puede tomar texto, imagen y vídeo de entrada y texto de salida.
    • Nova Pro: Un modelo multimodal competente para tareas más complejas.

2. Evalúa las capacidades del modelo:

  • Revisa los puntos fuertes específicos de cada modelo para asegurarte de que se ajusta a las necesidades de tu proyecto. En la documentación de AWS encontrarás información detallada sobre los modelos de cimientos admitidos, incluidas sus capacidades y las regiones admitidas .

Habilitar el acceso al modelo

Antes de utilizar estos modelos, debes habilitar el acceso al modelo en tu cuenta de AWS. Aquí tienes los pasos para configurarlo:

  • En la Consola de Bedrock, navega hasta Acceso a modelos.
  • En la Consola, haz clic en Modificar acceso al modelo.
  • Explora los modelos disponibles de los proveedores y selecciona el que más te guste. En este caso, seleccioné Titan Text G1-Express.

Captura de pantalla de la página "Editar acceso al modelo" de Amazon Bedrock, que muestra una lista de modelos de Amazon Titan con sus estados de acceso. Algunos modelos tienen "Acceso concedido", mientras que otros están "Disponibles para solicitar". La interfaz incluye opciones para filtrar modelos, expandir o contraer secciones y agrupar modelos por proveedor. El panel izquierdo muestra un proceso en dos pasos: "Editar acceso a modelo" y "Revisar y enviar".

Página de gestión de acceso al modelo de Amazon Bedrock.

  • Haz clic en Siguientey luego haz clic en Revisar y enviar.

Ejecutar la inferencia básica

Para realizar una inferencia utilizando un modelo de cimentación seleccionado en AWS Bedrock, sigue estos pasos:

  • Configura el SDK de AWS para Python (boto3):
pip install boto3
  • Inicializa el cliente Bedrock: Crea un cliente en tiempo de ejecución Bedrock en la región AWS que elijas:
import boto3
import json
from botocore.exceptions import ClientError

# Set the AWS Region
region = "us-east-1"

# Initialize the Bedrock Runtime client
client = boto3.client("bedrock-runtime", region_name=region)
  • Invoca el modelo: Define el ID del modelo y la consulta de entrada:
# Define the model ID for Amazon Titan Express v1
model_id = "amazon.titan-text-express-v1"

# Define the input prompt
prompt = """
Command: Compose an email from Tom, Customer Service Manager, to the customer "Nancy" 
who provided negative feedback on the service provided by our customer support 
Engineer"""
  • Formatea la carga útil de la petición:
# Configure inference parameters
inference_parameters = {
   "inputText": prompt,
   "textGenerationConfig": {
       "maxTokenCount": 512,  # Limit the response length
       "temperature": 0.5,    # Control the randomness of the output
   },
}

# Convert the request payload to JSON
request_payload = json.dumps(inference_parameters)
  • Procesa la respuesta:
try:
   # Invoke the model
   response = client.invoke_model(
       modelId=model_id,
       body=request_payload,
       contentType="application/json",
       accept="application/json"
   )

   # Decode the response body
   response_body = json.loads(response["body"].read())

   # Extract and print the generated text
   generated_text = response_body["results"][0]["outputText"]
   print("Generated Text:\n", generated_text)

except ClientError as e:
   print(f"ClientError: {e.response['Error']['Message']}")
except Exception as e:
   print(f"An error occurred: {e}")

Nota: Puedes acceder y copiar el código completo directamente desde el Gist de GitHub.

Puedes esperar el siguiente resultado:

% python3 main.py

Generated Text:
 
Tom:
Nancy,

I am writing to express my sincere apologies for the negative experience you had with our customer support engineer. It is unacceptable that we did not meet your expectations, and I want to assure you that we are taking steps to prevent this from happening in the future.

Sincerely,
Tom
Customer Service Manager

Personalizar los resultados del modelo

Para afinar el comportamiento de la salida del modelo, puedes ajustar parámetros como temperature y maxTokenCount:

  • temperature: Este parámetro controla la aleatoriedad de la salida. Los valores más bajos aumentan la determinación de la salida, y los valores más altos aumentan la variabilidad.
  • MaxTokenCount: Establece la longitud máxima de la salida generada.

Por ejemplo:

inference_parameters = {
   "inputText": prompt,
   "textGenerationConfig": {
       "maxTokenCount": 256,  # Limit the response length
       "temperature": 0.7,    # Control the randomness of the output
   },
}

Ajustando estos parámetros, puedes adaptar mejor la creatividad y la longitud del contenido generado a las necesidades de tu aplicación.

Características avanzadas de Amazon Bedrock

Cambiemos de marcha y centrémonos en dos enfoques avanzados: la mejora de la IA mediante la Generación Aumentada por Recuperación (GAR) y la gestión y despliegue de modelos a escala.

Personalizar los resultados de la IA con la generación aumentada por recuperación (GAR)

El GAR requiere que tengamos una base de conocimientos. Antes de configurar la base de conocimientos en Amazon Bedrock, tienes que crear un bucket S3 y subir los archivos necesarios. Sigue estos pasos:

Paso 1: Crear un bucket S3

  • Inicia sesión en la consola de administración de AWS:
    • Ve al Servicio S3 en la consola de administración de AWS.
  • Crear un nuevo cubo:
    • Haz clic en Crear cubo.
    • Introduce un nombre de cubo único.
    • Deja la configuración por defecto a menos que tengas requisitos específicos de seguridad o encriptación.
  • Configura los ajustes del cubo:
    • Asegúrate de que el bloqueo del acceso público está activado a menos que lo requieras.
    • (Opcional) Activa el versionado si quieres mantener versiones de tus archivos.
  • Crea el cubo:
    • Haz clic en Crear cubo para finalizar la configuración.

Paso 2: Subir archivos al bucket S3

  • Descargar el archivo:
    • El enlace GitHub proporcionado ofrece un archivo PDF de muestra con datos simulados: octank_financial_10K.pdf. Si quieres, puedes utilizar un archivo diferente.
    • Guárdalo localmente en tu ordenador.
  • Sube el archivo a S3:
    • Abre el bucket S3 recién creado en la consola de AWS.
    • Haz clic en Subir y selecciona el archivo octank_financial_10K.pdf.
    • Revisa y establece los permisos (por defecto: privado).
    • Haz clic en Subir para añadir el archivo al cubo.

Captura de pantalla de un bucket de Amazon S3 llamado "amazon-bedrock-099", que muestra la pestaña "Objetos" con un único archivo PDF llamado "octank_financial_10K.pdf".

Vista del bucket de Amazon S3 para "amazon-bedrock-099".

Amazon Bedrock te permite crear una base de conocimientos impulsada por bases de datos vectoriales. Los pasos siguientes te guiarán a través de la creación de una base de conocimientos, la configuración de una fuente de datos y la selección de incrustaciones y almacenes vectoriales.

Paso 1: Proporciona los detalles de la base de conocimientos

  • Navega hasta la Consola de Amazon Bedrock y selecciona Bases de Conocimiento en la secciónHerramientas del Constructor.
  • Haz clic en Crear base de conocimientos y rellena los siguientes datos:
    • Nombre de la Base de Conocimientos: Introduce un nombre único (por ejemplo, knowledge-base-quick-start).
    • Descripción de la Base de Conocimientos: (Opcional) Describe brevemente la base de conocimientos.
  • En los Permisos IAM de IAM:
    • Elige "Crear y utilizar un nuevo rol de servicio" o "Utilizar un rol de servicio existente".
    • Asegúrate de que el rol de servicio tiene los permisos necesarios para acceder a Bedrock.
    • Ejemplo de rol de servicio: AmazonBedrockExecutionRoleForKnowledgeBase.
  • Haz clic en Siguiente para proceder a configurar la fuente de datos.

Captura de pantalla de la interfaz de creación de la Base de Conocimientos de Amazon Bedrock, que muestra los pasos para configurar una base de conocimientos.

Asistente de creación de la Base de Conocimientos de Amazon Bedrock.

Paso 2: Configurar la fuente de datos

  • En la sección Detalles de la fuente de datos, elige tu fuente de datos:
    • Amazon S3: Selecciona esta opción ya que tus datos se almacenan en S3.
  • Especifica lo siguiente:
    • Ubicación de la fuente de datos: Elige entre "Esta cuenta de AWS" u "Otra cuenta de AWS".
    • S3 URI: Proporciona el URI del bucket S3 que contiene los datos. Elige el S3 que creaste en el paso anterior y el archivo.
    • Clave de encriptación: (Opcional) Añade una clave KMS gestionada por el cliente si tus datos están encriptados.
  • Configura la estrategia de análisis:
    • Parser por defecto: Procesa datos de texto sin formato. Puedes dejarlo como está.
    • Modelos de base como analizador: Procesa documentos o imágenes complejos. Puedes dejarlo como está.
  • Estrategia de fragmentación:
    • La configuración por defecto divide el texto en trozos de aproximadamente 300 tokens para incrustarlos. Puedes dejarlo como está.
  • (Opcional) Añade funciones de Transformación o ajustes avanzados para preprocesar tus datos. Puedes dejarlo como está.
  • Haz clic en Siguiente para continuar.

Captura de pantalla de la interfaz de configuración de fuentes de datos de Amazon Bedrock, que muestra la configuración para conectar una fuente de datos de Amazon S3

Página de configuración de la fuente de datos de Amazon Bedrock para integrar una base de conocimientos basada en S3.

Paso 3: Selecciona el modelo de incrustación y configura el almacén de vectores

  • Elige un modelo Embeddings para convertir tus datos en representaciones vectoriales:
    • Titan Incrustaciones G1 - Texto v1.2 (Puedes elegirlo para este tutorial).
    • Incrustar inglés v3
    • Incrustar Multilingüe v3
  • En la Base de datos vectorial sección
    • Elige "Crear rápidamente un nuevo almacén de vectores" (recomendado) o selecciona un almacén existente.
    • Las opciones incluyen:
      • Amazon OpenSearch Serverless: Esto es ideal para respuestas contextualmente relevantes. Puedes elegirlo a efectos de este tutorial.
      • Amazon Aurora PostgreSQL Serverless: Optimizado para búsquedas rápidas de similitudes.
      • Amazon Neptune Analytics: Adecuado para el análisis basado en grafos y la Generación Mejorada por Recuperación (RAG).
  • Haz clic en Siguiente para revisar y finalizar tu configuración.

Captura de pantalla de la interfaz de Amazon Bedrock para seleccionar un modelo de incrustación y configurar una base de datos vectorial.

Página de configuración de Amazon Bedrock para seleccionar un modelo de incrustación y un almacén vectorial.

Paso 4: Revisar y crear

  • Revisa todas tus configuraciones.
  • Confirma y pulsa Crear para finalizar la base de conocimientos.
  • Una vez creada, tu base de conocimientos aparecerá en la sección Bases de conocimiento de la consola.

Paso 5: Pon a prueba la base de conocimientos

  • Accede a la visión general de la base de conocimientos:
    • Ir a las Bases de Conocimiento en la Consola de Amazon Bedrock.
    • Selecciona la base de conocimientos que has creado (por ejemplo, knowledge-base-quick-start).
    • Revisa los detalles del resumen:
      • Nombre e ID de la Base de Conocimientos
      • Asegúrate de que está en "Disponible".
      • Comprueba que se está utilizando el rol de servicio correcto.
  • Sincroniza y añade fuentes de datos:
    • Si no se ha sincronizado la fuente de datos, haz clic en Sincronizar para iniciar el proceso.
    • También puedes añadir más documentos o fuentes de datos mediante Añadir documentos desde S3.

Captura de pantalla de la página de resumen de la base de conocimientos de Amazon Bedrock, en la que se muestran detalles clave como el nombre de la base de conocimientos, el ID, la función del servicio, el estado y el tipo de generación aumentada por recuperación (RAG).

La visión general de la Base de Conocimientos de Amazon Bedrock muestra los detalles de la configuración y el estado de la fuente de datos.

Paso 6: Selecciona un modelo para la prueba

  • Elige un modelo de fundación:
    • Haz clic en Seleccionar modelo en la Probar base de conocimientos del panel.
    • Explora los modelos disponibles de proveedores como Amazon, Anthropic y Cohere.
    • Ejemplo: Selecciona Claude Instant (v1.2) para las consultas basadas en texto.
  • Tipo de inferencia:
    • Elige Bajo demanda si no tienes configurado el rendimiento provisionado.
  • Aplica el modelo:
    • Haz clic en Aplicar para finalizar la selección del modelo.

Captura de pantalla de la interfaz "Seleccionar modelo" de Amazon Bedrock, que muestra los proveedores de modelos, incluidos Amazon, Anthropic, Cohere, Meta y Mistral AI.

La interfaz de selección de modelos de Amazon Bedrock presenta varios modelos Claude de Anthropic.

Paso 7: Ejecuta consultas y genera respuestas

  • Genera una respuesta:
    • Introduce tu consulta en la casilla de entrada (por ejemplo, "Ayúdame con los Anexos de los Estados Financieros").
    • Haz clic en Ejecuta para probar la base de conocimientos.
  • Ver detalles de la fuente:
    • La respuesta incluirá fragmentos de datos relevantes para tu consulta.
    • Amplía Detalles de la fuente para ver los metadatos y la fuente de la información recuperada.
  • Revisa el resultado:
    • Valida la respuesta para asegurarte de que se ajusta al contenido de la base de conocimientos.
    • Ajusta las configuraciones de recuperación si es necesario.

Captura de pantalla de la página de pruebas de la Base de Conocimientos de Amazon Bedrock. El modelo seleccionado es "Claude Instant v1.2" configurado para inferencia bajo demanda.

Interfaz de prueba de la Base de Conocimientos de Amazon Bedrock mostrando la respuesta a una consulta.

Ejemplo de salida de consulta:

  • Consulta: "Ayúdame con los Cuadros de Estados Financieros".
  • Respuesta: La base de conocimientos recuperará datos que detallen partidas concretas de los estados financieros, como tablas de activos, pasivos y metadatos relacionados.

Gestión y despliegue de modelos de IA a escala

Utilizando servicios de AWS como Lambda, Amazon Bedrock puede administrar y desplegar modelos de IA a escala. Este enfoque rentable garantiza una alta disponibilidad y escala automáticamente para las aplicaciones impulsadas por IA. 

En esta sección, utilizaremos AWS Lambda para invocar un modelo de Bedrock de forma dinámica, de modo que puedas procesar las peticiones bajo demanda.

Paso 1: Crear una función AWS Lambda

  • Inicia sesión en la consola de administración de AWS.
  • Navega hasta el Lambda y haz clic en Crear función.
  • Elige la configuración de la función:
    • Selecciona "Autor desde cero".
    • Nombre de la función: lecho rocoso.
    • Tiempo de ejecución: Python 3.x.
    • Permisos: Selecciona un Rol IAM que haya sido creado en la sección inicial de este tutorial.
  • Haz clic en Crear función para inicializar la configuración.

Captura de pantalla de la interfaz de creación de funciones AWS Lambda. La opción seleccionada es "Crear desde cero", y el nombre de la función se establece en "bedrock".

Página de creación de funciones AWS Lambda.

Paso 2: Añade el código de la función Lambda

  • Abre el editor de funciones en la sección Código de la consola Lambda.
  • Sustituye el código por defecto por el código proporcionado enel Gist de Github.
  • Haz clic en Despliega para guardar los cambios.

Paso 3: Prueba la función Lambda

  • Ve a la pestaña Prueba de la consola Lambda y crea un evento de prueba con el siguiente JSON:
{
    "prompt": "Write a formal apology letter for a late delivery."
}
  • Guarda el evento de prueba.
  • Haz clic en Prueba para invocar la función Lambda.
  • Comprueba el resultado en la secciónResultados de la ejecución. El texto generado debería tener este aspecto:

Captura de pantalla de los resultados de la ejecución de AWS Lambda indicando una ejecución exitosa de la función

Resultado de la ejecución de AWS Lambda que muestra una ejecución correcta de la función.

Buenas prácticas para el despliegue de modelos de IA

Optimiza los costes:

  • Utiliza la inferencia a demanda para casos de uso ocasionales.
  • Considera el rendimiento aprovisionado si se esperan peticiones de alta frecuencia.

Asegurar la función Lambda:

  • Restringe el rol IAM sólo a los permisos necesarios.
  • Utiliza variables de entorno para evitar exponer datos sensibles en el código.

Monitorizar y registrar:

  • Utiliza los registros de CloudWatch para hacer un seguimiento de las métricas de invocación y depurar problemas.
  • Configura alarmas para errores o alta latencia.

Prácticas recomendadas para utilizar AWS Bedrock

En esta sección, comparto algunas de las mejores prácticas a la hora de trabajar con Amazon Bedrock, desde optimizar los costes hasta mantener las cosas seguras y precisas. 

Optimización de costes

Administrar los costes en AWS Bedrock puede implicar aprovechar Amazon SageMaker para desplegar modelos y utilizar instancias Spot para ahorrar hasta un 90% en gastos. He aquí algunas de mis mejores prácticas:

  • Elige el modelo de cimentación adecuado: Selecciona modelos que se ajusten a tus necesidades. Elige modelos más pequeños, que consuman menos recursos, para reducir los costes informáticos de las tareas menos complejas. Por ejemplo, Amazon Titan Models puede utilizarse para tareas basadas en texto, como el resumen, o Stability AI para la generación de imágenes sencillas.
  • Inferencia por lotes: En lugar de procesar las solicitudes individualmente, agrupa varias solicitudes de inferencia en lotes. Esto reduce la frecuencia de invocación del modelo, lo que conlleva menores costes.
  • Aprovecha las políticas del ciclo de vida del S3: Almacena en Amazon S3 sólo los datos que necesites para la inferencia o el ajuste. Utiliza políticas de ciclo de vida para mover automáticamente los datos a niveles de almacenamiento más baratos (por ejemplo, S3 Glacier) o eliminar los datos no utilizados después de un tiempo determinado.
  • Supervisa y controla el gasto: Utiliza el Explorador de Costes de AWS para analizar tus patrones de gasto e identificar áreas de optimización. Configura los Presupuestos de AWS para recibir alertas cuando te acerques a umbrales de coste predefinidos.

Gráfico que representa el coste y el uso de los servicios de Amazon Bedrock

Gráfico de coste y uso de los servicios de Amazon Bedrock.

  • Utiliza Bedrock con SageMaker para ahorrar costes: Utiliza los modelos base de Bedrock en SageMaker para aprovechar las instancias gestionadas de Spot en los trabajos de inferencia y formación.
  • Utiliza instancias puntuales en SageMaker: Las instancias puntuales pueden reducir los costes de hasta un 90% en comparación con las instancias bajo demanda. SageMaker gestiona las interrupciones de Spot en tu nombre, reintentando automáticamente los trabajos de formación si la capacidad de Spot deja de estar disponible. Ejemplo:
from sagemaker.mxnet import MXNet

# Use spot instances for cost efficiency
use_spot_instances = True

# Maximum runtime for the training job (in seconds)
max_run = 600

# Maximum wait time for Spot instance availability (in seconds); set only if using Spot instances
max_wait = 1200 if use_spot_instances else None

# Define the MXNet estimator for the training job
mnist_estimator = MXNet(
    entry_point='source_dir/mnist.py',  # Path to the script that contains the model training code
    role=role,  # IAM role used for accessing AWS resources (e.g., S3, SageMaker)
    output_path=model_artifacts_location,  # S3 location to save the trained model artifacts
    code_location=custom_code_upload_location,  # S3 location to upload the training script
    instance_count=1,  # Number of instances to use for training
    instance_type='ml.m4.xlarge',  # Instance type for the training job
    framework_version='1.6.0',  # Version of the MXNet framework to use
    py_version='py3',  # Python version for the environment
    distribution={'parameter_server': {'enabled': True}},  # Enable distributed training with a parameter server
    hyperparameters={  # Training hyperparameters
        'learning-rate': 0.1,  # Learning rate for the training job
        'epochs': 5  # Number of training epochs
    },
    use_spot_instances=use_spot_instances,  # Enable Spot instances for cost savings
    max_run=max_run,  # Maximum runtime for the training job
    max_wait=max_wait,  # Maximum wait time for Spot instance availability
    checkpoint_s3_uri=checkpoint_s3_uri  # S3 URI for saving intermediate checkpoints
)

# Start the training job and specify the locations of training and testing datasets
mnist_estimator.fit({
    'train': train_data_location,  # S3 location of the training dataset
    'test': test_data_location  # S3 location of the testing/validation dataset
})
  • Utiliza las métricas y los registros de CloudWatch: Las métricas y los registros de entrenamiento están disponibles en en Amazon CloudWatch, proporcionando informaciónsobre el rendimiento y el uso de los recursos.

Captura de pantalla de eventos de registro de AWS CloudWatch, mostrando entradas para un modelo de aprendizaje automático bajo la ruta /opt/ml/model. Cada registro incluye una marca de tiempo, la IP de origen y una solicitud HTTP GET a /ping con un código de estado 200.

Registros de AWS CloudWatch

Seguridad

Para garantizar la seguridad, la conformidad y el rendimiento de Amazon Bedrock, es importante seguir las mejores prácticas. Estas son mis recomendaciones:

  • Aplica el acceso de mínimo privilegio: Restringe los permisos IAM y los roles de servicio sólo a los recursos necesarios para evitar accesos no autorizados.
  • Validar roles de servicio y grupos de seguridad: Asegúrate de que los agentes Bedrock y los trabajos de personalización de modelos están correctamente configurados con roles de servicio activos y ajustes de seguridad.
  • Ejecutar cargas de trabajo en una VPC: Aumenta la seguridad ejecutando trabajos de personalización y procesamiento de datos within una Nube Privada Virtual (VPC).
  • Cifra los datos críticos: Utiliza las Claves Administradas por el Cliente (CMK) de Amazon KMS para cifrar las sesiones del agente, los espacios de trabajo de Bedrock Studio, los modelos personalizados y los datos transitorios de la base de conocimientos.
  • Implementar políticas de eliminación de datos: Conserva los datos almacenados en vectores sólo cuando las fuentes basadas en el conocimiento estén activas; configura la eliminación automática cuando ya no se necesiten.
  • Reforzar los guardarraíles de la roca madre: Establece la Intensidad del Ataque de Preguntar en ALTA y activa los filtros de información sensible para protegerte contra ataques de adversarios y fugas de datos.
  • Sesiones de agente seguras: Utiliza barandillas para impedir el acceso no autorizado y proteger las interacciones sensibles.
  • Activar el registro para la visibilidad: Activa el registro de invocaciones del modelo a nivel de cuenta para seguir la actividad y detectar anomalías.
  • Defiéndete de los ataques entre servicios: Utiliza políticas de roles de servicio para evitar los Ataques de Adjuntos Confundidos entre Servicios.

Seguimiento y evaluación del modelo

Garantizar que los modelos son precisos, fiables y están alineados con los objetivos empresariales se consigue supervisando y evaluando los modelos. Aquí tienes algunas buenas prácticas:

  • Haz un seguimiento de las métricas de rendimiento: Utiliza CloudWatch para controlar la latencia, los errores y las tendencias de invocación.
  • Registra las entradas y salidas: Activa el registro detallado para depuración y análisis de tendencias.
  • Incorpora circuitos de retroalimentación: Utiliza herramientas como Amazon A2I para incluir revisiones humanas de los productos críticos.
  • Evalúa regularmente los resultados: Compara los resultados con los conjuntos de datos de validación o la verdad fundamental.
  • Mejorar continuamente los modelos: Afina los modelos con conjuntos de datos actualizados o datos de dominio específicos, según sea necesario.

Panel con cuatro gráficos de seguimiento de las métricas de los modelos de Amazon Bedrock.

El panel de métricas muestra el recuento de invocaciones, la latencia y el recuento de tokens de varios modelos de Amazon Bedrock.

Conclusión

AWS Bedrock supone un cambio en la forma de desarrollar aplicaciones de IA generativa y una plataforma centralizada para utilizar modelos de base sin preocuparse de la infraestructura. 

A partir de aquí, este tutorial paso a paso debería ayudarte a identificar los modelos adecuados, crear flujos de trabajo seguros y escalables, e integrar funciones como la generación aumentada por recuperación (RAG) para una mayor personalización. Una vez establecidas las mejores prácticas en materia de costes, seguridad y supervisión, estarás preparado para desarrollar y gestionar tus soluciones de IA para cumplir tus objetivos.

Para profundizar aún más en tus conocimientos de AWS, explora estos cursos:

Desarrollar aplicaciones de IA

Aprende a crear aplicaciones de IA utilizando la API OpenAI.
Empieza a hacer Upskilling gratis

Rahul Sharma's photo
Author
Rahul Sharma
LinkedIn
Twitter

Rahul Sharma es embajador de AWS, arquitecto DevOps y bloguero técnico especializado en computación en la nube, prácticas DevOps y tecnologías de código abierto. Con experiencia en AWS, Kubernetes y Terraform, simplifica conceptos complejos para estudiantes y profesionales a través de atractivos artículos y tutoriales. A Rahul le apasiona resolver los retos de DevOps y compartir conocimientos para capacitar a la comunidad tecnológica.

Temas

Aprende más sobre AWS con estos cursos

curso

AWS Cloud Technology and Services Concepts

3 hr
7.4K
Master AWS cloud technology with hands-on learning and practical applications in the AWS ecosystem.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado
An AI juggles tasks

blog

Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)

Aprende a utilizar modelos de IA generativa para crear un editor de imágenes, un chatbot similar a ChatGPT con pocos recursos y una aplicación clasificadora de aprobación de préstamos y a automatizar interacciones PDF y un asistente de voz con GPT.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Cómo aprender IA desde cero en 2024: Guía completa de los expertos

Descubre todo lo que necesitas saber sobre el aprendizaje de la IA en 2024, desde consejos para empezar, recursos útiles y opiniones de expertos del sector.
Adel Nehme's photo

Adel Nehme

20 min

tutorial

Primeros pasos con AWS Athena: Guía práctica para principiantes

Esta guía práctica te ayudará a empezar a utilizar AWS Athena. Explora su arquitectura y características y aprende a consultar datos en Amazon S3 utilizando SQL.
Tim Lu's photo

Tim Lu

28 min

tutorial

Tutorial de la API de OpenAI Assistants

Una visión completa de la API Assistants con nuestro artículo, que ofrece una mirada en profundidad a sus características, usos en la industria, guía de configuración y las mejores prácticas para maximizar su potencial en diversas aplicaciones empresariales.
Zoumana Keita 's photo

Zoumana Keita

14 min

tutorial

Guía para principiantes de la API de OpenAI: Tutorial práctico y prácticas recomendadas

Este tutorial te presenta la API de OpenAI, sus casos de uso, un enfoque práctico para utilizar la API y todas las prácticas recomendadas que debes seguir.
Arunn Thevapalan's photo

Arunn Thevapalan

13 min

tutorial

Visión GPT-4: Guía completa para principiantes

Este tutorial le presentará todo lo que necesita saber sobre GPT-4 Vision, desde cómo acceder a él hasta ejemplos prácticos del mundo real y sus limitaciones.
Arunn Thevapalan's photo

Arunn Thevapalan

12 min

Ver másVer más