

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à.

# Personalizza un modello con la messa a punto del rinforzo in Amazon Bedrock
<a name="reinforcement-fine-tuning"></a>

Il reinforcement fine-tuning è una tecnica di personalizzazione del modello in Amazon Bedrock che migliora le prestazioni del modello di base insegnando ai modelli ciò che costituisce una risposta «buona» attraverso segnali di feedback chiamati premi. A differenza dei metodi di perfezionamento tradizionali che dipendono da set di dati etichettati, il reinforcement fine-tuning utilizza un approccio basato sul feedback che ottimizza iterativamente il modello per massimizzare queste ricompense.

## Applicazioni e scenari per la messa a punto dei rinforzi
<a name="reinforcement-fine-tuning-when"></a>

Utilizzate la messa a punto del rinforzo quando potete definire criteri di successo chiari e misurabili per valutare la qualità della risposta. La regolazione precisa del rinforzo eccelle nei settori in cui la qualità dell'output può essere misurata in modo obiettivo, specialmente quando esistono più risposte valide o quando è difficile definire in anticipo risposte ottimali. È ideale per:
+ Risoluzione di problemi matematici e generazione di codice (utilizzando classificatori basati su regole per una valutazione obiettiva)
+ Ragionamento scientifico e analisi strutturata dei dati
+ Attività soggettive come seguire le istruzioni, moderare i contenuti e scrivere in modo creativo (utilizzando giudici basati sull'intelligenza artificiale)
+ Attività che richiedono step-by-step ragionamento o risoluzione di problemi a più turni
+ Scenari con più soluzioni valide in cui alcune sono chiaramente migliori di altre
+ Applicazioni che bilanciano più obiettivi (precisione, efficienza, stile)
+ Applicazioni che richiedono miglioramento iterativo, personalizzazione o rispetto di regole aziendali complesse
+ Scenari in cui il successo può essere verificato a livello di codice tramite risultati di esecuzione o metriche prestazionali
+ Casi in cui la raccolta di esempi etichettati di alta qualità è costosa o poco pratica

## Vantaggi della messa a punto dei rinforzi
<a name="reinforcement-fine-tuning-benefits"></a>
+ **Prestazioni migliorate del modello**: la regolazione fine del rinforzo migliora la precisione del modello fino al 66% in media rispetto ai modelli base. Ciò consente l'ottimizzazione del prezzo e delle prestazioni perfezionando varianti di modello più piccole, veloci ed efficienti.
+ **Facilità d'uso**: Amazon Bedrock automatizza la complessità della messa a punto dei rinforzi, rendendola accessibile agli sviluppatori che creano applicazioni di intelligenza artificiale. Puoi ottimizzare i modelli utilizzando i set di dati caricati o i log di invocazione delle API esistenti. Puoi definire funzioni di ricompensa che valutano gli output del modello con codice personalizzato utilizzando Lambda model-as-a-judge o grader, con modelli integrati che facilitano la configurazione rapida.
+ **Sicurezza e conformità**: i dati proprietari non escono mai dall'ambiente sicuro e regolamentato AWS di cui dispone durante il processo di personalizzazione.

## Modelli supportati per la messa a punto dei rinforzi
<a name="rft-supported-models"></a>

La tabella seguente mostra i modelli di fondazione che è possibile personalizzare con la regolazione fine del rinforzo:


**Modelli supportati per la messa a punto delle armature**  

| Provider | Modello | ID modello | Nome Regione | Regione | 
| --- | --- | --- | --- | --- | 
| Amazon | Nova 2 Lite | amazon.nova-2-lite-v1:0:256k |  Stati Uniti orientali (Virginia settentrionale)  |  us-east-1  | 
| OpenAI | GPT-OSS-20b | apri i.gpt-oss-20b | Stati Uniti occidentali (Oregon) | us-west-2 | 
| Qwen | Qwen3 32 GB | qwen.qwen3-32b | Stati Uniti occidentali (Oregon) | us-west-2 | 

## Come funziona la messa a punto dei rinforzi
<a name="rft-how-it-works"></a>

Amazon Bedrock automatizza completamente il flusso di lavoro di ottimizzazione dei rinforzi. Il modello riceve istruzioni dal set di dati di addestramento e genera diverse risposte per richiesta. Queste risposte vengono quindi valutate da una funzione di ricompensa. Amazon Bedrock utilizza le coppie di risposta rapida con punteggi per addestrare il modello attraverso l'apprendimento basato su policy utilizzando Group Relative Policy Optimization (GRPO). Il ciclo di formazione continua fino alla fine dei dati di addestramento o fino a quando non interrompi il lavoro in un punto di controllo prescelto, producendo un modello ottimizzato per la metrica che ti interessa.

## Migliori pratiche di ottimizzazione dei rinforzi
<a name="rft-best-practices"></a>
+ **Inizia in piccolo**: inizia con 100-200 esempi, convalida la correttezza della funzione di ricompensa e scala gradualmente in base ai risultati
+ **Valutazione preliminare alla messa a punto: verifica le prestazioni del modello di base prima della messa** a punto del rinforzo. Se i premi sono costantemente pari allo 0%, utilizza innanzitutto la messa a punto supervisionata per stabilire le funzionalità di base. Se le ricompense sono superiori al 95 percento, la messa a punto dei rinforzi potrebbe non essere necessaria
+ Monitora la **formazione: monitora** i punteggi medi e la distribuzione dei premi. Fai attenzione all'overfitting (i premi di formazione aumentano mentre i premi di convalida diminuiscono). Fate attenzione a modelli preoccupanti, ad esempio che i premi si stabilizzano al di sotto di 0,15, l'aumento della varianza delle ricompense nel tempo e il calo delle prestazioni di convalida
+ **Ottimizzazione delle funzioni di ricompensa**: esegui in pochi secondi (non minuti), riduci al minimo le chiamate API esterne, utilizza algoritmi efficienti, implementa la corretta gestione degli errori e sfrutta la scalabilità parallela di Lambda
+ **Strategia di iterazione**: se i premi non migliorano, modifica la progettazione della funzione di ricompensa, aumenta la diversità dei set di dati, aggiungi altri esempi rappresentativi e verifica che i segnali di ricompensa siano chiari e coerenti

**Topics**
+ [Applicazioni e scenari per la messa a punto dei rinforzi](#reinforcement-fine-tuning-when)
+ [Vantaggi della messa a punto dei rinforzi](#reinforcement-fine-tuning-benefits)
+ [Modelli supportati per la messa a punto dei rinforzi](#rft-supported-models)
+ [Come funziona la messa a punto dei rinforzi](#rft-how-it-works)
+ [Migliori pratiche di ottimizzazione dei rinforzi](#rft-best-practices)
+ [Ottimizza i modelli Amazon Nova con la messa a punto dei rinforzi](rft-nova-models.md)
+ [Ottimizza i modelli a peso aperto utilizzando -compatible OpenAI APIs](fine-tuning-openai-apis.md)
+ [Valuta il tuo modello RFT](rft-evaluate-model.md)

# 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)

# Ottimizza i modelli a peso aperto utilizzando -compatible OpenAI APIs
<a name="fine-tuning-openai-apis"></a>

Amazon Bedrock fornisce endpoint API OpenAI compatibili per la messa a punto dei modelli di base. Questi endpoint consentono di utilizzare strumenti familiari per creare, monitorare OpenAI SDKs e gestire lavori di ottimizzazione con i modelli Amazon Bedrock. Questa pagina illustra come utilizzarli per la messa a punto dei rinforzi. APIs 

## Funzionalità chiave
<a name="fine-tuning-openai-key-capabilities"></a>
+ **Carica file di formazione**: utilizza l'API Files per caricare e gestire i dati di formazione per perfezionare i lavori
+ **Crea lavori di ottimizzazione: inizia a perfezionare i lavori** con dati di formazione personalizzati e funzioni di ricompensa
+ **Elenca e recupera i lavori: visualizza tutti i lavori di** messa a punto e ottieni informazioni dettagliate su lavori specifici
+ Monitora **gli eventi lavorativi: monitora** i progressi di ottimizzazione tramite registri degli eventi dettagliati
+ **Accedi ai checkpoint: recupera i checkpoint del modello intermedio** creati durante la formazione
+ **Inferenza immediata**: una volta completata la messa a punto, utilizza il modello ottimizzato risultante per l'inferenza su richiesta tramite la compatibilità con OpenAI di Amazon Bedrock (API di completamento delle risposte e delle chat) senza passaggi di distribuzione aggiuntivi APIs 
+ **Migrazione** sempliceOpenAI: compatibile con le basi di codice SDK esistenti

## Workflow di rinforzo e ottimizzazione per modelli a peso aperto
<a name="fine-tuning-openai-workflow"></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 modelli a peso aperto](rft-open-weight-access-security.md) sicurezza e autorizzazioni, consulta.

Esegui la messa a punto del rinforzo per i modelli a peso aperto in 5 passaggi:

1. **Carica il set di dati di addestramento**: utilizza l'API Files per caricare i prompt nel formato richiesto (ad esempio, JSONL) con lo scopo di «perfezionare» il set di dati di addestramento per il perfezionamento dei rinforzi. Per ulteriori informazioni, consulta [Preparare i dati per modelli a peso aperto](rft-prepare-data-open-weight.md).

1. **Configura la funzione Reward**: definisci un classificatore per assegnare un punteggio alle risposte del modello in base a correttezza, struttura, tono o altri obiettivi utilizzando le funzioni Lambda. Per ulteriori informazioni, consulta [Configurazione delle funzioni di ricompensa per i modelli a peso aperto](reward-functions-open-weight.md).

1. **Crea un lavoro di fine-tuning**: avvia il processo di ottimizzazione del rinforzo utilizzando l'API compatibile specificando il modello di base, OpenAI il set di dati, la funzione di ricompensa e altre impostazioni opzionali come gli iperparametri. Per ulteriori informazioni, consulta [Crea un lavoro di messa a punto](fine-tuning-openai-job-create.md#fine-tuning-openai-create-job).

1. Monitora i **progressi della formazione: monitora** lo stato del lavoro, gli eventi e le metriche di formazione utilizzando i processi di ottimizzazione. APIs Per ulteriori informazioni, consulta [Elenca gli eventi di ottimizzazione](fine-tuning-openai-job-create.md#fine-tuning-openai-list-events). Accedi ai checkpoint dei modelli intermedi per valutare le prestazioni nelle diverse fasi della formazione, vedi. [Elenca i checkpoint di ottimizzazione](fine-tuning-openai-job-create.md#fine-tuning-openai-list-checkpoints)

1. **Esegui inferenza**: utilizza l'ID del modello ottimizzato direttamente per l'inferenza tramite le risposte o i completamenti delle chat compatibili con Amazon Bedrock. OpenAI APIs Per ulteriori informazioni, consulta [Esegui l'inferenza con un modello ottimizzato](fine-tuning-openai-job-create.md#fine-tuning-openai-inference).

## Regioni ed endpoint supportati
<a name="fine-tuning-openai-supported-regions"></a>

La tabella seguente mostra i modelli e le regioni di base che supportano la messa a punto OpenAI APIs compatibile:


**Regioni e modelli supportati per una messa a punto compatibile OpenAI APIs**  

| Provider | Modello | ID modello | Nome Regione | Regione | Endpoint | 
| --- | --- | --- | --- | --- | --- | 
| OpenAI | GPT-OSS-20b | apri i.gpt-oss-20b | Stati Uniti occidentali (Oregon) | us-west-2 | bedrock-mantle.us-west-2.api.aws | 
| Qwen | Qwen3 32 GB | qwen.qwen3-32b | Stati Uniti occidentali (Oregon) | us-west-2 | bedrock-mantle.us-west-2.api.aws | 

# Accesso e sicurezza per modelli a peso aperto
<a name="rft-open-weight-access-security"></a>

Prima di iniziare il reinforcement fine-tuning (RFT), assicurati di comprendere 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 capacità di esecuzione della funzione di ricompensa.

## Prerequisiti
<a name="fine-tuning-openai-prereq"></a>

Prima di utilizzare il fine-tuning OpenAI compatibile con Amazon Bedrock APIs, assicurati di disporre di quanto segue:

1. Un AWS account con le autorizzazioni appropriate per accedere ad Amazon Bedrock

1. **Autenticazione**: puoi autenticarti utilizzando:
   + Chiave API Amazon Bedrock (richiesta per OpenAI SDK e disponibile per le richieste HTTP)
   + AWS credenziali (supportate per le richieste HTTP)
**Nota**  
[Se utilizzi chiavi API di Amazon Bedrock a breve/lungo termine, assicurati che il tuo ruolo abbia accesso alle seguenti autorizzazioni delle policy IAM: e al ruolo. `AmazonBedrockMantleFullAccess` AWSLambda](https://docs.aws.amazon.com/bedrock/latest/ug/rft-open-weight-access-security#openai-fine-tuning-lambda-permissions)

1. **OpenAISDK (opzionale)**: installa l'SDK OpenAI Python se utilizzi richieste basate su SDK.

1. Variabili di **ambiente: imposta le seguenti variabili** di ambiente:
   + `OPENAI_API_KEY`— Imposta sulla tua chiave API Amazon Bedrock
   + `OPENAI_BASE_URL`— Impostato sull'endpoint Amazon Bedrock per la tua regione (ad esempio,) `https://bedrock-mantle.us-west-2.api.aws/v1`

   Per ulteriori informazioni, consulta [API di risposta](bedrock-mantle.md#bedrock-mantle-responses).

1. **Dati di addestramento** formattati come file JSONL con lo scopo. `fine-tune` Per ulteriori informazioni, consulta [Preparare i dati per modelli a peso aperto](rft-prepare-data-open-weight.md).

## Autorizzazioni Lambda per le funzioni di ricompensa
<a name="openai-fine-tuning-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"
            ]
        }
    ]
}
```

Puoi anche utilizzare i modelli ospitati da Amazon Bedrock come giudici per configurare funzioni di ricompensa. Dovrai aggiungere autorizzazioni specifiche per richiamare i modelli di base al ruolo di esecuzione Lambda. Nel tuo ruolo lambda, puoi configurare queste politiche gestite per il grading. LLMs Per informazioni, consulta [AmazonBedrockLimitedAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockLimitedAccess.html).

Di seguito è riportato un esempio di come richiamare i modelli di Amazon Bedrock Foundation come arbitri utilizzando l'API Invoke:

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

# Preparare i dati per modelli a peso aperto
<a name="rft-prepare-data-open-weight"></a>

Quando ottimizzi modelli a peso aperto con la regolazione di precisione dei rinforzi utilizzando la compatibilità con OpenAI APIs, fornisci dati di addestramento inserendo i tuoi prompt in formato JSONL allo scopo. `fine-tune`

## Formato e requisiti dei dati di formazione
<a name="rft-data-format-open-weight"></a>

I dati di formazione devono seguire il formato di completamento delle chat OpenAI con 100-20.000 esempi. Ogni esempio di formazione contiene:
+ `messages`: In questo campo, includi il ruolo dell'utente, del sistema o dell'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)
+ Lo scopo deve essere impostato su `fine-tune`
+ 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"]
  }
}
```

------

## API di file
<a name="fine-tuning-openai-files-api"></a>

Puoi utilizzare i file compatibili con OpenAI api per caricare i tuoi dati di allenamento per lavori di ottimizzazione. I file vengono archiviati in modo sicuro in Amazon Bedrock e vengono utilizzati per creare lavori di ottimizzazione. [Per informazioni complete sull'API, consulta la documentazione di Files. OpenAI](https://platform.openai.com/docs/api-reference/files)

### Carica il file di allenamento
<a name="fine-tuning-openai-upload-file"></a>

Per caricare un file di allenamento, scegli la scheda corrispondente al metodo che preferisci, quindi segui i passaggi:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Upload training file
with open(TRAINING_FILE_PATH, 'rb') as f:
    file_response = client.files.create(
        file=f,
        purpose='fine-tune'
    )

# Store file ID for next steps
training_file_id = file_response.id
print(f"✅ Training file uploaded successfully: {training_file_id}")
```

------
#### [ HTTP request ]

Invia una richiesta POST a`/v1/files`:

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/files \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F purpose="fine-tune" \
  -F file="@training_data.jsonl"
```

------

### Recupera i dettagli del file
<a name="fine-tuning-openai-retrieve-file"></a>

Per recuperare i dettagli su un file specifico, scegli la scheda corrispondente al metodo che preferisci, quindi segui i passaggi:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Retrieve file details
file_details = client.files.retrieve(training_file_id)

# Print raw response
print(json.dumps(file_details.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Fai una richiesta GET a`/v1/files/{file_id}`:

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/files/file-abc123 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

### Elenca i file
<a name="fine-tuning-openai-list-files"></a>

Per elencare i file caricati, scegli la scheda corrispondente al metodo che preferisci, quindi segui i passaggi:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# List files
files_response = client.files.list(purpose='fine-tune')

# Print raw response
print(json.dumps(files_response.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Effettua una richiesta GET a`/v1/files`:

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/files?purpose=fine-tune \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

### Elimina file
<a name="fine-tuning-openai-delete-file"></a>

Per eliminare un file, scegli la scheda corrispondente al metodo preferito, quindi segui i passaggi:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Delete file
delete_response = client.files.delete(training_file_id)
```

------
#### [ HTTP request ]

Effettua una richiesta DELETE a`/v1/files/{file_id}`:

```
curl -X DELETE https://bedrock-mantle.us-west-2.api.aws/v1/files/file-abc123 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## Caratteristiche dei dati di allenamento efficaci
<a name="rft-data-characteristics-open-weight"></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-open-weight"></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 a peso aperto
<a name="reward-functions-open-weight"></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. Scegliete l'approccio più adatto ai requisiti della vostra attività.

## Funzioni Lambda personalizzate per la valutazione dei premi
<a name="rft-custom-lambda-functions"></a>

Puoi configurare funzioni di ricompensa utilizzando funzioni Lambda personalizzate. All'interno della funzione Lambda, hai flessibilità nel modo in cui implementi la logica di valutazione:
+ **Attività oggettive: per attività** oggettive come la generazione di codice o il ragionamento matematico, utilizza classificatori verificabili basati su regole che controllano la correttezza rispetto a standard o casi di test noti.
+ Attività **soggettive: per attività** soggettive come seguire istruzioni o interagire con i chatbot, chiama i modelli di base di Amazon Bedrock come giudici all'interno della tua funzione Lambda per valutare la qualità della risposta in base ai tuoi criteri.

La tua funzione Lambda può implementare logiche complesse, integrare elementi esterni APIs, eseguire calcoli in più fasi o combinare più criteri di valutazione a seconda dei requisiti dell'attività.

**Nota**  
Quando si utilizzano funzioni Lambda personalizzate:  
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 la funzione Lambda come descritto in. [Autorizzazioni Lambda per le funzioni di ricompensa](rft-open-weight-access-security.md#openai-fine-tuning-lambda-permissions)

## Dettagli sull'implementazione della funzione Lambda
<a name="rft-lambda-implementation-open-weight"></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 modelli open weight utilizzando OpenAI APIs
<a name="fine-tuning-openai-job-create"></a>

Il processo di fine-tuning compatibile con OpenAI APIs consente di creare, monitorare e gestire lavori di fine-tuning. Questa pagina illustra come utilizzarli per la messa a punto dei rinforzi. APIs [Per i dettagli completi sull'API, consulta la documentazione Fine-tuning. OpenAI](https://platform.openai.com/docs/api-reference/fine-tuning)

## Crea un lavoro di messa a punto
<a name="fine-tuning-openai-create-job"></a>

Crea un processo di ottimizzazione che avvia il processo di creazione di un nuovo modello da un determinato set di dati. Per i dettagli completi sull'API, consulta la documentazione [OpenAICreate](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/create) fine-tuning jobs.

### Esempi
<a name="fine-tuning-openai-create-job-examples"></a>

Per creare un processo di ottimizzazione con il metodo RFT, scegli la scheda relativa al metodo preferito, quindi segui i passaggi:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Create fine-tuning job with RFT method
job_response = client.fine_tuning.jobs.create(
    model=MODEL_ID,
    training_file=training_file_id,
    # Suffix field is not supported so commenting for now.
    # suffix="rft-example",  # Optional: suffix for fine-tuned model name
    extra_body={
        "method": {
            "type": "reinforcement", 
            "reinforcement": {
                "grader": {
                    "type": "lambda",
                    "lambda": {
                        "function": "arn:aws:lambda:us-west-2:123456789012:function:my-reward-function"  # Replace with your Lambda ARN
                    }
                },
                "hyperparameters": {
                    "n_epochs": 1,  # Number of training epochs
                    "batch_size": 4,  # Batch size
                    "learning_rate_multiplier": 1.0  # Learning rate multiplier
                }
            }
        }
    }
)

# Store job ID for next steps
job_id = job_response.id
print({job_id})
```

------
#### [ HTTP request ]

Fai una richiesta POST a: `/v1/fine_tuning/jobs`

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "training_file": "file-abc123",
    "model": "gpt-4o-mini",
    "method": {
      "type": "reinforcement",
      "reinforcement": {
        "grader": {
          "type": "lambda",
          "lambda": {
            "function": "arn:aws:lambda:us-west-2:123456789012:function:my-grader"
          }
        },
        "hyperparameters": {
          "n_epochs": 1,
          "batch_size": 4,
          "learning_rate_multiplier": 1.0
        }
      }
    }
  }'
```

------

## Elenca gli eventi di ottimizzazione
<a name="fine-tuning-openai-list-events"></a>

Elenca gli eventi per un lavoro di ottimizzazione. Gli eventi di ottimizzazione forniscono informazioni dettagliate sullo stato di avanzamento del lavoro, tra cui metriche di formazione, creazione di checkpoint e messaggi di errore. [Per i dettagli completi sull'API, consulta la documentazione List fine-tuning eventsOpenAI.](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/list_events)

### Esempi
<a name="fine-tuning-openai-list-events-examples"></a>

Per elencare gli eventi di fine-tuning, scegli la scheda corrispondente al tuo metodo preferito, quindi segui i passaggi:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# List fine-tuning events
events = client.fine_tuning.jobs.list_events(
    fine_tuning_job_id="ftjob-abc123",
    limit=50
)

for event in events.data:
    print(f"[{event.created_at}] {event.level}: {event.message}")
    if event.data:
        print(f"  Metrics: {event.data}")
```

------
#### [ HTTP request ]

Fai una richiesta GET a: `/v1/fine_tuning/jobs/{fine_tuning_job_id}/events`

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=50
```

------

Gli eventi includono informazioni come:
+ Messaggi di inizio e completamento del corso di formazione
+ Notifiche di creazione di checkpoint
+ Metriche di allenamento (perdita, precisione) in ogni fase
+ Messaggi di errore se il processo fallisce

Per visualizzare tutti gli eventi, scegliete la scheda corrispondente al metodo che preferite, quindi seguite i passaggi:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Paginate through all events
all_events = []
after = None

while True:
    events = client.fine_tuning.jobs.list_events(
        fine_tuning_job_id="ftjob-abc123",
        limit=100,
        after=after
    )
    
    all_events.extend(events.data)
    
    if not events.has_more:
        break
    
    after = events.data[-1].id
```

------
#### [ HTTP request ]

Effettua più richieste GET con il `after` parametro:

```
# First request
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=100

# Subsequent requests with 'after' parameter
curl "https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=100&after=ft-event-abc123"
```

------

## Recupera il lavoro di messa a punto
<a name="fine-tuning-openai-retrieve-job"></a>

Ottieni informazioni dettagliate su un lavoro di messa a punto. Per i dettagli completi sull'API, consulta la documentazione [OpenAIRetrieve](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/retrieve) fine-tuning job.

### Esempi
<a name="fine-tuning-openai-retrieve-job-examples"></a>

Per recuperare dettagli specifici del lavoro, scegli la scheda relativa al metodo che preferisci, quindi segui i passaggi:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Retrieve specific job details
job_details = client.fine_tuning.jobs.retrieve(job_id)

# Print raw response
print(json.dumps(job_details.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Fai una richiesta GET a`/v1/fine_tuning/jobs/{fine_tuning_job_id}`:

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## Elenca i lavori di ottimizzazione
<a name="fine-tuning-openai-list-jobs"></a>

Elenca i lavori di ottimizzazione della tua organizzazione con supporto per l'impaginazione. Per i dettagli completi sull'API, consulta la documentazione [OpenAIList](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/list) fine-tuning jobs.

### Esempi
<a name="fine-tuning-openai-list-jobs-examples"></a>

Per elencare i lavori di fine-tuning con limite e paginazione, scegli la scheda corrispondente al metodo che preferisci, quindi segui i passaggi:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# List fine-tuning jobs with limit and pagination
response = client.fine_tuning.jobs.list(
    limit=20  # Maximum number of jobs to return
)

# Print raw response
print(json.dumps(response.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Effettua una richiesta GET a: `/v1/fine_tuning/jobs`

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs?limit=20 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## Annulla il lavoro di messa a punto
<a name="fine-tuning-openai-cancel-job"></a>

Annulla un processo di messa a punto in corso. Una volta annullato, il lavoro non può essere ripreso. Per i dettagli completi sull'API, consulta la documentazione [OpenAIAnnulla il lavoro di fine-tuning](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/cancel).

### Esempi
<a name="fine-tuning-openai-cancel-job-examples"></a>

Per annullare un processo di fine-tuning, scegli la scheda corrispondente al metodo che preferisci, quindi segui i passaggi:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Cancel fine-tuning job
cancel_response = client.fine_tuning.jobs.cancel("ftjob-abc123")

print(f"Job ID: {cancel_response.id}")
print(f"Status: {cancel_response.status}")  # Should be "cancelled"
```

------
#### [ HTTP request ]

Invia una richiesta POST a: `/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel`

```
curl -X POST https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/cancel \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## Elenca i checkpoint di ottimizzazione
<a name="fine-tuning-openai-list-checkpoints"></a>

Elenca i punti di controllo per un lavoro di messa a punto. I checkpoint sono istantanee intermedie del modello create durante la messa a punto che possono essere utilizzate a fini di inferenza per valutare le prestazioni nelle diverse fasi di addestramento. [Per ulteriori informazioni, consulta la documentazione List fine-tuning checkpoint. OpenAI](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/subresources/checkpoints/methods/list)

### Esempi
<a name="fine-tuning-openai-list-checkpoints-examples"></a>

Per elencare i punti di controllo necessari per un lavoro di messa a punto, scegli la scheda corrispondente al metodo che preferisci, quindi segui i passaggi:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# List checkpoints for a fine-tuning job
checkpoints = client.fine_tuning.jobs.checkpoints.list(
    fine_tuning_job_id="ftjob-abc123",
    limit=10
)

for checkpoint in checkpoints.data:
    print(f"Checkpoint ID: {checkpoint.id}")
    print(f"Step: {checkpoint.step_number}")
    print(f"Model: {checkpoint.fine_tuned_model_checkpoint}")
    print(f"Metrics: {checkpoint.metrics}")
    print("---")
```

------
#### [ HTTP request ]

Effettua una richiesta GET a: `/v1/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints`

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/checkpoints?limit=10
```

------

Ogni checkpoint include:
+ **Checkpoint ID**: identificatore univoco per il checkpoint
+ **Numero della fase**: fase di addestramento in cui è stato creato il checkpoint
+ **Punto di controllo del modello**: identificatore del modello che può essere utilizzato per l'inferenza
+ **Metriche**: perdita e precisione della convalida a questo punto di controllo

Per utilizzare un modello di checkpoint per l'inferenza, scegli la scheda relativa al metodo preferito, quindi segui i passaggi:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Test inference with a checkpoint
response = client.chat.completions.create(
    model=checkpoint.fine_tuned_model_checkpoint,
    messages=[{"role": "user", "content": "What is AI?"}],
    max_tokens=100
)

print(response.choices[0].message.content)
```

------
#### [ HTTP request ]

Fai una richiesta POST a: `/v1/chat/completions`

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ft:gpt-4o-mini:openai:custom:7p4lURel:ckpt-step-1000",
    "messages": [{"role": "user", "content": "What is AI?"}],
    "max_tokens": 100
  }'
```

------

## Esegui l'inferenza con un modello ottimizzato
<a name="fine-tuning-openai-inference"></a>

Una volta completato il lavoro di ottimizzazione, puoi utilizzare il modello ottimizzato per l'inferenza tramite l'API Responses o l'API Chat Completions. Per i [Genera risposte utilizzando OpenAI APIs](bedrock-mantle.md) dettagli completi sull'API, consulta.

### API di risposta
<a name="fine-tuning-openai-responses-api"></a>

Usa l'API Responses per la generazione di testo a turno singolo con il tuo modello ottimizzato:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Get the fine-tuned model ID
job_details = client.fine_tuning.jobs.retrieve("ftjob-abc123")

if job_details.status == 'succeeded' and job_details.fine_tuned_model:
    fine_tuned_model = job_details.fine_tuned_model
    print(f"Using fine-tuned model: {fine_tuned_model}")
    
    # Run inference with Responses API
    response = client.completions.create(
        model=fine_tuned_model,
        prompt="What is the capital of France?",
        max_tokens=100,
        temperature=0.7
    )
    
    print(f"Response: {response.choices[0].text}")
else:
    print(f"Job status: {job_details.status}")
    print("Job must be in 'succeeded' status to run inference")
```

------
#### [ HTTP request ]

Fai una richiesta POST a: `/v1/completions`

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "ft:gpt-4o-mini:openai:custom-model:7p4lURel",
    "prompt": "What is the capital of France?",
    "max_tokens": 100,
    "temperature": 0.7
  }'
```

------

### API per il completamento della chat
<a name="fine-tuning-openai-inference-examples"></a>

Usa l'API Chat Completions per le interazioni conversazionali con il tuo modello ottimizzato:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Get the fine-tuned model ID
job_details = client.fine_tuning.jobs.retrieve("ftjob-abc123")

if job_details.status == 'succeeded' and job_details.fine_tuned_model:
    fine_tuned_model = job_details.fine_tuned_model
    print(f"Using fine-tuned model: {fine_tuned_model}")
    
    # Run inference
    inference_response = client.chat.completions.create(
        model=fine_tuned_model,
        messages=[
            {"role": "user", "content": "What is the capital of France?"}
        ],
        max_tokens=100
    )
    
    print(f"Response: {inference_response.choices[0].message.content}")
else:
    print(f"Job status: {job_details.status}")
    print("Job must be in 'succeeded' status to run inference")
```

------
#### [ HTTP request ]

Fai una richiesta POST a: `/v1/chat/completions`

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "ft:gpt-4o-mini:openai:custom-model:7p4lURel",
    "messages": [
      {"role": "user", "content": "What is the capital of France?"}
    ],
    "max_tokens": 100
  }'
```

------

# Valuta il tuo modello RFT
<a name="rft-evaluate-model"></a>

Una volta completato con successo il lavoro di messa a punto delle armature, è possibile valutare le prestazioni del modello personalizzato utilizzando diversi metodi di valutazione. Amazon Bedrock fornisce strumenti di valutazione integrati per aiutarti a confrontare il tuo modello RFT con il modello base e a convalidare i miglioramenti.

**Topics**
+ [Metodi di valutazione](#rft-evaluation-methods)
+ [Configurazione dell'inferenza per la valutazione](#rft-setup-inference-evaluation)
+ [Migliori pratiche di valutazione](#rft-evaluation-best-practices)

## Metodi di valutazione
<a name="rft-evaluation-methods"></a>

Amazon Bedrock offre diversi modi per valutare le prestazioni del modello RFT.

### Metriche di convalida
<a name="rft-validation-metrics"></a>

Se carichi un set di dati di convalida, vedrai due grafici aggiuntivi nelle metriche di formazione.
+ **Premi di convalida**: mostra l'efficacia della generalizzazione del modello, oltre agli esempi di formazione. I punteggi più bassi rispetto ai premi di allenamento sono normali e previsti.
+ Durata **degli episodi di convalida: durata** media della risposta su dati di convalida non visualizzati. Mostra l'efficienza con cui il modello risponde ai nuovi input rispetto agli esempi di formazione.

### Prova in Playground
<a name="rft-test-playground"></a>

Usa la funzione Test in Playground per valutazioni rapide e ad hoc. Per utilizzare la funzione Test in Playground, è necessario impostare l'inferenza. Per ulteriori informazioni, consulta [Configurazione dell'inferenza per la valutazione](#rft-setup-inference-evaluation).

Questo strumento interattivo consente di:
+ Testa le istruzioni direttamente con il tuo modello RFT
+ Confronta le risposte side-by-side tra il tuo modello personalizzato e il modello base
+ Valuta i miglioramenti della qualità della risposta in tempo reale
+ Sperimenta con diversi prompt per valutare le funzionalità del modello

### Valutazione del modello Bedrock
<a name="rft-model-evaluation"></a>

Usa la valutazione del modello di Amazon Bedrock per valutare il tuo modello RFT utilizzando i tuoi set di dati. Ciò fornisce un'analisi completa delle prestazioni con metriche e benchmark standardizzati. Ecco alcuni esempi dei vantaggi della valutazione del modello Amazon Bedrock.
+ Valutazione sistematica utilizzando set di dati di test personalizzati
+ Confronti quantitativi delle prestazioni
+ Metriche standardizzate per una valutazione coerente
+ Integrazione con i flussi di lavoro di valutazione esistenti di Amazon Bedrock

## Configurazione dell'inferenza per la valutazione
<a name="rft-setup-inference-evaluation"></a>

Prima di valutare il modello RFT, configurate l'inferenza utilizzando una di queste opzioni:

### Inferenza on demand
<a name="rft-on-demand-inference"></a>

Crea un modello personalizzato di implementazione su richiesta per una valutazione flessibile. pay-per-use Questa opzione include prezzi basati su token che vengono addebitati in base al numero di token elaborati durante l'inferenza.

## Migliori pratiche di valutazione
<a name="rft-evaluation-best-practices"></a>
+ **Confrontate sistematicamente**: valutate sempre il vostro modello RFT rispetto al modello base utilizzando le stesse istruzioni di test e gli stessi criteri di valutazione.
+ **Utilizza diversi casi di test**: includi vari tipi di prompt e scenari che rappresentano i tuoi casi d'uso reali.
+ **Convalida l'allineamento delle ricompense**: assicurati che i miglioramenti del modello siano in linea con le funzioni di ricompensa utilizzate durante l'allenamento.
+ **Casi limite di test**: valuta il comportamento del modello sulla base di input impegnativi o insoliti per valutarne la robustezza.
+ **Monitora la coerenza della risposta**: verifica che il modello offra una qualità costante su più esecuzioni con richieste simili.