Cree un trabajo de ajuste fino de refuerzos - Amazon Bedrock

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.

Cree un trabajo de ajuste fino de refuerzos

Puede crear un trabajo de ajuste de refuerzo mediante la consola o la API de Amazon Bedrock. El trabajo de RFT puede tardar varias horas en función del tamaño de los datos de entrenamiento, del número de épocas y de la complejidad de las funciones de recompensa.

Requisitos previos

  • Cree un rol de servicio de IAM para acceder al bucket de Amazon S3 en el que desea almacenar los datos de entrenamiento de RFT y los artefactos de salida. Puede crear este rol automáticamente mediante el Consola de administración de AWS o manualmente. Para obtener información sobre los permisos específicos de RFT, consulte. Reforzar el ajuste del acceso y la seguridad

  • (Opcional) Cifre los datos de entrada y salida, su trabajo de RFT o las solicitudes de inferencia realizadas a modelos personalizados. Para obtener más información, consulte Cifrado de modelos personalizados.

Cree su trabajo de RFT

Elija la pestaña del método que prefiera y siga estos pasos:

Console

Para enviar un trabajo de RFT en la consola, lleve a cabo los siguientes pasos:

  1. Inicie sesión en la consola Amazon Bedrock Consola de administración de AWS y ábrala en https://console.aws.amazon.com/bedrock.

  2. En el panel de navegación de la izquierda, seleccione Modelos personalizados en Ajustar.

  3. En la tabla Modelos, seleccione Crear. A continuación, elija Crear trabajo de ajuste de precisión de armaduras.

  4. En la sección Detalles del modelo, elige Amazon Nova 2 Lite como modelo base.

  5. En la sección de detalles de personalización, introduzca el nombre de la personalización.

  6. En la sección Datos de entrenamiento, elige tu fuente de datos:

    • Utilice registros de invocación almacenados: seleccione uno de los registros de invocación disponibles almacenados en Amazon S3

    • Cargar un nuevo conjunto de datos: selecciona la ubicación en Amazon S3 de tu archivo de conjunto de datos de entrenamiento o carga un archivo directamente desde tu dispositivo

    nota

    Tu conjunto de datos de entrenamiento debe estar en el formato de datos de OpenAI Chat Completions. Si proporciona los registros de invocación en el formato de invocación o conversación de Amazon Bedrock, Amazon Bedrock los convierte automáticamente al formato Chat Completions.

  7. En la sección Función de recompensa, configura tu mecanismo de recompensa:

    • Modele como juez (RLAIF): seleccione un modelo base hospedado en Bedrock como juez y configure las instrucciones para la evaluación. Utilízalo para tareas subjetivas como la moderación de contenido.

      nota

      La opción Modelar como juez de la consola convierte automáticamente la configuración en una función Lambda durante el entrenamiento.

    • Código personalizado (RLVR): cree funciones de recompensa personalizadas utilizando código Python ejecutado a través de funciones Lambda. Úselo para tareas objetivas, como la generación de código.

    Para obtener más información, consulte Configuración de funciones de recompensa.

  8. (Opcional) En la sección Hiperparámetros, ajusta los parámetros de entrenamiento o usa los valores predeterminados.

  9. En la sección Datos de salida, introduzca la ubicación de Amazon S3 en la que Bedrock debe guardar los resultados de los trabajos.

  10. En la sección Configuración de roles, seleccione:

    • Elija un rol existente: selecciónelo de la lista desplegable

    • Crear un rol: introduzca un nombre para el rol de servicio

  11. (Opcional) En la sección Configuración adicional, configure:

    • Validación de datos apuntando a un bucket de Amazon S3

    • Configuración de cifrado de KMS

    • Etiquetas de trabajo y modelo

  12. Seleccione Crear trabajo de ajuste de precisión de refuerzos para comenzar el trabajo.

API

Envíe una CreateModelCustomizationJob solicitud con la opción customizationType establecida en. REINFORCEMENT_FINE_TUNING Debe proporcionar los siguientes campos:

Campos obligatorios:

  • roleArn- ARN del rol de servicio con permisos RFT

  • baseModelIdentifier- ID de modelo o ARN del modelo de base para personalizar

  • customModelName- Nombre del modelo recién personalizado

  • jobName- Nombre del puesto de formación

  • customizationType: se establece como REINFORCEMENT_FINE_TUNING.

  • trainingDataConfig- URI de Amazon S3 del conjunto de datos de entrenamiento o la configuración del registro de invocación

  • outputDataConfig- URI de Amazon S3 para escribir los datos de salida

  • rftConfig- Configuración de funciones de recompensa (RLVR o RLAIF) y configuración de hiperparámetros

Ejemplo de solicitud:

{ "roleArn": "arn:aws:iam::123456789012:role/BedrockRFTRole", "baseModelIdentifier": "amazon.nova-2.0", "customModelName": "my-rft-model", "jobName": "my-rft-job", "customizationType": "REINFORCEMENT_FINE_TUNING", "trainingDataConfig": { "s3Uri": "s3://my-bucket/training-data.jsonl" }, "customizationConfig": { "rftConfig" : { "graderConfig": { "lambdaGrader": { "lambdaArn": "arn:aws:lambda:us-east-1:123456789012:function:function-name" } }, "hyperParameters": { "batchSize": 64, "epochCount": 2, "evalInterval": 10, "inferenceMaxTokens": 8192, "learningRate": 0.00001, "maxPromptLength": 4096, "reasoningEffort": "high", "trainingSamplePerPrompt": 4 } } }, "outputDataConfig": { "s3Uri": "s3://my-bucket/rft-output/" } }

Solicitud de ejemplo de API de Python:

import boto3 bedrock = boto3.client(service_name='bedrock') # Set parameters customizationType = "REINFORCEMENT_FINE_TUNING" baseModelIdentifier = "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-2-lite-v1:0:256k" roleArn = "${your-customization-role-arn}" jobName = "MyFineTuningJob" customModelName = "MyCustomModel" customizationConfig = { 'rftConfig' : { 'graderConfig': { 'lambdaGrader': { 'lambdaArn': 'arn:aws:lambda:us-east-1:123456789012:function:function-name' } }, 'hyperParameters': { 'batchSize': 64, 'epochCount': 2, 'evalInterval': 10, 'inferenceMaxTokens': 8192, 'learningRate':0.00001, 'maxPromptLength': 4096, 'reasoningEffort': 'high', 'trainingSamplePerPrompt':4 } } } trainingDataConfig = {"s3Uri": "s3://${training-bucket}/myInputData/train.jsonl"} outputDataConfig = {"s3Uri": "s3://${output-bucket}/myOutputData"} # Create job response_ft = bedrock.create_model_customization_job( jobName=jobName, customModelName=customModelName, roleArn=roleArn, baseModelIdentifier=baseModelIdentifier, customizationConfig=customizationConfig, trainingDataConfig=trainingDataConfig, outputDataConfig=outputDataConfig, customizationType=customizationType ) jobArn = response_ft['jobArn']

Flujo de trabajo de RFT

El trabajo de RFT sigue este flujo de trabajo automatizado:

  1. Generación de respuestas: el modelo actor genera respuestas a partir de las instrucciones de entrenamiento

  2. Cálculo de recompensas: las funciones de recompensa evalúan los pares de pronto-respuesta

  3. Entrenamiento con modelos de actores: el modelo aprende de las parejas puntuadas mediante el GRPO

Durante el entrenamiento, puedes monitorear el progreso mediante gráficos en tiempo real con métricas de entrenamiento y validación, como las pérdidas, las recompensas, el margen de recompensa y la precisión. Una vez que se ha realizado correctamente, se crea un modelo RFT con un ARN de modelo personalizado.

Configure la inferencia

Una vez finalizado el trabajo, puede implementar el modelo de RFT resultante con un solo clic para realizar inferencias bajo demanda. También puede usar el rendimiento aprovisionado para cargas de trabajo de misión crítica que requieren un rendimiento constante. Una vez configurada la inferencia, utilice Test in Playground para evaluar y comparar las respuestas de forma interactiva con el modelo base. side-by-side

Para supervisar el progreso de su trabajo de RFT, consulte. Supervise su trabajo de formación en RFT

Para evaluar su modelo de RFT completo, consulte. Evalúe su modelo RFT