Evaluación de los modelos alojados en Inferencias de SageMaker - Amazon Nova

Evaluación de los modelos alojados en Inferencias de SageMaker

Esta guía explica cómo evaluar los modelos personalizados de Amazon Nova implementados en los puntos de conexión de Inferencias de SageMaker mediante Inspect AI, un marco de evaluación de código abierto.

nota

Para ver un tutorial práctico, consulte SageMaker Inspect AI quickstart notebook.

Descripción general

Puede evaluar los modelos personalizados de Amazon Nova implementados en los puntos de conexión de SageMaker utilizando pruebas comparativas estandarizadas de la comunidad de investigadores de IA. Este enfoque le permite lo siguiente:

  • Evaluar modelos personalizados de Amazon Nova (refinados, destilados o adaptados de alguna manera) a escala

  • Poner en marcha evaluaciones con inferencia paralela en varias instancias del punto de conexión

  • Comparar el rendimiento del modelo mediante pruebas comparativas como MMLU, TruthfulQA y HumanEval

  • Integrar con su infraestructura de SageMaker existente

Modelos compatibles

El proveedor de Inferencias de SageMaker funciona con:

  • Modelos de Amazon Nova (Nova Micro, Nova Lite, Nova Lite 2)

  • Modelos implementados mediante servidores de inferencia compatibles con vLLM u OpenAI

  • Cualquier punto de conexión compatible con el formato de la API de finalizaciones de chat de OpenAI

Requisitos previos

Antes de comenzar, asegúrese de que dispone de lo siguiente:

  • Una Cuenta de AWS con permisos para crear e invocar puntos de conexión de SageMaker

  • Credenciales de AWS configuradas mediante AWS CLI, variables de entorno o roles de IAM

  • Python 3.9 o superior

Permisos de IAM necesarios

El usuario o rol de IAM necesita los siguientes permisos:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:InvokeEndpoint", "sagemaker:DescribeEndpoint" ], "Resource": "arn:aws:sagemaker:*:*:endpoint/*" } ] }

Paso 1: implemente un punto de conexión de SageMaker

Antes de poner en marcha las evaluaciones, necesita un punto de conexión de Inferencias de SageMaker que use el modelo.

Para obtener instrucciones sobre cómo crear un punto de conexión de Inferencias de SageMaker con modelos de Amazon Nova, consulte Introducción.

Cuando el punto de conexión esté en estado InService, anote el nombre del punto de conexión para usarlo en los comandos de evaluación.

Paso 2: instale las dependencias de evaluación

Cree un entorno virtual de Python e instale los paquetes necesarios.

# Create virtual environment python3.12 -m venv venv source venv/bin/activate # Install uv for faster package installation pip install uv # Install Inspect AI and evaluation benchmarks uv pip install inspect-ai inspect-evals # Install AWS dependencies uv pip install aioboto3 boto3 botocore openai

Paso 3: configure las credenciales de AWS

Elija uno de los siguientes métodos de autenticación:

Opción 1: AWS CLI (recomendado)

aws configure

Ingrese el ID de su clave de acceso de AWS, la clave de acceso secreta y el nombre de la región predeterminada cuando se le solicite.

Opción 2: variables de entorno

export AWS_ACCESS_KEY_ID=your_access_key export AWS_SECRET_ACCESS_KEY=your_secret_key export AWS_DEFAULT_REGION=us-west-2

Opción 3: rol de IAM

Si se usan Amazon EC2 o cuadernos de SageMaker, el rol de IAM de la instancia se utiliza automáticamente.

Verificación de credenciales

import boto3 sts = boto3.client('sts') identity = sts.get_caller_identity() print(f"Account: {identity['Account']}") print(f"User/Role: {identity['Arn']}")

Paso 4: instalación del proveedor de SageMaker

El proveedor de SageMaker permite que Inspect AI se comunique con sus puntos de conexión de SageMaker. El proceso de instalación del proveedor aparece simplificado en el cuaderno de inicio rápido.

Paso 5: descargue las pruebas comparativas de evaluación

Clone el repositorio Inspect Evals para acceder a los pruebas comparativas estándar:

git clone https://github.com/UKGovernmentBEIS/inspect_evals.git

Este repositorio incluye pruebas comparativas como:

  • MMLU y MMLU-Pro (conocimiento y razonamiento)

  • TruthfulQA (veracidad)

  • HumanEval (generación de código)

  • GSM8K (razonamiento matemático)

Paso 6: realice evaluaciones

Lleve a cabo una evaluación con su punto de conexión de SageMaker:

cd inspect_evals/src/inspect_evals/ inspect eval mmlu_pro/mmlu_pro.py \ --model sagemaker/my-nova-endpoint \ -M region_name=us-west-2 \ --max-connections 256 \ --max-retries 100 \ --display plain

Parámetros clave

Parámetro Predeterminado Descripción
--max-connections 10 Número de solicitudes paralelas al punto de conexión. Escale con el número de instancias (p. ej., 10 instancias × 25 = 250).
--max-retries 3 Reintentos en caso de error. Utilice 50-100 para evaluaciones de gran tamaño.
-M region_name us-east-1 Región de AWS en la que se implementa el punto de conexión.
-M read_timeout 600 Tiempo de espera de la solicitud en segundos.
-M connect_timeout 60 Tiempo de espera de la conexión en segundos.

Recomendaciones de refinamiento

Para un punto de conexión de varias instancias:

# 10-instance endpoint example --max-connections 250 # ~25 connections per instance --max-retries 100 # Handle transient errors

Si se establece un valor demasiado alto para --max-connections, es posible que el punto de conexión se sobrecargue y se produzcan limitaciones. Si se establece un valor demasiado bajo, se infrautiliza la capacidad.

Paso 7: visualización de los resultados

Inicie el lector de Inspect AI para analizar los resultados de la evaluación:

inspect view

El lector muestra lo siguiente:

  • Puntuaciones y métricas generales

  • Resultados por muestra con las respuestas del modelo

  • Análisis de errores y patrones de error

Administración de puntos de conexión

Actualizar un punto de conexión

Para actualizar un punto de conexión existente con un nuevo modelo o configuración:

import boto3 sagemaker = boto3.client('sagemaker', region_name=REGION) # Create new model and endpoint configuration # Then update the endpoint sagemaker.update_endpoint( EndpointName=EXISTING_ENDPOINT_NAME, EndpointConfigName=NEW_ENDPOINT_CONFIG_NAME )

Eliminación de un punto de conexión

sagemaker.delete_endpoint(EndpointName=ENDPOINT_NAME)

Incorporación de pruebas comparativas personalizadas

Puede agregar nuevas pruebas comparativas a Inspect AI mediante el siguiente flujo de trabajo:

  1. Estudie el formato del conjunto de datos de la prueba comparativa y las métricas de evaluación.

  2. Revise implementaciones similares en inspect_evals/.

  3. Cree un archivo de tareas que convierta los registros del conjunto de datos en muestras de Inspect AI.

  4. Implemente los solucionadores y evaluadores adecuados.

  5. Valide con una pequeña prueba.

Estructura de tarea de ejemplo:

from inspect_ai import Task, task from inspect_ai.dataset import hf_dataset from inspect_ai.scorer import choice from inspect_ai.solver import multiple_choice @task def my_benchmark(): return Task( dataset=hf_dataset("dataset_name", split="test"), solver=multiple_choice(), scorer=choice() )

Solución de problemas

Problemas comunes

Limitación o tiempos de espera del punto de conexión

  • Reduzca --max-connections

  • Aumente --max-retries

  • Compruebe las métricas de CloudWatch de los puntos de conexión para ver si hay problemas de capacidad

Errores de autenticación

  • Compruebe que las credenciales de AWS estén configuradas correctamente:

  • Compruebe que los permisos de IAM incluyan sagemaker:InvokeEndpoint

Errores del modelo

  • Compruebe que el punto de conexión esté en estado InService

  • Compruebe que el modelo sea compatible con el formato de la API de finalizaciones de chat de OpenAI