curso
Amazon Bedrock: Guía completa para crear aplicaciones de IA
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.
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.
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.
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.
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.
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".
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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 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.
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.
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:
- Tecnología y servicios en la nube de AWS - Infórmate sobre los servicios principales de AWS y sobre cómo crear soluciones nativas en la nube.
- Seguridad de AWS y gestión de costes - Domina las estrategias para proteger tu entorno de AWS y optimizar los costes de forma eficaz.
- Desarrollo de aplicaciones de IA - Sumérgete en el desarrollo de IA y aprende a construir, desplegar y escalar soluciones potenciadas por IA.
Desarrollar aplicaciones de IA
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.
Aprende más sobre AWS con estos cursos
curso
Introduction to AWS Boto in Python
programa
AWS Cloud Practitioner (CLF-C02)

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

blog
Cómo aprender IA desde cero en 2024: Guía completa de los expertos
tutorial
Primeros pasos con AWS Athena: Guía práctica para principiantes

Tim Lu
28 min
tutorial
Tutorial de la API de OpenAI Assistants
tutorial
Guía para principiantes de la API de OpenAI: Tutorial práctico y prácticas recomendadas
tutorial