Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Realizar evaluaciones e interpretar los resultados
Ejecutar el trabajo de evaluación
Paso 1: Prepare sus datos
-
Formatee los datos de evaluación de acuerdo con los requisitos de formato de datos
-
Suba su archivo JSONL a S3:
s3://your-bucket/eval-data/eval_data.jsonl
Paso 2: Configura tu receta
Actualice la receta de muestra con su configuración:
-
model_name_or_pathConfigúrelo a la ubicación de su modelo -
Configura
lambda_arntu función de recompensa ARN -
output_s3_pathAjústelo a la ubicación de salida que desee -
Ajuste
inferencelos parámetros según sea necesario
Guarde la receta como rft_eval_recipe.yaml
Paso 3: Ejecute la evaluación
Ejecute el trabajo de evaluación utilizando el cuaderno suministrado: Cuadernos de evaluación
Contenedor de evaluación
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-TJ-Eval-V2-latest
Paso 4: Supervisar el progreso
Supervise su trabajo de evaluación mediante:
-
SageMaker Consola: compruebe el estado y los registros del trabajo
-
CloudWatch Registros: vea los registros de ejecución detallados
-
Registros Lambda: Depurar problemas con la función de recompensa
Comprender los resultados de la evaluación
Formato de salida
El trabajo de evaluación envía los resultados a la ubicación S3 especificada en formato JSONL. Cada línea contiene los resultados de la evaluación de una muestra:
{ "id": "sample-001", "aggregate_reward_score": 0.75, "metrics_list": [ { "name": "accuracy", "value": 0.85, "type": "Metric" }, { "name": "fluency", "value": 0.90, "type": "Reward" } ] }
nota
El resultado del trabajo de evaluación de RFT es idéntico al formato de respuesta Lambda. El servicio de evaluación analiza la respuesta de la función Lambda sin modificaciones, lo que garantiza la coherencia entre los cálculos de recompensas y los resultados finales.
Interpretación de los resultados
Puntuación de recompensa agregada
-
Rango: normalmente de 0.0 (peor) a 1.0 (mejor), pero depende de la implementación
-
Propósito: Un solo número que resume el rendimiento general
-
Uso: comparar modelos, realizar un seguimiento de las mejoras con respecto a la formación
Métricas individuales
-
Tipo de métrica: métricas informativas para el análisis
-
Tipo de recompensa: métricas utilizadas durante el entrenamiento de RFT
-
Interpretación: Los valores más altos generalmente indican un mejor rendimiento (a menos que diseñe métricas inversas)
Puntos de referencia de rendimiento
Lo que constituye un rendimiento «bueno» depende del caso de uso:
| Rango de puntuación | Interpretación | Action |
|---|---|---|
| 0.8 - 1.0 | Excelente | Modelo listo para su despliegue |
| 0,6 - 0,8 | Buena | Las mejoras menores pueden ser beneficiosas |
| 0,4 - 0,6 | Regular | Se necesita una mejora significativa |
| 0,0 - 0,4 | Pobre | Revise los datos de entrenamiento y la función de recompensa |
importante
Estas son pautas generales. Defina sus propios umbrales en función de:
-
Requisitos empresariales
-
Rendimiento del modelo de referencia
-
Restricciones específicas del dominio
-
Análisis coste-beneficio de la formación continua
Análisis de resultados
Calcule las estadísticas resumidas
import json import numpy as np scores = [] with open('evaluation_results.jsonl', 'r') as f: for line in f: result = json.loads(line) scores.append(result['aggregate_reward_score']) print(f"Mean: {np.mean(scores):.3f}") print(f"Median: {np.median(scores):.3f}") print(f"Std Dev: {np.std(scores):.3f}") print(f"Min: {np.min(scores):.3f}") print(f"Max: {np.max(scores):.3f}")
-
Identifique los casos de fallo: revise las muestras con puntuaciones bajas para comprender las debilidades
-
Compare las métricas: analice la correlación entre las diferentes métricas para identificar las compensaciones
-
Realice un seguimiento a lo largo del tiempo: compare los resultados de las evaluaciones en las distintas iteraciones de entrenamiento
Resolución de problemas
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
| Tiempo de espera de Lambda | Cálculo complejo de recompensas | Aumente el tiempo de espera de Lambda u optimice la función |
| Permiso denegado | Faltan permisos de IAM: | Verificar que SageMaker el rol pueda invocar Lambda |
| Puntuaciones inconsistentes | Función de recompensa no determinista | Utilice semillas fijas o lógica determinista |
| Faltan resultados | Errores Lambda no detectados | Añada una gestión integral de errores en Lambda |
Lista de verificación de depuración
-
Compruebe que los datos de entrada sigan el formato correcto con matrices de contenido anidadas
-
Confirme que el ARN de Lambda sea correcto y que la función esté implementada
-
Compruebe los permisos de IAM para SageMaker → Invocación a Lambda
-
Revise CloudWatch los registros para detectar errores de Lambda
-
Valide que la respuesta de Lambda coincida con el formato esperado
Prácticas recomendadas
-
Comience de forma sencilla: comience con las funciones de recompensa básicas e itere
-
Pruebe Lambda por separado: utilice los eventos de prueba Lambda antes de la evaluación completa
-
Validar en un conjunto de datos pequeño: ejecute la evaluación en el subconjunto antes que en el conjunto de datos completo
-
Control de versiones: haga un seguimiento de las versiones de las funciones de recompensa junto con las versiones del modelo
-
Supervise los costos: las invocaciones a Lambda y el tiempo de cómputo afectan los costos
-
Registre exhaustivamente: utilice sentencias impresas en Lambda para la depuración
-
Establezca los tiempos de espera de forma adecuada: equilibre la paciencia y el costo
-
Documente las métricas: defina claramente lo que mide cada métrica
Siguientes pasos
Tras completar la evaluación de la RFT:
-
Si los resultados son satisfactorios: implemente el modelo en producción
-
Si es necesaria una mejora:
-
Ajusta la función de recompensa
-
Recopila más datos de entrenamiento
-
Modifique los hiperparámetros de entrenamiento
-
Ejecute iteraciones de entrenamiento de RFT adicionales
-
-
Supervisión continua: reevalúe periódicamente con nuevos datos
Funciones de recompensa preestablecidas
Dos funciones de recompensa predefinidas (prime_code, prime_math) de la biblioteca verl de código abierto están
Descripción general de
Estas funciones out-of-the-box preestablecidas proporcionan capacidades de evaluación para:
-
prime_code: generación de código y evaluación de su corrección
-
prime_math — Evaluación del razonamiento matemático y la resolución de problemas
Configuración rápida
-
Descargue la capa Lambda de las versiones nova-custom-eval-sdk
-
Publique la capa Lambda mediante: AWS CLI
aws lambda publish-layer-version \ --layer-name preset-function-layer \ --description "Preset reward function layer with dependencies" \ --zip-file fileb://universal_reward_layer.zip \ --compatible-runtimes python3.9 python3.10 python3.11 python3.12 \ --compatible-architectures x86_64 arm64 -
Agregue la capa a su función Lambda en AWS Management Console (seleccione la preset-function-layer capa personalizada y también agregue AWSSDKPandas-Python 312 para numerosas dependencias)
-
Importe y use en su código Lambda:
from prime_code import compute_score # For code evaluation from prime_math import compute_score # For math evaluation
función prime_code
Objetivo: Evalúa las tareas de generación de código de Python mediante la ejecución del código en casos de prueba y la medición de la corrección.
Ejemplo de formato de conjunto de datos de entrada obtenido de una evaluación
{"messages":[{"role":"user","content":"Write a function that returns the sum of two numbers."}],"reference_answer":{"inputs":["3\n5","10\n-2","0\n0"],"outputs":["8","8","0"]}} {"messages":[{"role":"user","content":"Write a function to check if a number is even."}],"reference_answer":{"inputs":["4","7","0","-2"],"outputs":["True","False","True","True"]}}
Características principales
-
Extracción automática de código a partir de bloques de códigos rebajados
-
Detección de funciones y pruebas basadas en llamadas
-
Pruebe la ejecución de casos con protección de tiempo de espera
-
Comprobaciones de validación y compilación de la sintaxis
-
Informes detallados de errores con rastreos
función prime_math
Propósito: Evalúa el razonamiento matemático y las capacidades de resolución de problemas con apoyo matemático simbólico.
Formato de entrada
{"messages":[{"role":"user","content":"What is the derivative of x^2 + 3x?."}],"reference_answer":"2*x + 3"}
Características principales
-
Evaluación matemática simbólica mediante SymPy
-
Múltiples formatos de respuesta (LaTeX, texto plano, simbólico)
-
Comprobación de equivalencias matemáticas
-
Normalización y simplificación de expresiones
Requisitos del formato de los datos
Para la evaluación del código
-
Entradas: matriz de argumentos de funciones (tipos adecuados: enteros, cadenas, etc.)
-
Salidas: matriz de valores de retorno esperados (tipos adecuados: booleanos, números, etc.)
-
Código: debe estar en Python con definiciones de funciones claras
Para la evaluación matemática
-
Respuesta de referencia: expresión matemática o valor numérico
-
Respuesta: puede ser una LaTe X, texto sin formato o notación simbólica
-
Equivalencia: se comprueba simbólicamente, no solo la coincidencia de cadenas
Prácticas recomendadas
-
Utilice los tipos de datos adecuados en los casos de prueba (números enteros frente a cadenas, valores booleanos frente a «verdaderos»)
-
Proporcione firmas de funciones claras en los problemas de código
-
Incluya casos extremos en las entradas de prueba (cero, números negativos, entradas vacías)
-
Formatee las expresiones matemáticas de forma coherente en las respuestas de referencia
-
Pruebe su función de recompensa con datos de muestra antes de implementarla
Gestión de errores
Ambas funciones incluyen una sólida gestión de errores para:
-
Errores de compilación en el código generado
-
Excepciones de tiempo de ejecución durante la ejecución
-
Datos de entrada mal formados
-
Escenarios de tiempo de espera para bucles infinitos
-
Expresiones matemáticas no válidas