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.
Prepare los datos para los modelos de Amazon Nova
Cuando ajusta un modelo de Amazon Nova con ajustes de refuerzo, puede incorporar sus propias indicaciones o utilizar los registros de invocación de la API de Amazon Bedrock existentes como datos de entrenamiento.
Fuentes y requisitos de datos de entrenamiento
Puede proporcionar datos de entrenamiento mediante una de las siguientes opciones:
nota
Solo admitimos el formato de finalización de chat de OpenAI.
Recopile sus peticiones y guárdelas en formato de archivo .jsonl. Puede cargar conjuntos de datos personalizados en formato JSONL o seleccionar conjuntos de datos existentes de Amazon S3. Cada registro del JSONL debe usar el formato de finalización de chat de OpenAI en la siguiente estructura:
-
messages: En este campo, incluya el rol de usuario, sistema o asistente que contiene la solicitud de entrada proporcionada al modelo. -
reference_answer: En este campo, debe contener el resultado esperado o los criterios de evaluación que su función de recompensa utiliza para puntuar la respuesta del modelo. No se limita a los resultados estructurados, sino que puede contener cualquier formato que ayude a la función de recompensa a evaluar la calidad. -
[Opcional] Puede agregar los campos utilizados por la calificadora Lambda para la calificación.
Requisitos:
Formato JSONL con mensajes en formato de finalización de chat de OpenAI (un mensaje por línea)
Un mínimo de 100 registros en el conjunto de datos de entrenamiento
Amazon Bedrock valida automáticamente el formato del conjunto de datos de entrenamiento
Al crear un trabajo de ajuste de refuerzo, puede hacer que Amazon Bedrock utilice los registros de invocación existentes de su bucket de S3 como datos de entrenamiento. Para Amazon Bedrock, un registro de invocación es un registro detallado de las invocaciones del modelo.
Puede utilizar los registros de invocación de Invoke/Converse API almacenados en el lado del cliente de Amazon S3 para la formación.
Requisitos:
-
El registro de API debe estar habilitado para su uso de Amazon Bedrock
-
Los registros deben estar en un formato compatible ( Invoke/Converse API de Amazon Bedrock)
-
Un mínimo de 100 ejemplos de mensajes
Para utilizar los registros de invocación para realizar ajustes de refuerzo, configure el inicio de sesión de invocación del modelo, utilice una de las operaciones de invocación del modelo y asegúrese de haber configurado un bucket de Amazon S3 como destino de los registros. Para obtener más información sobre la configuración de los registros de invocación, consulte Supervisar la invocación del modelo mediante CloudWatch Logs y Amazon S3.
Antes de poder iniciar el trabajo de ajuste del refuerzo con los registros de invocación de un bucket de S3 como entrada, debe proporcionar a Amazon Bedrock permisos para acceder a los registros desde un bucket de S3. Para obtener más información, consulte Personalización, acceso y seguridad de los modelos.
Si lo desea, puede añadir metadatos de solicitud a los pares de petición y respuesta del registro de invocación mediante una de las operaciones de invocación del modelo y, posteriormente, utilizarlos para filtrar los registros. Amazon Bedrock puede usar los registros filtrados para ajustar el modelo.
Añada los metadatos de las solicitudes a las solicitudes y respuestas de sus registros de invocación
Con los registros de invocación, puede identificar las solicitudes del conjunto de datos de entrenamiento que desea que Amazon Bedrock utilice para ajustar el refuerzo mediante los metadatos de solicitud adjuntos a los registros de invocación.
El siguiente es un ejemplo de un registro de invocación de una llamada con: InvokeModel requestMetadata
{ "schemaType": "ModelInvocationLog", "schemaVersion": "1.0", "timestamp": "2024-09-11T17:16:18Z", "accountId": "XXXXX", "identity": { "arn": "arn:aws:sts::XXXXXXX:assumed-role/Admin/XXXXXX" }, "region": "us-east-1", "requestId": "7ee514f3-9eff-467c-af75-8fd564ce58e5", "operation": "InvokeModel", "modelId": "meta.llama3-1-405b-instruct-v1:0", "input": { "inputContentType": "application/json", "inputBodyJson": { "prompt": "story of two dogs", "max_tokens_to_sample": 300 }, "inputTokenCount": 13 }, "output": { "outputContentType": "application/json", "outputBodyJson": { "type": "completion", "completion": " Here is a story about two dogs:\n\nRex and Charlie were best friends who lived next door to each other. Every morning, their owners would let them out into the backyard to play. Rex was a golden retriever with long, shaggy fur. He loved to run and chase sticks. Charlie was a corgi with short legs and a big smile. He was happy just sniffing the grass and rolling around. \n\nThe two dogs spent every day playing together. Rex would grab a stick and bring it over to Charlie, wagging his tail excitedly. Charlie would take the other end of the stick in his mouth and they'd have a friendly game of tug-of-war. After tiring themselves out, they'd flop down in the warm sunshine for a nap. \n\nAt lunchtime, their owners would call them in for food. Rex would gobble up his kibble hungrily while Charlie ate his at a more leisurely pace. After lunch, it was right back outside for more playtime. The afternoon sunbeams would light up their fur as they chased each other around the yard. \n\nWhen it started getting late, their owners called them in for the night. Rex and Charlie would head inside, tired but happy after another fun day of play. After slurping up fresh water from their bowls, they'd curl up on their beds, Rex's fluffy golden tail tucked over his nose and little", "stop_reason": "max_tokens", "stop": null }, "outputTokenCount": 300 }, "requestMetadata": { "project": "CustomerService", "intent": "ComplaintResolution", "priority": "High" } }
Puede especificar el registro de invocación como fuente de datos de entrada al iniciar un trabajo de ajuste de refuerzo. Puede iniciar un trabajo de ajuste de refuerzo a través de la consola de Amazon Bedrock, mediante la API o el SDK AWS CLI.
Requisitos para proporcionar los metadatos de una solicitud
Los metadatos de solicitud deben cumplir los siguientes requisitos:
-
Se proporcionan en el formato JSON
key:value. -
El par de clave y valor debe ser una cadena de 256 caracteres como máximo.
-
Proporcione un máximo de 16 pares de clave-valor.
Uso de filtros de metadatos de solicitud
Una vez que estén disponibles los registros de invocación con los metadatos de la solicitud, puede aplicar filtros en función de los metadatos de la solicitud para elegir de forma selectiva las solicitudes que se van a incluir a fin de ajustar el modelo. Por ejemplo, es posible que desee incluir solo las que tengan metadatos y los soliciten. "project": "CustomerService" "priority": "High"
Para filtrar los registros mediante varios metadatos de solicitud, utilice un único operador AND booleano o. OR No puede combinar estos operadores. Para el filtrado de metadatos de una sola solicitud, utilice el Not Equals operador Equals o.
Características de los datos de entrenamiento efectivos
Los datos de entrenamiento de RFT efectivos requieren tres características clave:
-
Claridad y coherencia: utilice indicaciones claras e inequívocas con un formato coherente. Evite las etiquetas contradictorias, las instrucciones ambiguas o las respuestas de referencia contradictorias que puedan inducir a error a la formación.
-
Diversidad: incluya formatos de entrada variados, casos extremos y niveles de dificultad que reflejen los patrones de uso de la producción en diferentes tipos de usuarios y escenarios.
-
Funciones de recompensa eficientes: diseñe funciones que se ejecuten rápidamente (en segundos, no en minutos), paralelicen y AWS Lambda arrojen puntuaciones uniformes para una formación rentable.
Propiedades adicionales
El formato de datos RFT admite campos personalizados que van más allá de los requisitos básicos del esquema (y). messages reference_answer Esta flexibilidad le permite añadir cualquier dato adicional que su función de recompensas necesite para una evaluación adecuada.
nota
No necesitas configurar esto en tu receta. El formato de datos admite campos adicionales de forma inherente. Simplemente inclúyelos en el JSON de tus datos de entrenamiento y se transferirán a tu función de recompensas en el metadata campo.
Propiedades adicionales comunes
task_id— Identificador único para el seguimientodifficulty_level— Indicador de complejidad del problemadomain— Área temática o categoríaexpected_reasoning_steps— Número de pasos de la solución
Estos campos adicionales se transfieren a la función de recompensas durante la evaluación, lo que permite aplicar una lógica de puntuación sofisticada adaptada a su caso de uso específico.
Ejemplos con propiedades adicionales