Acelere las llamadas de herramientas agentes con la personalización de modelos sin servidor en Amazon SageMaker AI

La llamada de herramientas agentes es lo que hace que los agentes de IA sean útiles en producción. Así es como consultan bases de datos, activan flujos de trabajo, recuperan datos en tiempo real y actúan en nombre de un usuario. Pero los modelos base frecuentemente alucinan con herramientas, pasan malos parámetros e intentan acciones cuando deberían pedir una aclaración. Estos fallos erosionan la confianza y bloquean el despliegue de la producción.

Puede utilizar la personalización del modelo sin servidor en Amazon SageMaker AI para solucionar estos problemas sin administrar la infraestructura. Con el aprendizaje por refuerzo con recompensas verificables (RLVR), el modelo genera sus propias respuestas candidatas, recibe una señal de recompensa que indica la calidad y actualiza su comportamiento para favorecer lo que funciona. Usted selecciona un modelo, configura una técnica, señala sus datos y función de recompensa, y SageMaker AI se encarga del resto. En esta publicación, explicamos cómo ajustamos Qwen 2.5 7B Instruct para la llamada de herramientas usando RLVR. Cubrimos la preparación de conjuntos de datos en tres comportamientos distintos de los agentes, el diseño de la función de recompensa con puntuación por niveles, la configuración del entrenamiento y la interpretación de los resultados, la evaluación de datos retenidos con herramientas invisibles y la implementación. Al final, nuestro modelo ajustado mejoró la recompensa de las llamadas a herramientas en un 57 % con respecto al modelo base en escenarios que no vio durante el entrenamiento.

Debido a que la llamada a herramientas tiene un objetivo naturalmente verificable, si el modelo llamó a la función correcta con los parámetros correctos, se asigna bien a RLVR. El desafío del aprendizaje por refuerzo (RL) autogestionado es la sobrecarga operativa. La adquisición de GPU, la orquestación de la memoria entre las fases de implementación y capacitación, la infraestructura de recompensas y los puntos de control se suman rápidamente. La sensibilidad de los hiperparámetros añade otra capa de complejidad. SageMaker AI asume ese trabajo para que usted pueda concentrarse en su modelo, sus datos y su función de recompensa.

SageMaker AI admite familias de modelos que incluyen Amazon Nova, GPT-OSS, Llama, Qwen y DeepSeek, con técnicas que incluyen ajuste fino supervisado (SFT), optimización de preferencias directas (DPO), RLVR y aprendizaje reforzado a partir de comentarios de IA (RLAIF). Las métricas de capacitación y validación se rastrean a través de MLflow integrado.

Por qué RLVR para llamadas de herramientas

SFT requiere ejemplos etiquetados de cada comportamiento que desea que aprenda el modelo. Para la llamada a una herramienta, eso significa ejemplos de llamada a una herramienta, pidiendo una aclaración y negándose. Pero la llamada a herramientas también requiere que el modelo decida entre esos comportamientos, y SFT puede tener dificultades para generalizar esa toma de decisiones más allá de los patrones específicos en sus datos de entrenamiento.

RLVR funciona de manera diferente. Para cada mensaje, el modelo genera múltiples respuestas candidatas (usamos ocho). Una función de recompensa verifica cuáles son correctas. Luego, el modelo actualiza su política para favorecer lo que funcionó, utilizando la optimización de políticas relativas al grupo (GRPO). GRPO compara la puntuación de recompensa de cada candidato con la puntuación media del grupo y refuerza las respuestas que obtienen una puntuación superior a la media. Con el tiempo, el modelo aprende el formato de una llamada de herramienta y cuándo llamar en comparación con cuándo preguntar.

Requisitos previos

Para utilizar la personalización del modelo sin servidor en SageMaker AI, debe tener los siguientes requisitos previos:

Ajuste la instrucción Qwen 2.5 7B en SageMaker AI

Para comenzar, abrimos Amazon SageMaker AI Studio y elegimos Modelos en el panel de navegación izquierdo para explorar los modelos básicos (FM) que están disponibles para personalizar.

En el menú Personalizar modelo, seleccione Qwen 2.5 7B Instruct y elija Personalizar con UI. Esto abre la página de configuración de personalización donde selecciona su técnica, señala sus datos de entrenamiento y función de recompensa, y configura hiperparámetros. Seleccionamos el aprendizaje por refuerzo de recompensas verificables (RLVR) como nuestra técnica de personalización.

Formulario de personalización del modelo de Amazon SageMaker Studio para Qwen2.5-7B-Instruct que muestra el menú desplegable Técnica de personalización con Aprendizaje reforzado con recompensas verificables (RLVR) seleccionado, junto con opciones para funciones de recompensa, carga de conjuntos de datos, ubicación de salida de S3 y tamaño de lote.

Prepara tus datos de entrenamiento

Una herramienta que llama a un conjunto de datos necesita enseñar más que las invocaciones API correctas. Los agentes de producción se enfrentan a tres situaciones distintas:

El usuario proporciona suficiente información y el modelo debe llamar a una herramienta. A la solicitud del usuario le faltan los parámetros requeridos y el modelo debe solicitar una aclaración. La solicitud es perjudicial o está fuera de alcance y el modelo debe rechazarla.

Generamos 1500 ejemplos de entrenamiento sintéticos a partir de nuestros esquemas de herramientas (clima, vuelos, traducción, conversión de moneda, estadísticas) utilizando Kiro, el IDE impulsado por IA de Amazon, para producir indicaciones con variaciones realistas en la redacción y la especificidad en los tres comportamientos. A continuación se muestra un ejemplo del mensaje que utilizamos:

Genere 1500 ejemplos de capacitación JSONL para llamadas a herramientas RLVR
ajuste fino en 5 esquemas de herramientas: get_weather_forecast,
vuelos_búsqueda, texto_traducido, conversión_moneda y
obtener_estadísticas.

Cada línea debe seguir este formato:
{"prompt": [{"role": "system", "content": "…"}, {"role": "user", "content": "…"}], "reward_model": {"ground_truth": "…"}}

Distribuya ejemplos entre tres comportamientos:
1. Ejecutar (60%): el usuario proporciona todos los parámetros requeridos → ground_truth es la herramienta llamada JSON
2. Aclarar (25%): al usuario le faltan los parámetros requeridos → ground_truth es una pregunta aclaratoria
3. Rechazar (15%): la solicitud es dañina o está fuera de alcance → ground_truth es un rechazo cortés

Varíe la redacción entre formal, informal y concisa.
Salida JSONL válida únicamente, sin comentarios.

Este es un camino práctico para los equipos que aún no tienen registros de producción de los cuales extraer. Para las organizaciones que ya ejecutan flujos de trabajo agentes, las indicaciones reales de los usuarios y las llamadas a herramientas desde la producción generarán datos de capacitación de mayor calidad.

Cada ejemplo de entrenamiento contiene un mensaje (una instrucción del sistema y una solicitud del usuario) y una verdad fundamental en el campo modelo_recompensa con el que califica la función de recompensa. A continuación se muestran ejemplos de cada comportamiento.

Ejecutar cuando el usuario proporcione todo lo que la herramienta necesita:

{ "prompt": [ {"role": "system", "content": "Eres un asistente útil. Cuando uses herramientas, responde con: […]"}, {"role": "user", "content": "Obtén el clima para San Francisco"} ], "reward_model": { "ground_truth": "[{"name": "get_weather_forecast", "arguments": {"city": "San Francisco"}}]" } }

Aclare cuando falta un parámetro requerido:

{ "prompt": [ {"role": "system", "content": "Eres un asistente útil. Cuando utilices herramientas, responde con: […]"}, {"role": "user", "content": "Obtén el clima"} ], "reward_model": { "ground_truth": "Para proporcionarte información meteorológica, ¿podrías especificar la ubicación?" } }

Ejecutar con múltiples parámetros:

{ "prompt": [ {"role": "system", "content": "Eres un asistente útil. Cuando utilices herramientas, responde con: […]"}, {"role": "user", "content": "Convertir 50 EUR a USD"} ], "reward_model": { "ground_truth": "[{"name": "currency_convert", "arguments": {"amount": 50, "from": "EUR", "to": "USD"}}]" } }

Observe la diferencia entre "Obtener el clima para San Francisco" (llamada a la herramienta) y "Obtener el clima" (aclaración). Este es el tipo de distinción que GRPO aprende bien. Para cada mensaje, el modelo genera ocho candidatos, la función de recompensa los califica y las puntuaciones se promedian en todo el grupo. Los candidatos por encima de la media se ven reforzados y, con el tiempo, el modelo detecta cuándo llamar y cuándo preguntar.

Defina su función de recompensa

La función de recompensa define qué significa correcto para nuestro caso de uso. Lo escribimos como una función de Python que recibe la respuesta del modelo y la verdad fundamental de los datos de entrenamiento y devuelve una puntuación numérica. La nuestra extrae llamadas a herramientas de la respuesta del modelo, las analiza como JSON y las compara con la verdad básica.

La función completa maneja la extracción de respuestas, el análisis flexible de formatos alternativos durante el entrenamiento inicial y casos extremos relacionados con discrepancias de tipos JSON. Aquí está la lógica central de puntuación:

# Después de extraer y analizar las llamadas a herramientas de la respuesta del modelo y la verdad del terreno: # Comparar los nombres de las herramientas pred_names = {tool.get('name', '') para la herramienta en pred_tools} gt_names = {tool.get('name', '') para la herramienta en gt_tools} if pred_names == gt_names: # Función(es) correcta(s): verifique si los argumentos también coinciden con perfect_match = True para pred_tool en pred_tools: para gt_tool en gt_tools: if pred_tool.get('name') == gt_tool.get('name'): if pred_tool.get('arguments') != gt_tool.get('arguments'): perfect_match = False puntaje = 1.0 if perfect_match else 0.5 elif pred_names & gt_names: # Superposición parcial en nombres de funciones puntaje = 0.5 else: # Puntuación de función completamente incorrecta = 0,0

Los tres niveles (1.0, 0.5 y 0.0) le dan a GRPO una señal de aprendizaje más rica. Si varios de los ocho candidatos aciertan la función pero omiten un parámetro, la puntuación de 0,5 los distingue de respuestas completamente incorrectas. Esto ayuda al modelo a reconocer que está en el camino correcto.

Para casos de aclaración y rechazo donde la verdad fundamental es el lenguaje natural (sin etiquetas TOOLCALL), la función de recompensa verifica si el modelo también evitó llamar a una herramienta. Una llamada API innecesaria cuando el modelo debería haber hecho una pregunta gana 0.0.

Configurar e iniciar la capacitación

En la página de configuración de personalización, señalamos nuestro conjunto de datos de entrenamiento y función de recompensa, luego configuramos nuestros hiperparámetros. Usamos un tamaño de lote de 128, una tasa de aprendizaje de 5e-6, 3 épocas y 8 implementaciones por mensaje.

La configuración de las implementaciones es el mecanismo central del GRPO. Para cada mensaje de entrenamiento, el modelo genera ocho respuestas diferentes, la función de recompensa califica cada una y las respuestas que obtienen una puntuación superior al promedio del grupo se refuerzan. Las métricas de capacitación y validación se registran en MLflow. En este ejemplo, el entrenamiento dura aproximadamente 40 minutos.

Resultados del entrenamiento

Panel de rendimiento que muestra cinco gráficos de métricas de entrenamiento RLVR: Estadísticas de recompensa del tren con una tendencia ascendente de 0,28 a 0,70, Distribución de duración del episodio del tren que fluctúa entre 30 y 35, Entropía de política que disminuye de 0,19 a 0,12, Norma de gradiente que disminuye de 0,10 a cerca de 0,00 y Estimación de ventaja media que se recupera de -0,08 a cerca de 0,00 en 30 pasos de entrenamiento. Descripción larga: captura de pantalla de un tema oscuro

Las estadísticas de recompensas de trenes (arriba a la izquierda) son el gráfico en el que debemos centrarnos. La recompensa media en todos los lanzamientos comenzó alrededor de 0,28 y subió a 0,65-0,68 en 30 pasos, más del doble. Las ganancias más pronunciadas se producen en los primeros 10 pasos a medida que el modelo aprende el formato de llamada de herramienta básica y la estructura de decisión. Luego se aplana después del paso 20 a medida que converge.

Los otros gráficos confirman el entrenamiento saludable:

La entropía de las políticas disminuye, lo que significa que el modelo se vuelve más seguro en lugar de adivinar. La norma de gradiente se estabiliza, lo que significa que las actualizaciones son cada vez más pequeñas y refinadas. La estimación de ventaja media converge hacia cero, lo que indica que la política del modelo se está estabilizando y la calidad de respuesta promedio se está alineando con la línea base de recompensa.

Evaluar el modelo ajustado

Una vez completado el trabajo de entrenamiento, podrá ver los modelos que creó en la pestaña Mis modelos. Para ampliar los detalles, elija Ver detalles en uno de sus modelos.

Página Mis modelos de Amazon SageMaker Studio que muestra la pestaña Registrado con dos tarjetas de modelo optimizadas: nombre-ejemplo-2lt4op en la versión v3 y nombre-ejemplo-2lt4o sin versiones encontradas, ambas creadas hace 4 días con botones Ver detalles.

Puede elegir Continuar con la personalización para iterar más ajustando los hiperparámetros o entrenando con una técnica diferente. Elija Evaluar para comparar su modelo personalizado con el modelo base.

Evaluamos en un conjunto de pruebas separado de 300 ejemplos que fueron excluidos del entrenamiento. El conjunto de datos de evaluación cubre los mismos tres comportamientos pero incluye herramientas, frases y escenarios que el modelo no ha visto. Prueba search_restaurants, get_stock_price y calcular_standard_deviation, ninguno de los cuales apareció durante el entrenamiento. También incluye casos de rechazo de solicitudes dañinas como generar contenido violento o crear malware, probando si el modelo generaliza el comportamiento seguro a nuevas amenazas.

La evaluación ejecuta métricas estándar de PNL junto con nuestra función de recompensa personalizada frente al conjunto retenido.

Tabla de comparación de métricas de evaluación que muestra el modelo personalizado entrenado con RLVR superando al modelo base en todas las métricas: Rouge1 (65,21 % frente a 49,48 %), Rouge2 (51,45 % frente a 35,12 %), RougeL (59,19 % frente a 45,78 %), Em (21 % frente a 11 %), F1 (56,63 % frente a 42,19 %), F1 Score Quasi (64,60% frente a 45,98%), Bleu (100,00 frente a 92,58), Tool Call Reward (0,55 frente a 0,35) y Aggregate Reward Score (0,55 frente a 0,35), evaluados en 300 documentos.

Tool Call Reward es nuestra métrica personalizada y la medida más directa de para qué nos capacitamos. Saltó de 0,35 a 0,55, una mejora del 57%. En términos prácticos, esto significa que el modelo ajustado toma la decisión correcta de llamar a la herramienta con mucha más frecuencia. Llama a la función correcta con los parámetros correctos cuando debería, pide aclaraciones cuando falta información y la rechaza cuando corresponde.

F1 Score Quasi, Rouge1 y RougeL mejoraron entre 14 y 19 puntos porcentuales, lo que refleja una mejor generación de nombres de funciones, claves de parámetros y valores correctos en todos los ámbitos.

La concordancia exacta se duplicó del 11% al 21%. Esta métrica requiere una coincidencia de salida carácter por carácter, por lo que incluso las pequeñas diferencias de formato cuentan como un error. La coincidencia exacta del 21% junto con el 64,6% de F1 sugiere que el modelo a menudo obtiene la semántica correcta incluso cuando el formato de la superficie difiere ligeramente.

Todos estos resultados se basan en datos retenidos con herramientas y escenarios que el modelo no vio durante el entrenamiento. Las mejoras se trasladan a las nuevas herramientas, lo que significa que el modelo recogió patrones generales de llamada de herramientas en lugar de memorizar el conjunto de entrenamiento.

A continuación se muestran las respuestas del modelo ajustado a las indicaciones que no vio durante el entrenamiento:

Ejecución de herramientas:

> Pregunta: "¿Cuál es el precio de las acciones de AMZN?" > > Respuesta del modelo: [{"name": "get_stock_price", "arguments": {"ticker": "AMZN"}}]

Clarificación:

> Mensaje: "Búscame un restaurante cercano" > > Respuesta modelo: "¡Estaré encantado de ayudarte a encontrar un restaurante! ¿Podrías proporcionarnos el tipo de cocina o la ubicación que te interesa?"

Casi accidente:

> Pregunta: “¿Cuál es la desviación estándar de 10, 20, 30, 40, 50?” > > Respuesta del modelo: [{"name": "calculate_standard_deviation", "arguments": {"numbers": "10, 20, 30, 40, 50"}}]

En el caso de casi accidente, el modelo seleccionó la herramienta correcta pero pasó los números como una cadena en lugar de una matriz. Esto obtiene una puntuación de recompensa de 0,5 (función correcta, formato de parámetro incorrecto) y representa el tipo de error al que se enfrentaría en la siguiente iteración a través de datos de entrenamiento adicionales o el refinamiento de la función de recompensa.

Implementar el modelo ajustado

Una vez que la evaluación confirme la mejora, implemente el modelo ajustado directamente desde la página de detalles del modelo. Elija Implementar y seleccione su objetivo de implementación: un punto final de SageMaker AI o Amazon Bedrock. También puede descargar los pesos de los modelos desde Amazon S3 para una implementación autoadministrada.

Página de detalles de capacitación de Amazon SageMaker Studio para un modelo de llamada de herramientas RLVR (v1) basado en Qwen2.5-7B-Instruct, que muestra el estado de capacitación completado con la técnica de personalización de RLVR, un menú desplegable Implementar con opciones de SageMaker AI y Bedrock, e hiperparámetros que incluyen tamaño de lote 128, épocas máximas 3 y tasa de aprendizaje 0,000005.

Conclusión

En esta publicación, ajustamos Qwen 2.5 7B Instruct para llamadas de herramientas agentes usando RLVR y GRPO a través de la personalización del modelo sin servidor en Amazon SageMaker AI. Preparamos un conjunto de datos que abarca tres comportamientos de llamada de herramientas (ejecutar, aclarar, rechazar), definimos una función de recompensa escalonada, entrenamos el modelo en aproximadamente 40 minutos, evaluamos datos retenidos con herramientas y escenarios invisibles y lo implementamos. El modelo ajustado mejoró la recompensa de las llamadas de herramientas en un 57 % con respecto al modelo base.

Para mejorar aún más la precisión, puede ampliar sus datos de capacitación con herramientas adicionales, casos extremos y conversaciones de múltiples turnos para cubrir más escenarios que sus agentes encuentran en producción. También puede refinar su función de recompensa para penalizar modos de falla específicos, como el problema del parámetro cadena versus matriz que se muestra en la sección anterior, o agregar crédito parcial para otros patrones de casi falla. Si ejecuta flujos de trabajo agentes, sus registros de producción son una fuente de datos de entrenamiento de alta calidad que puede hacer que el modelo sea aún más efectivo para su caso de uso específico. Más allá de la llamada a herramientas, RLVR se aplica a otras tareas de razonamiento donde la corrección es verificable, como la planificación de varios pasos, la extracción de datos estructurados o la generación de código.

Si bien esta publicación recorre el flujo de trabajo de la interfaz de usuario, también está disponible un SDK para acceso programático. Para obtener más información, consulte la documentación de personalización del modelo de SageMaker AI.

Para comenzar, pruebe la personalización del modelo de IA sin servidor en Amazon SageMaker AI con sus propios casos de uso.

Sobre los autores

Lauren Mullennex

Lauren Mullennex

Lauren es arquitecta sénior de soluciones especializada en GenAI/ML en AWS. Tiene más de una década de experiencia en ML, DevOps e infraestructura. Es autora publicada de un libro sobre visión por computadora. Fuera del trabajo, puedes encontrarla viajando y haciendo caminatas con sus dos perros.

Eric Saleh

Eric es especialista sénior en GenAI en AWS y se centra en la inferencia y la capacitación de modelos básicos. Se está asociando con los principales creadores de modelos básicos y equipos de servicio de AWS para permitir la capacitación distribuida y la inferencia a escala en AWS y liderar mociones conjuntas de GTM con clientes estratégicos. Antes de unirse a AWS, Eric dirigió equipos de productos que creaban soluciones empresariales de IA/ML, que incluían servicios GenAI de vanguardia para ajuste fino, RAG e inferencia administrada. Tiene una maestría en Business Analytics de UCLA Anderson.

Surya Kari

Surya es científico senior de datos de IA generativa en AWS y se especializa en el desarrollo de soluciones que aprovechan modelos básicos de última generación. Tiene una amplia experiencia trabajando con modelos de lenguaje avanzados, incluidos DeepSeek-R1, la familia LLama y Qwen, enfocándose en su ajuste y optimización para aplicaciones científicas específicas. Su experiencia se extiende a la implementación de canales de capacitación eficientes y estrategias de implementación utilizando AWS SageMaker, lo que permite escalar modelos básicos desde el desarrollo hasta la producción. Colabora con los clientes para diseñar e implementar soluciones de IA generativa, ayudándolos a navegar por la selección de modelos, afinar enfoques y estrategias de implementación para lograr un rendimiento óptimo para sus casos de uso específicos.