

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Ottimizza i modelli Amazon Nova con la messa a punto dei rinforzi
<a name="rft-nova-models"></a>

Prima della messa a punto, assicurati di disporre dei prerequisiti, poiché Amazon Bedrock necessita di autorizzazioni specifiche per creare e gestire il processo di messa a punto. Per informazioni complete su [Accesso e sicurezza per i modelli Amazon Nova](rft-access-security.md) sicurezza e autorizzazioni, consulta.

Esegui la messa a punto del rinforzo per i modelli Amazon Nova in 5 passaggi:

1. **Fornisci un set di dati di addestramento**: carica i prompt nel formato richiesto (ad esempio, JSONL) come set di dati di addestramento per la messa a punto del rinforzo. Per ulteriori informazioni, consulta [Preparare i dati per i modelli Amazon Nova](rft-prepare-data.md).

1. **Configura la funzione Reward (grader)**: definisci un classificatore per assegnare un punteggio alle risposte del modello in base a correttezza, struttura, tono o altri obiettivi. La funzione di ricompensa può essere eseguita utilizzando Lambda per calcolare punteggi obiettivi. Puoi anche scegliere un modello come giudice (tramite console) e valutare le risposte in base a criteri e principi configurati (la console li converte automaticamente in funzioni Lambda). Per ulteriori informazioni, consulta [Configurazione delle funzioni di ricompensa per i modelli Amazon Nova](reward-functions.md).

1. **Invia un lavoro di ottimizzazione del rinforzo**: avvia il processo di ottimizzazione del rinforzo specificando il modello di base, il set di dati, la funzione di ricompensa e altre impostazioni opzionali come gli iperparametri. Per ulteriori informazioni, consulta [Crea e gestisci lavori di ottimizzazione per i modelli Amazon Nova](rft-submit-job.md).

1. **Monitora la formazione: monitora lo** stato del lavoro, le metriche dei premi e i progressi della formazione fino al completamento. Per ulteriori informazioni, consulta [Monitora il tuo lavoro di formazione su RFT](rft-submit-job.md#rft-monitor-job).

1. **Usa il modello Fine-Tuned**: dopo il completamento del lavoro, implementa il modello RFT risultante con un clic per l'inferenza su richiesta. Puoi anche utilizzare Provisioned Throughput per carichi di lavoro mission critical che richiedono prestazioni costanti. Per informazioni, consulta [Impostazione dell’inferenza per un modello personalizzato](model-customization-use.md). Usa **Test in Playground per** valutare e confrontare le risposte con il modello base.

**Importante**  
Puoi fornire un massimo di 20.000 richieste ad Amazon Bedrock per la messa a punto del rinforzo del modello.

## Modelli Nova supportati
<a name="rft-nova-supported-models"></a>

La tabella seguente mostra i modelli Amazon Nova che puoi personalizzare con la regolazione fine del rinforzo:

**Nota**  
Per informazioni sugli altri modelli supportati, inclusi i modelli a peso aperto, consulta. [Ottimizza i modelli a peso aperto utilizzando -compatible OpenAI APIs](fine-tuning-openai-apis.md)


**Modelli supportati per la messa a punto dei rinforzi**  

| Provider | Modello | ID modello | Supporto per modelli a regione singola | 
| --- | --- | --- | --- | 
| Amazon | Nova 2 Lite | amazon.nova-2-lite-v1:0:256k | us-east-1 | 

# Accesso e sicurezza per i modelli Amazon Nova
<a name="rft-access-security"></a>

Prima di iniziare la messa a punto del rinforzo, assicurati di aver compreso il tipo di accesso di cui Amazon Bedrock ha bisogno per operazioni specifiche di RFT. RFT richiede autorizzazioni aggiuntive oltre alla regolazione di precisione standard grazie alle sue funzionalità di esecuzione della funzione di ricompensa.

Per la configurazione di sicurezza della personalizzazione del modello di base, tra cui relazioni di fiducia, autorizzazioni Amazon S3 e crittografia KMS, consulta. [Creare un ruolo di servizio IAM per la personalizzazione del modello](custom-model-job-access-security.md#custom-model-job-service-role)

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

Prima di aggiungere autorizzazioni IAM specifiche per RFT, devi aggiungere i seguenti ruoli di servizio IAM:
+ [Relazione di attendibilità](custom-model-job-access-security.md#custom-model-job-service-role-trust-relationship)
+ [Autorizzazioni per accedere ai file di addestramento e convalida e scrivere i file di output in S3](custom-model-job-access-security.md#custom-model-job-service-role-s3-permissions)

## Autorizzazioni IAM specifiche per RFT
<a name="rft-iam-permissions"></a>

Aggiungi queste autorizzazioni al tuo ruolo esistente nel servizio di personalizzazione dei modelli per la funzionalità RFT.

### Autorizzazioni Lambda per le funzioni di ricompensa
<a name="rft-lambda-permissions"></a>

È necessario aggiungere le autorizzazioni di chiamata Lambda. Di seguito viene illustrato un esempio di policy che è possibile utilizzare:

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

### Accesso al registro delle chiamate
<a name="rft-api-log-permissions"></a>

Per utilizzare i log di invocazione del modello Amazon Bedrock esistenti come dati di addestramento, aggiungi le autorizzazioni per accedere al tuo bucket Amazon S3 in cui sono archiviati i log di chiamata. 

È necessario fornire le autorizzazioni di accesso al bucket Amazon S3 per il bucket di input. Di seguito viene illustrato un esempio di policy che puoi utilizzare:

```
{
    "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/*"
            ]
        }
    ]
}
```

Per la configurazione della sicurezza, inclusi i ruoli IAM di base, le autorizzazioni Amazon S3 e la crittografia, consulta. [Creare un ruolo di servizio IAM per la personalizzazione del modello](custom-model-job-access-security.md#custom-model-job-service-role)

## Autorizzazioni della funzione Grader Lambda per RLAIF
<a name="rft-grader-lambda-permissions"></a>

Se crei la tua funzione Lambda per le funzioni di ricompensa Reinforcement Learning from AI Feedback (RLAIF), devi aggiungere autorizzazioni specifiche al ruolo di esecuzione Lambda.

### Autorizzazioni base per i giudici LLM
<a name="rft-bedrock-permissions"></a>

Per le funzioni di LLM-as-Judge ricompensa (RLAIF), aggiungi le autorizzazioni per richiamare i modelli di base. Di seguito viene illustrato un esempio di policy che è possibile utilizzare per il ruolo di esecuzione Lambda.

**Nota**  
Aggiungi queste autorizzazioni al tuo ruolo di esecuzione Lambda solo se crei la tua funzione Lambda. La console lo gestisce automaticamente durante la creazione di funzioni Lambda tramite la console.

Di seguito è riportato un esempio di Bedrock LLM come invocazione di arbitri utilizzando modelli di base:

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

Quello che segue è un esempio di bedrock LLM come invocazione del giudice utilizzando il profilo di inferenza:

```
{
    "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"
            ]
        }
    ]
}
```

[Per informazioni sui prerequisiti del profilo di inferenza, vedere Prerequisiti per i profili di inferenza.](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-prereq.html)

# Preparare i dati per i modelli Amazon Nova
<a name="rft-prepare-data"></a>

Quando ottimizzi un modello Amazon Nova con la messa a punto del rinforzo, puoi inserire le tue istruzioni o utilizzare i log di chiamata dell'API Amazon Bedrock esistenti come dati di addestramento.

## Requisiti e fonti dei dati di formazione
<a name="rft-data-source-options"></a>

È possibile fornire dati di formazione tramite una delle seguenti opzioni:

**Nota**  
Supportiamo solo il formato di completamento della chat OpenAI.

### Opzione 1: fornisci le tue istruzioni
<a name="w2aac15c25c17c15b5b7b1"></a>

Raccogli i prompt e archiviali in un file in formato `.jsonl`. Puoi caricare set di dati personalizzati in formato JSONL o selezionare set di dati esistenti da Amazon S3. Ogni record in JSONL deve utilizzare il formato di completamento della chat OpenAI nella seguente struttura:
+ `messages`: In questo campo, includi il ruolo utente, di sistema o di assistente contenente il prompt di input fornito al modello.
+ `reference_answer`: In questo campo, deve contenere l'output previsto o i criteri di valutazione utilizzati dalla funzione di ricompensa per assegnare un punteggio alla risposta del modello. Non si limita agli output strutturati, ma può contenere qualsiasi formato che aiuti la funzione di ricompensa a valutare la qualità.
+ [Facoltativo] È possibile aggiungere campi utilizzati da grader Lambda per la valutazione.

**Requisiti:**
+ Formato JSONL con istruzioni nel formato di completamento della chat OpenAI (un prompt per riga)
+ Un minimo di 100 record nel set di dati di addestramento
+ Amazon Bedrock convalida automaticamente il formato del set di dati di addestramento

------
#### [ 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"]
  }
}
```

------

### Opzione 2: utilizza i registri di chiamata
<a name="w2aac15c25c17c15b5b7b3"></a>

Quando crei un processo di ottimizzazione del rinforzo, puoi fare in modo che Amazon Bedrock utilizzi i log di invocazione esistenti dal tuo bucket S3 come dati di addestramento. Per Amazon Bedrock, un log delle invocazioni è un registro dettagliato delle invocazioni del modello.

Puoi utilizzare i log di invocazione delle Invoke/Converse API archiviati sul lato cliente da Amazon S3 per la formazione.

**Requisiti:**
+ La registrazione delle API deve essere abilitata per l'utilizzo di Amazon Bedrock
+ I log devono essere in un formato supportato (Amazon Bedrock API Invoke/Converse )
+ Un minimo di 100 esempi di prompt

Per utilizzare i log di invocazione per l'ottimizzazione del rinforzo, imposta la registrazione delle chiamate del modello, utilizza una delle operazioni di invocazione del modello e assicurati di aver impostato un bucket Amazon S3 come destinazione per i log. Per ulteriori informazioni sulla configurazione dei log delle chiamate, consulta [Monitorare l'invocazione del modello utilizzando Logs CloudWatch e Amazon S3](https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html).

Prima di iniziare il processo di ottimizzazione del rinforzo con i log di chiamata da un bucket S3 come input, devi fornire le autorizzazioni di Amazon Bedrock per accedere ai log da un bucket S3. Per ulteriori informazioni, consulta [Accesso e sicurezza per la personalizzazione del modello](custom-model-job-access-security.md).

Facoltativamente, è possibile aggiungere i metadati delle richieste alle coppie di prompt-risposta nel log delle invocazioni utilizzando una delle operazioni di invocazione del modello e utilizzarli in seguito per filtrare i log. Amazon Bedrock può utilizzare i log filtrati per ottimizzare il modello.

#### Aggiungi i metadati delle richieste ai prompt e alle risposte nei log delle chiamate
<a name="rft-request-metadata"></a>

Con i log di invocazione, puoi identificare i prompt dei set di dati di addestramento che desideri che Amazon Bedrock utilizzi per la messa a punto del rinforzo utilizzando i metadati di richiesta allegati ai log di chiamata. 

Di seguito è riportato un esempio di registro delle chiamate da una chiamata 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"
    }
}
```

È possibile specificare il registro delle chiamate come fonte di dati di input quando si avvia un processo di ottimizzazione del rinforzo. Puoi avviare un lavoro di ottimizzazione del rinforzo tramite la console Amazon Bedrock, utilizzando l'API o l'SDK. AWS CLI

##### Requisiti per fornire i metadati delle richieste
<a name="rft-metadata-requirements"></a>

I metadati delle richieste devono soddisfare i seguenti requisiti:
+ Devono essere nel formato `key:value` di JSON.
+ La coppia chiave-valore deve essere una stringa al massimo di 256 caratteri.
+ Devono fornire al massimo 16 coppie chiave-valore.

##### Utilizzo di filtri per metadati delle richieste
<a name="rft-metadata-filters"></a>

Una volta disponibili i log di chiamata con i metadati delle richieste, puoi applicare filtri basati sui metadati della richiesta per scegliere selettivamente quali prompt includere per la messa a punto del modello. Ad esempio, potreste voler includere solo quelli che contengono e richiedono i metadati. `"project": "CustomerService"` `"priority": "High"`

Per filtrare i log utilizzando più metadati di richiesta, utilizzate un singolo operatore booleano o. `AND` `OR` Non è possibile combinare questi operatori. Per il filtraggio dei metadati a richiesta singola, utilizzate l'operatore `Equals` or`Not Equals`.

## Caratteristiche dei dati di addestramento efficaci
<a name="rft-data-characteristics"></a>

Dati di addestramento RFT efficaci richiedono tre caratteristiche chiave:
+ **Chiarezza e coerenza**: utilizza istruzioni chiare e inequivocabili con una formattazione coerente. Evita etichette contraddittorie, istruzioni ambigue o risposte di riferimento contrastanti che fuorviano la formazione.
+ **Diversità**: includi diversi formati di input, casi limite e livelli di difficoltà che riflettono i modelli di utilizzo della produzione in diversi tipi di utenti e scenari.
+ **Funzioni di ricompensa efficienti**: progetta funzioni che vengano eseguite rapidamente (secondi, non minuti), parallelizzino e restituiscano AWS Lambda punteggi costanti per una formazione conveniente.

## Proprietà aggiuntive
<a name="rft-additional-properties"></a>

Il formato di dati RFT supporta campi personalizzati oltre ai requisiti di base dello schema (e). `messages` `reference_answer` Questa flessibilità consente di aggiungere tutti i dati aggiuntivi necessari alla funzione di ricompensa per una corretta valutazione.

**Nota**  
Non è necessario configurarlo nella ricetta. Il formato dei dati supporta intrinsecamente campi aggiuntivi. Basta includerli nei dati di allenamento JSON e verranno passati alla funzione di ricompensa sul campo. `metadata`

**Proprietà aggiuntive comuni**
+ `task_id`— Identificatore univoco per il tracciamento
+ `difficulty_level`— Indicatore di complessità del problema
+ `domain`— Area o categoria tematica
+ `expected_reasoning_steps`— Numero di passaggi della soluzione

Questi campi aggiuntivi vengono trasferiti alla funzione di ricompensa durante la valutazione, abilitando una sofisticata logica di punteggio personalizzata in base al caso d'uso specifico.

**Esempi con proprietà aggiuntive**

------
#### [ 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
  }
}
```

Il `reference_answer` campo contiene l'output previsto o i criteri di valutazione utilizzati dalla funzione di ricompensa per assegnare un punteggio alla risposta del modello. Non si limita agli output strutturati, ma può contenere qualsiasi formato che aiuti la funzione di ricompensa a valutare la qualità.

------
#### [ 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
}
```

------

# Configurazione delle funzioni di ricompensa per i modelli Amazon Nova
<a name="reward-functions"></a>

Le funzioni di ricompensa valutano la qualità della risposta e forniscono segnali di feedback per l'addestramento dei modelli. Puoi configurare funzioni di ricompensa utilizzando funzioni Lambda personalizzate o modelli di base ospitati da Amazon Bedrock come giudici. Sono disponibili modelli guidati per semplificare la creazione di funzioni di ricompensa per attività comuni come seguire le istruzioni e convalidare il formato. Scegliete l'approccio più adatto ai requisiti delle vostre attività.

## Apprendimento per rinforzo tramite Verifiable Rewards (RLVR)
<a name="rft-rlvr"></a>

RLVR ottimizza i modelli per attività oggettive come la generazione di codice o il ragionamento matematico utilizzando classificatori o modelli verificabili basati su regole. ready-to-use

Sono disponibili due opzioni per RLVR (codice personalizzato):

### Opzione 1: utilizza i modelli forniti dalla console
<a name="w2aac15c25c17c17b5b7b1"></a>

La console Amazon Bedrock fornisce modelli di esempio per le funzioni Grader Lambda:
+ Ragionamento matematico con verifica della verità fondamentale
+ Convalida del formato e controllo dei vincoli
+ Modello Lambda di livellatrice generico con codice standard

Segui le istruzioni nel modello fornito nella pagina **Crea lavoro RFT** nella console [Amazon Bedrock](https://console.aws.amazon.com/bedrock).

### Opzione 2: porta la tua funzione Lambda
<a name="w2aac15c25c17c17b5b7b3"></a>

Crea funzioni di ricompensa personalizzate utilizzando il tuo Lambda ARN per logiche complesse, calcoli esterni in più fasi o APIs combinando più criteri di valutazione.

**Nota**  
Se utilizzi la tua funzione Lambda, tieni presente quanto segue:  
Aumenta il timeout Lambda dal valore predefinito di 3 secondi a un massimo di 15 minuti per valutazioni complesse.
Il ruolo di esecuzione Lambda necessita delle autorizzazioni per richiamare i modelli come descritto in. [Accesso e sicurezza per i modelli Amazon Nova](rft-access-security.md)

## Apprendimento per rinforzo tramite AI Feedback (RLAIF)
<a name="rft-rlaif"></a>

RLAIF ottimizza i modelli per attività soggettive come seguire le istruzioni o interagire con i chatbot utilizzando giudici basati sull'intelligenza artificiale con modelli. ready-to-use

**Per RLAIF (Model as Judge):**
+ Seleziona un modello base ospitato su Amazon Bedrock come giudice
+ Configura le istruzioni per la valutazione
+ Definisci i criteri di valutazione e le linee guida per il punteggio

Modelli di LLM-as-Judge prompt disponibili nella console Amazon Bedrock:
+ Seguono le istruzioni (formazione modello Judge)
+ Riepilogo (dialoghi a più turni)
+ Valutazione del ragionamento (CoT per domini specializzati)
+ Fedeltà RAG (domande e risposte basate sul contesto)

**Nota**  
L'opzione **Model as Judge** della console converte automaticamente la configurazione in una funzione Lambda durante l'allenamento.

## Dettagli sull'implementazione della funzione Lambda
<a name="rft-lambda-implementation"></a>

Quando si implementano funzioni di ricompensa Lambda personalizzate, la funzione deve accettare e restituire dati nel seguente 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"
    }
  ]
}]
```

------

**Linee guida di progettazione**
+ **Classizza le risposte**: assegna alla risposta migliore un punteggio chiaramente più alto
+ **Utilizza controlli coerenti**: valuta il completamento delle attività, la conformità al formato, la sicurezza e la durata ragionevole
+ **Mantieni una scalabilità stabile: mantieni i** punteggi normalizzati e non sfruttabili

# Crea e gestisci lavori di ottimizzazione per i modelli Amazon Nova
<a name="rft-submit-job"></a>

Puoi creare un job RFT (Reinforcement Fine-Tuning) utilizzando la console o l'API Amazon Bedrock. Il processo RFT può richiedere alcune ore a seconda delle dimensioni dei dati di allenamento, del numero di epoche e della complessità delle funzioni di ricompensa.

## Prerequisiti
<a name="rft-prerequisites"></a>
+ Crea un ruolo di servizio IAM con le autorizzazioni richieste. Per informazioni complete sulla sicurezza e sulle autorizzazioni, comprese le autorizzazioni specifiche per RFT, consulta. [Accesso e sicurezza per i modelli Amazon Nova](rft-access-security.md)
+ (Facoltativo) Crittografa i dati di input e output, il job RFT o le richieste di inferenza effettuate su modelli personalizzati. Per ulteriori informazioni, consulta [Crittografia dei modelli personalizzati.](https://docs.aws.amazon.com/bedrock/latest/userguide/encryption-custom-job.html)

## Crea il tuo lavoro RFT
<a name="rft-submit-job-how-to"></a>

Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:

------
#### [ Console ]

Per inviare un lavoro RFT nella console, procedi nel seguente modo:

1. Apri la console Amazon Bedrock e vai a **Modelli personalizzati** in **Tune**.

1. Scegli **Crea, quindi Crea un** **lavoro di messa a punto delle armature**.

1. Nella sezione **Dettagli del modello**, scegli **Amazon Nova 2 Lite** come modello base.

1. Nella sezione **Dettagli di personalizzazione**, inserisci il nome della personalizzazione.

1. Nella sezione **Dati di allenamento**, scegli la tua fonte di dati. Seleziona tra i log delle chiamate disponibili archiviati in Amazon S3, seleziona la posizione Amazon S3 del file del set di dati di addestramento o carica un file direttamente dal tuo dispositivo.
**Nota**  
Il tuo set di dati di allenamento dovrebbe essere nel formato dati OpenAI Chat Completions. Se fornisci i log delle chiamate nel formato Amazon Bedrock invoke o converse, Amazon Bedrock li converte automaticamente nel formato Chat Completions.

1. Nella sezione Funzione Reward, configura il tuo meccanismo di **ricompensa**:
   + **Model as judice (RLAIF)**: seleziona un modello base ospitato da Bedrock come giudice e configura le istruzioni per la valutazione. Utilizzalo per attività soggettive come la moderazione dei contenuti.
**Nota**  
L'opzione **Model as judge** della console converte automaticamente la configurazione in una funzione Lambda durante l'allenamento.
   + **Codice personalizzato (RLVR)**: crea funzioni di ricompensa personalizzate utilizzando il codice Python eseguito tramite le funzioni Lambda. Usalo per attività oggettive come la generazione di codice.

   Per ulteriori informazioni, consulta [Configurazione delle funzioni di ricompensa per i modelli Amazon Nova](reward-functions.md).

1. (Facoltativo) Nella sezione **Iperparametri**, regolate i parametri di allenamento o utilizzate i valori predefiniti.

1. Nella sezione **Dati di output**, inserisci la posizione Amazon S3 in cui Amazon Bedrock deve salvare gli output del lavoro.

1. Nella sezione **Configurazione del ruolo**, scegli un ruolo esistente dall'elenco a discesa o inserisci un nome per il ruolo di servizio da creare.

1. (Facoltativo) Nella sezione **Configurazione aggiuntiva**, configura i dati di convalida facendo riferimento a un bucket Amazon S3, alle impostazioni di crittografia KMS e ai tag di processo e modello.

1. Scegli **Create reinforcement fine-tuning** job per iniziare il lavoro.

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

Invia una CreateModelCustomizationJob richiesta con set to. `customizationType` `REINFORCEMENT_FINE_TUNING`

**Campi obbligatori:** `roleArn``baseModelIdentifier`,`customModelName`,`jobName`,`trainingDataConfig`,`outputDataConfig`, `rftConfig`

**Richiesta di esempio:**

```
{
    "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/"
    }
}
```

**Richiesta di esempio di API 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']
```

------

## Monitora il tuo lavoro di formazione su RFT
<a name="rft-monitor-job"></a>

Amazon Bedrock fornisce monitoraggio in tempo reale con grafici e metriche visive durante la formazione RFT. Queste metriche ti aiutano a capire se il modello converge correttamente e se la funzione di ricompensa guida efficacemente il processo di apprendimento.

### Monitoraggio dello stato del lavoro
<a name="rft-job-status"></a>

Puoi monitorare lo stato del tuo lavoro RFT attraverso le fasi di convalida e formazione nella console Amazon Bedrock.

**Indicatori di completamento:**
+ Lo stato del Job passa a **Completato** quando la formazione viene completata con successo
+ Il modello ARN personalizzato diventa disponibile per l'implementazione
+ Le metriche di formazione raggiungono le soglie di convergenza

### Metriche di formazione in tempo reale
<a name="rft-real-time-metrics"></a>

Amazon Bedrock fornisce il monitoraggio in tempo reale durante l'addestramento RFT con grafici visivi che mostrano i parametri di formazione e convalida.

#### Metriche di formazione di base
<a name="rft-core-metrics"></a>
+ **Perdita di formazione**: misura l'efficacia dell'apprendimento del modello dai dati di addestramento
+ **Statistiche sui premi di allenamento**: mostra i punteggi di ricompensa assegnati dalle tue funzioni di ricompensa
+ **Margine di ricompensa**: misura la differenza tra premi di risposta positivi e negativi
+ **Precisione dei set di addestramento e convalida**: mostra le prestazioni del modello sia sui dati di addestramento che su quelli forniti

**Categorie metriche dettagliate**
+ **Metriche dei premi**: `critic/rewards/mean``critic/rewards/max`, `critic/rewards/min` (distribuzione dei premi) e `val-score/rewards/mean@1` (premi di convalida)
+ **Comportamento modello**: `actor/entropy` (variazione delle politiche; più alto equivale a più esplorativo)
+ **Integrità della formazione**: `actor/pg_loss` (perdita del gradiente delle policy), `actor/pg_clipfrac` (frequenza degli aggiornamenti interrotti) e (entità del gradiente) `actor/grad_norm`
+ **Caratteristiche di risposta**:`prompt_length/mean`,`prompt_length/max`, `prompt_length/min` (statistiche sui token di input), `response_length/mean``response_length/max`, (statistiche sui token di output) e `response_length/min` `response/aborted_ratio` (frequenza di generazione incompleta; 0 equivale a tutti i dati completati)
+ **Prestazioni**: `perf/throughput` (velocità di formazione), `perf/time_per_step` (tempo per fase di addestramento) e `timing_per_token_ms/*` (tempi di elaborazione per token)
+ **Utilizzo delle risorse**: `perf/max_memory_allocated_gb` `perf/max_memory_reserved_gb` (memoria GPU) e `perf/cpu_memory_used_gb` (memoria CPU)

#### Visualizzazione dei progressi dell'allenamento
<a name="rft-progress-visualization"></a>

La console mostra grafici interattivi che si aggiornano in tempo reale man mano che il lavoro RFT procede. Queste visualizzazioni possono aiutarti a:
+ Monitora la convergenza verso prestazioni ottimali
+ Identifica tempestivamente potenziali problemi di formazione
+ Determina i punti di sosta ottimali
+ Confronta le prestazioni in epoche diverse

## Imposta l'inferenza
<a name="rft-setup-inference"></a>

Dopo il completamento del lavoro, implementa il modello RFT per l'inferenza su richiesta o utilizza Provisioned Throughput per prestazioni coerenti. Per impostare l'inferenza, vedere. [Impostazione dell’inferenza per un modello personalizzato](model-customization-use.md)

Usa **Test in Playground** per valutare e confrontare le risposte con il modello base. Per valutare il modello RFT completato, consulta. [Valuta il tuo modello RFT](rft-evaluate-model.md)