

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.

# Perfeccione los modelos Amazon Nova con ajustes de refuerzo
<a name="rft-nova-models"></a>

Antes de realizar los ajustes, asegúrese de cumplir con los requisitos previos, ya que Amazon Bedrock necesita permisos específicos para crear y gestionar el proceso de ajuste. Para obtener información completa sobre seguridad y permisos, consulte. [Acceso y seguridad para los modelos Amazon Nova](rft-access-security.md)

Realice el ajuste preciso del refuerzo para los modelos de Amazon Nova en 5 pasos:

1. **Proporcione un conjunto de datos de entrenamiento**: cargue las instrucciones en el formato requerido (por ejemplo, JSONL) como conjunto de datos de entrenamiento para reforzar el ajuste. Para obtener más información, consulte [Prepare los datos para los modelos de Amazon Nova](rft-prepare-data.md).

1. **Configure la función de recompensa (calificador)**: defina un calificador para puntuar las respuestas del modelo en función de la corrección, la estructura, el tono u otros objetivos. La función de recompensa se puede ejecutar con Lambda para calcular las puntuaciones objetivas. También puede elegir un modelo como juez (mediante la consola) y calificar las respuestas en función de los criterios y principios que configure (la consola los convierte automáticamente en funciones Lambda). Para obtener más información, consulte [Configuración de funciones de recompensa para los modelos Amazon Nova](reward-functions.md).

1. **Enviar trabajo de ajuste de refuerzo: inicie el trabajo** de ajuste de refuerzo especificando el modelo base, el conjunto de datos, la función de recompensa y otros ajustes opcionales, como los hiperparámetros. Para obtener más información, consulte [Cree y gestione trabajos de ajuste preciso para los modelos de Amazon Nova](rft-submit-job.md).

1. **Supervise la formación**: realice un seguimiento del estado del trabajo, las métricas de recompensas y el progreso de la formación hasta su finalización. Para obtener más información, consulte [Supervise su trabajo de formación en RFT](rft-submit-job.md#rft-monitor-job).

1. **Utilice un modelo ajustado**: una vez finalizado el trabajo, implemente 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. Consulte [Configuración de la inferencia para un modelo personalizado](model-customization-use.md). Utilice **Test in Playground** para evaluar y comparar las respuestas con el modelo base.

**importante**  
Puede enviar un máximo de 20 000 solicitudes a Amazon Bedrock para reforzar y ajustar el modelo.

## Modelos Nova compatibles
<a name="rft-nova-supported-models"></a>

En la siguiente tabla se muestran los modelos de Amazon Nova que puede personalizar con ajustes de refuerzo:

**nota**  
Para obtener información sobre otros modelos compatibles, incluidos los modelos de peso abierto, consulte. [Ajuste con precisión los modelos de peso abierto con -compatible OpenAI APIs](fine-tuning-openai-apis.md)


**Modelos compatibles para el ajuste fino de refuerzos**  

| Proveedor | Modelo | ID del modelo | Compatibilidad con modelos de una sola región | 
| --- | --- | --- | --- | 
| Amazon | Nova 2 Lite | amazon.nova-2-lite-v1:00:256 k | us-east-1 | 

# Acceso y seguridad para los modelos Amazon Nova
<a name="rft-access-security"></a>

Antes de empezar a afinar el refuerzo, asegúrese de entender qué tipo de acceso necesita Amazon Bedrock para las operaciones específicas de RFT. RFT requiere permisos adicionales además de los ajustes estándar debido a sus capacidades de ejecución de funciones de recompensa.

Para obtener información básica sobre la configuración de seguridad de la personalización del modelo, incluidas las relaciones de confianza, los permisos de Amazon S3 y el cifrado de KMS, consulte[Creación de un rol de servicio para la personalización de modelos](custom-model-job-access-security.md#custom-model-job-service-role).

## Requisitos previos
<a name="rft-access-prerequisites"></a>

Antes de añadir permisos de IAM específicos de RFT, debe añadir las siguientes funciones de servicio de IAM:
+ [Relación de confianza](custom-model-job-access-security.md#custom-model-job-service-role-trust-relationship)
+ [Permisos para acceder a los archivos de entrenamiento y validación y escribir los archivos de salida en S3](custom-model-job-access-security.md#custom-model-job-service-role-s3-permissions)

## Permisos de IAM específicos de RFT
<a name="rft-iam-permissions"></a>

Añada estos permisos a su función de servicio de personalización de modelos existente para la funcionalidad de RFT.

### Permisos Lambda para funciones de recompensa
<a name="rft-lambda-permissions"></a>

Debe añadir permisos de invocación a Lambda. A continuación, se muestra un ejemplo de política que puede utilizar:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:*:function:reward-function-name"
            ]
        }
    ]
}
```

### Acceso al registro de invocación
<a name="rft-api-log-permissions"></a>

Para utilizar los registros de invocación del modelo Amazon Bedrock existentes como datos de entrenamiento, añada permisos para acceder al bucket de Amazon S3 donde se almacenan los registros de invocación. 

Debe proporcionar permisos de acceso al bucket de Amazon S3 para el bucket de entrada. A continuación se muestra un ejemplo de política que puede utilizar:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::s3-invocation-logs-bucket",
                "arn:aws:s3:::s3-invocation-logs-bucket/*"
            ]
        }
    ]
}
```

Para obtener información sobre la configuración de seguridad, incluidas las funciones básicas de IAM, los permisos de Amazon S3 y el cifrado, consulte[Creación de un rol de servicio para la personalización de modelos](custom-model-job-access-security.md#custom-model-job-service-role).

## Permisos de la función Lambda de Grader para RLAIF
<a name="rft-grader-lambda-permissions"></a>

Si crea su propia función de Lambda para las funciones de recompensa de Reinforcement Learning from AI Feedback (RLAIF), debe añadir permisos específicos a la función de ejecución de Lambda.

### Permisos fundamentales para los jueces de LLM
<a name="rft-bedrock-permissions"></a>

En el caso de las funciones de LLM-as-Judge recompensa (RLAIF), añada permisos para invocar modelos básicos. A continuación, se muestra un ejemplo de política que puede utilizar para su función de ejecución de Lambda.

**nota**  
Agregue estos permisos a su función de ejecución de Lambda únicamente si crea su propia función de Lambda. La consola gestiona esto automáticamente al crear funciones Lambda a través de la consola.

El siguiente es un ejemplo de invocación de un LLM fundamental como juez mediante modelos básicos:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:*:*:foundation-model/*"
            ]
        }
    ]
}
```

El siguiente es un ejemplo de invocación de un LLM fundamental como juez mediante un perfil de inferencia:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-premier-v1:0",
                "arn:aws:bedrock:us-east-2::foundation-model/amazon.nova-premier-v1:0",
                "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-premier-v1:0"
            ],
            "Condition": {
                "StringLike": {
                    "bedrock:InferenceProfileArn": "arn:aws:bedrock:us-east-1:111122223333:inference-profile/us.amazon.nova-premier-v1:0"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:111122223333:inference-profile/us.amazon.nova-premier-v1:0"
            ]
        }
    ]
}
```

[Para obtener información sobre los requisitos previos del perfil de inferencia, consulte Requisitos previos para los perfiles de inferencia.](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-prereq.html)

# Prepare los datos para los modelos de Amazon Nova
<a name="rft-prepare-data"></a>

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
<a name="rft-data-source-options"></a>

Puede proporcionar datos de entrenamiento mediante una de las siguientes opciones:

**nota**  
Solo admitimos el formato de finalización de chat de OpenAI.

### Opción 1: proporcione sus propias indicaciones
<a name="w2aac15c25c17c15b5b7b1"></a>

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

------
#### [ Example: General question-answering ]

```
{
            "messages": [
                {
                    "role": "system", 
                    "content": "You are a helpful assistant"
                },
                {
                    role": "user", 
                    "content": "What is machine learning?"}
            ],
            "reference_answer": "Machine learning is a subset of artificial intelligence that enables computers to learn and make decisions from data without being explicitly programmed."
            }
```

------
#### [ Example: Math problem ]

```
{
  "id": "sample-001",
  "messages": [
    {
      "role": "system",
      "content": "You are a math tutor"
    },
    {
      "role": "user",
      "content": "Solve: 2x + 5 = 13"
    }
  ],
  "reference_answer": {
    "solution": "x = 4",
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
  }
}
```

------

### Opción 2: usar registros de invocación
<a name="w2aac15c25c17c15b5b7b3"></a>

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](https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html).

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](custom-model-job-access-security.md).

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
<a name="rft-request-metadata"></a>

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
<a name="rft-metadata-requirements"></a>

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
<a name="rft-metadata-filters"></a>

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
<a name="rft-data-characteristics"></a>

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
<a name="rft-additional-properties"></a>

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 seguimiento
+ `difficulty_level`— Indicador de complejidad del problema
+ `domain`— Área temática o categoría
+ `expected_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**

------
#### [ Chemistry problem ]

```
{
  "id": "chem-001",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful chemistry assistant"
    },
    {
      "role": "user",
      "content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C"
    }
  ],
  "reference_answer": {
    "donor_bond_counts": 2,
    "acceptor_bond_counts": 4
  }
}
```

El `reference_answer` campo contiene el resultado esperado o los criterios de evaluación que la función de recompensa utiliza para puntuar la respuesta del modelo. No se limita a resultados estructurados, sino que puede contener cualquier formato que ayude a la función de recompensa a evaluar la calidad.

------
#### [ Math problem with metadata ]

```
{
  "messages": [
    {
      "role": "system",
      "content": "You are a math tutor"
    },
    {
      "role": "user",
      "content": "Solve: 2x + 5 = 13"
    }
  ],
  "reference_answer": {
    "solution": "x = 4",
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
  },
  "task_id": "algebra_001",
  "difficulty_level": "easy",
  "domain": "algebra",
  "expected_reasoning_steps": 3
}
```

------

# Configuración de funciones de recompensa para los modelos Amazon Nova
<a name="reward-functions"></a>

Las funciones de recompensa evalúan la calidad de la respuesta y proporcionan señales de retroalimentación para el entrenamiento del modelo. Puede configurar las funciones de recompensa utilizando funciones Lambda personalizadas o modelos básicos alojados en Amazon Bedrock como jueces. Hay disponibles plantillas guiadas para simplificar la creación de funciones de recompensa para tareas comunes, como el seguimiento de las instrucciones y la validación del formato. Elija el enfoque que se adapte a los requisitos de su tarea.

## Refuerce el aprendizaje mediante recompensas verificables (RLVR)
<a name="rft-rlvr"></a>

El RLVR optimiza los modelos para tareas objetivas, como la generación de código o el razonamiento matemático, mediante calificadores o plantillas verificables basados en reglas. ready-to-use

Tiene dos opciones para el RLVR (código personalizado):

### Opción 1: utilice plantillas proporcionadas por la consola
<a name="w2aac15c25c17c17b5b7b1"></a>

La consola Amazon Bedrock proporciona plantillas de muestra para las funciones Lambda de la niveladora:
+ Razonamiento matemático con verificación de la verdad fundamental
+ Validación de formatos y comprobación de restricciones
+ Plantilla Lambda genérica para grader con código repetitivo

Siga las instrucciones de la plantilla proporcionada en la página **Crear trabajo de RFT** de la consola de [Amazon Bedrock](https://console.aws.amazon.com/bedrock).

### Opción 2: traiga su propia función Lambda
<a name="w2aac15c25c17c17b5b7b3"></a>

Cree funciones de recompensa personalizadas con su propio ARN de Lambda para cálculos lógicos complejos, externos APIs o de varios pasos, o para combinar varios criterios de evaluación.

**nota**  
Si trae su propia función Lambda, tenga en cuenta lo siguiente:  
Aumente el tiempo de espera de Lambda de 3 segundos por defecto a un máximo de 15 minutos para evaluaciones complejas.
La función de ejecución de Lambda necesita permisos para invocar modelos, tal y como se describe en. [Acceso y seguridad para los modelos Amazon Nova](rft-access-security.md)

## Aprendizaje reforzado a través de la retroalimentación de la IA (RLAIF)
<a name="rft-rlaif"></a>

El RLAIF optimiza los modelos para tareas subjetivas, como el seguimiento de instrucciones o las interacciones con los chatbots, utilizando jueces basados en la IA y con plantillas. ready-to-use

**Para la RLAIF (Model as Judge):**
+ Seleccione un modelo base hospedado en Amazon Bedrock como juez
+ Configure las instrucciones para la evaluación
+ Defina los criterios de evaluación y las pautas de puntuación

Plantillas LLM-as-Judge de mensajes disponibles en la consola Amazon Bedrock:
+ Instrucción siguiente (modelo de formación para jueces)
+ Resumen (diálogos de varios turnos)
+ Evaluación del razonamiento (CoT para dominios especializados)
+ Fidelidad RAG (preguntas y respuestas basadas en el contexto)

**nota**  
La opción **Model as Judge** de la consola convierte automáticamente la configuración en una función Lambda durante el entrenamiento.

## Detalles de implementación de la función Lambda
<a name="rft-lambda-implementation"></a>

Al implementar funciones de recompensa de Lambda personalizadas, la función debe aceptar y devolver datos en el siguiente formato.

------
#### [ Input structure ]

```
[{
  "id": "123",
  "messages": [
    {
      "role": "user",
      "content": "Do you have a dedicated security team?"
    },
    {
      "role": "assistant",
      "content": "As an AI developed by Amazon, I don not have a dedicated security team..."
    }
  ],
  "metadata": {
    "reference_answer": {
      "compliant": "No",
      "explanation": "As an AI developed by Company, I do not have a traditional security team..."
    },
    "my_key": "sample-001"
  }
}]
```

------
#### [ Output structure ]

```
[{
  "id": "123",
  "aggregate_reward_score": 0.85,
  "metrics_list": [
    {
      "name": "accuracy",
      "value": 0.9,
      "type": "Reward"
    },
    {
      "name": "policy_compliance",
      "value": 0.8,
      "type": "Metric"
    }
  ]
}]
```

------

**Directrices de diseño**
+ **Clasifique las respuestas**: otorgue a la mejor respuesta una puntuación claramente más alta
+ **Utilice controles consistentes**: evalúe la finalización de las tareas, el cumplimiento del formato, la seguridad y la duración razonable
+ **Mantenga una escala estable**: mantenga las puntuaciones normalizadas y que no sean explotables

# Cree y gestione trabajos de ajuste preciso para los modelos de Amazon Nova
<a name="rft-submit-job"></a>

Puede crear un trabajo de ajuste fino de refuerzo (RFT) mediante la consola o la API de Amazon Bedrock. El trabajo de RFT puede tardar unas 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
<a name="rft-prerequisites"></a>
+ Cree un rol de servicio de IAM con los permisos necesarios. Para obtener información completa sobre seguridad y permisos, incluidos los permisos específicos de RFT, consulte. [Acceso y seguridad para los modelos Amazon Nova](rft-access-security.md)
+ (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](https://docs.aws.amazon.com/bedrock/latest/userguide/encryption-custom-job.html).

## Cree su trabajo de RFT
<a name="rft-submit-job-how-to"></a>

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. Abre la consola Amazon Bedrock y navega hasta **Modelos personalizados** en **Tune**.

1. Seleccione **Crear** y, a continuación, **Crear trabajo de ajuste fino de refuerzos**.

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

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

1. En la sección **Datos de entrenamiento**, elige tu fuente de datos. Seleccione uno de los registros de invocación disponibles almacenados en Amazon S3, seleccione la ubicación en Amazon S3 de su archivo de conjunto de datos de entrenamiento o cargue un archivo directamente desde su 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.

1. 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 para los modelos Amazon Nova](reward-functions.md).

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

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

1. En la sección de **configuración del rol**, elija un rol existente de la lista desplegable o introduzca un nombre para el rol de servicio que desee crear.

1. (Opcional) En la sección **Configuración adicional**, configure los datos de validación apuntando a un bucket de Amazon S3, a la configuración de cifrado de KMS y a las etiquetas de trabajo y modelo.

1. Seleccione **Crear trabajo de ajuste de refuerzos para comenzar el trabajo**.

------
#### [ API ]

Envíe una CreateModelCustomizationJob solicitud con la opción `customizationType` establecida en. `REINFORCEMENT_FINE_TUNING`

**Campos obligatorios:** `roleArn``baseModelIdentifier`,`customModelName`,`jobName`,`trainingDataConfig`,`outputDataConfig`, `rftConfig`

**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 muestra de la 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']
```

------

## Supervise su trabajo de formación en RFT
<a name="rft-monitor-job"></a>

Amazon Bedrock proporciona supervisión en tiempo real con gráficos y métricas visuales durante el entrenamiento de RFT. Estas métricas le ayudan a comprender si el modelo converge correctamente y si la función de recompensa guía eficazmente el proceso de aprendizaje.

### Seguimiento del estado del trabajo
<a name="rft-job-status"></a>

Puede supervisar el estado de su trabajo de RFT a través de las fases de validación y formación en la consola de Amazon Bedrock.

**Indicadores de finalización:**
+ El estado del trabajo cambia a **Completado** cuando la formación se completa correctamente
+ El ARN del modelo personalizado pasa a estar disponible para su implementación
+ Las métricas de entrenamiento alcanzan los umbrales de convergencia

### Métricas de entrenamiento en tiempo real
<a name="rft-real-time-metrics"></a>

Amazon Bedrock proporciona supervisión en tiempo real durante el entrenamiento de RFT con gráficos visuales que muestran las métricas de entrenamiento y validación.

#### Métricas principales de entrenamiento
<a name="rft-core-metrics"></a>
+ **Pérdida de entrenamiento**: mide qué tan bien aprende el modelo a partir de los datos de entrenamiento
+ **Estadísticas de recompensas por entrenamiento**: muestran las puntuaciones de recompensa asignadas por tus funciones de recompensa
+ **Margen de recompensa**: mide la diferencia entre las recompensas por respuestas buenas y malas
+ **Precisión en los conjuntos de entrenamiento y validación**: muestra el rendimiento del modelo tanto en los datos de entrenamiento como en los datos retenidos

**Categorías métricas detalladas**
+ **Métricas de recompensas**: `critic/rewards/mean``critic/rewards/max`, `critic/rewards/min` (distribución de recompensas) y `val-score/rewards/mean@1` (recompensas de validación)
+ **Comportamiento del modelo**: `actor/entropy` (variación de política; cuanto más alto es igual a más exploratorio)
+ **Salud formativa**: `actor/pg_loss` (pérdida del gradiente de las políticas), `actor/pg_clipfrac` (frecuencia de las actualizaciones recortadas) y `actor/grad_norm` (magnitud del gradiente)
+ **Características de respuesta**:`prompt_length/mean`,`prompt_length/max`, `prompt_length/min` (estadísticas del token de entrada), `response_length/mean``response_length/max`, `response_length/min` (estadísticas del token de salida) y `response/aborted_ratio` (tasa de generación incompleta; 0 es igual a todo completado)
+ **Rendimiento**: `perf/throughput` (rendimiento del entrenamiento), `perf/time_per_step` (tiempo por paso de entrenamiento) y `timing_per_token_ms/*` (tiempos de procesamiento por token)
+ **Uso de recursos**:`perf/max_memory_allocated_gb`, `perf/max_memory_reserved_gb` (memoria de GPU) y `perf/cpu_memory_used_gb` (memoria de CPU)

#### Visualización del progreso del entrenamiento
<a name="rft-progress-visualization"></a>

La consola muestra gráficos interactivos que se actualizan en tiempo real a medida que avanza tu trabajo de RFT. Estas visualizaciones pueden ayudarle a:
+ Realice un seguimiento de la convergencia hacia un rendimiento óptimo
+ Identifique pronto los posibles problemas de formación
+ Determine los puntos de parada óptimos
+ Compare el rendimiento en diferentes épocas

## Configure la inferencia
<a name="rft-setup-inference"></a>

Una vez finalizado el trabajo, implemente el modelo RFT para realizar inferencias bajo demanda o utilice el rendimiento aprovisionado para obtener un rendimiento uniforme. Para configurar la inferencia, consulte. [Configuración de la inferencia para un modelo personalizado](model-customization-use.md)

Utilice **Test in Playground** para evaluar y comparar las respuestas con el modelo base. Para evaluar el modelo de RFT completo, consulte[Evalúe su modelo RFT](rft-evaluate-model.md).