

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

# DPO
<a name="customizing-models-dpo"></a>

## Description
<a name="customizing-models-dpo-description"></a>

Direct Preference Optimization (DPO) allinea un modello alle preferenze umane addestrandosi su coppie di risposte scelte (preferite) e rifiutate (non preferite) alla stessa richiesta.

### Quando utilizzarlo
<a name="customizing-models-dpo-when-to-use"></a>
+ Hai dati sulle preferenze che mostrano quali risposte sono migliori
+ Migliora la qualità delle risposte oltre a quanto ottenuto da SFT
+ Il modello deve evitare comportamenti indesiderati specifici

### Cosa ottiene
<a name="customizing-models-dpo-what-it-achieves"></a>

Il modello impara a preferire la generazione di risposte simili agli esempi scelti ed evitare esempi rifiutati, senza richiedere un modello di ricompensa separato.

## Formato del set di dati
<a name="customizing-models-dpo-dataset"></a>

Il DPO richiede coppie di risposte scelte (preferite) e rifiutate (non preferite) per lo stesso prompt. Il DPO supporta due formati di set di dati. Tutti i set di dati devono essere in formato JSONL (un oggetto JSON per riga). Un `system` messaggio è facoltativo in entrambi i formati.

### Formato 1: `messaggi`
<a name="customizing-models-dpo-dataset-format-1"></a>

Fornisci `chosen` e `rejected` come elenchi completi di messaggi. Se incluso, il `system` messaggio deve essere il primo elemento e deve essere lo stesso in entrambi `chosen` e`rejected`.

```
{
  "chosen": [
    {"role": "system", "content": "..."},
    {"role": "user", "content": "..."},
    {"role": "assistant", "content": "..."}
  ],
  "rejected": [
    {"role": "system", "content": "..."},
    {"role": "user", "content": "..."},
    {"role": "assistant", "content": "..."}
  ]
}
```

### Formato 2: `richiesto`/`scelto`/`rifiutato`
<a name="customizing-models-dpo-dataset-format-2"></a>

Fornisci il prompt e entrambe le risposte come campi stringa separati, con un `system` campo opzionale di primo livello.

```
{
  "system": "...",
  "prompt": "...",
  "chosen": "...",
  "rejected": "..."
}
```

### Linee guida
<a name="customizing-models-dpo-dataset-guidance"></a>
+ Le risposte scelte e rifiutate dovrebbero differire significativamente in termini di qualità
+ Utilizza la stessa richiesta sia per le opzioni scelte che per quelle rifiutate
+ Il `system` messaggio è facoltativo

## Iperparametri - DPO LoRa
<a name="customizing-models-dpo-hyperparameters-lora"></a>

**Nota**  
Le tabelle seguenti mostrano gli iperparametri disponibili quando si utilizza [ la personalizzazione del modello serverless. ](customize-model.md) Altri iperparametri sono preimpostati da Amazon SageMaker AI utilizzando valori predefiniti ottimizzati. Quando utilizzi [ SageMaker AI Training Jobs ](customizing-models-training-jobs.md) or [ HyperPod](customizing-models-hyperpod.md), puoi accedere all'elenco completo degli iperparametri disponibili nelle ricette. Consulta il repository [ SageMaker AI Recipes ](https://github.com/aws/sagemaker-hyperpod-recipes) per ottenere una ricetta e accedere a tutti gli iperparametri.


| Parametro | Tipo | Obbligatorio? | Intervallo/valori | Description | 
| --- | --- | --- | --- | --- | 
| max\_epochs | intero | Campo obbligatorio | 1-100 | Numero di passaggi completi attraverso il set di dati di addestramento. | 
| global\_batch\_size | intero | Campo obbligatorio | 16, 32, 64, 128 | Campioni totali elaborati per fase di ottimizzazione in tutte le istanze. | 
| learning\_rate | virgola mobile | Campo obbligatorio | 5e-07—1e-04 | Dimensione dei gradini per l'aggiornamento del peso durante l'ottimizzazione. | 
| lr\_scheduler | stringa | Campo obbligatorio | coseno, costante | Programma di decadimento del tasso di apprendimento rispetto all'allenamento. | 
| lr\_warmup\_steps\_ratio | virgola mobile | Campo obbligatorio | 0—1 | Frazione del totale dei passaggi impiegati per aumentare il tasso di apprendimento da 0. | 
| weight\_decay | virgola mobile | Campo obbligatorio | 0.0 - 1.0 | Coefficiente di regolarizzazione L2. Aiuta a prevenire il sovradattamento. | 
| gradient\_clipping | booleano | Campo obbligatorio | true, false | Riduci i gradienti se la norma supera la soglia. | 
| gradient\_clipping\_threshold | virgola mobile | Campo obbligatorio | 0,0-5,0 | Norma di gradiente massima consentita. | 
| dataset\_max\_len | intero | Campo obbligatorio | 256—131072 | Lunghezza massima della sequenza in token. Le sequenze più lunghe vengono troncate. | 
| seed | intero | Campo obbligatorio | 0–2147483647 | Seme casuale per la riproducibilità. | 
| logging\_steps | intero | Campo obbligatorio | 1-100 | Frequenza di registrazione delle metriche nelle fasi dell'ottimizzatore. | 
| lora\_rank | intero | Campo obbligatorio | 8, 16, 32, 64, 128 | Dimensionalità delle matrici di basso rango. Inferiore = meno parametri addestrabili. | 
| lora\_dropout | virgola mobile | Campo obbligatorio | 0.0 - 1.0 | Probabilità di abbandono per i livelli LoRA adattatori. | 
| lora\_alpha | intero | Campo obbligatorio | 16, 32, 64, 128, 256 | LoRAfattore di scala. L'LR effettivo si ridimensiona come. alpha/rank | 
| merge\_weights | booleano | Campo obbligatorio | true, false | Unisci i LoRA pesi nel modello base dopo l'allenamento. | 
| train\_val\_split\_ratio | virgola mobile | Facoltativo | 0.0 - 1.0 | Frazione assegnata all'addestramento rispetto alla convalida. | 
| temperature | virgola mobile | Campo obbligatorio | 0,0—2,0 | Temperatura di campionamento per la valutazione. | 
| adam\_beta | virgola mobile | Campo obbligatorio | 1e-03—0,1 | Temperatura inversa DPO. Controlla la forza con cui il modello impone le classifiche delle preferenze. | 

## Iperparametri - DPO FFT
<a name="customizing-models-dpo-hyperparameters-fft"></a>


| Parametro | Tipo | Obbligatorio? | Intervallo/valori | Description | 
| --- | --- | --- | --- | --- | 
| max\_epochs | intero | Campo obbligatorio | 1-100 | Numero di passaggi completi attraverso il set di dati di addestramento. | 
| global\_batch\_size | intero | Campo obbligatorio | 16, 32, 64, 128 | Campioni totali elaborati per fase di ottimizzazione. | 
| learning\_rate | virgola mobile | Campo obbligatorio | 5e-07—1e-04 | Dimensione del gradino per l'aggiornamento del peso. | 
| lr\_scheduler | stringa | Campo obbligatorio | coseno, costante | Programma di decadimento del tasso di apprendimento. | 
| lr\_warmup\_steps\_ratio | virgola mobile | Campo obbligatorio | 0—1 | Frazione di passaggi per il riscaldamento LR. | 
| weight\_decay | virgola mobile | Campo obbligatorio | 0.0 - 1.0 | Coefficiente di regolarizzazione L2. | 
| gradient\_clipping | booleano | Campo obbligatorio | true, false | Riduci i gradienti se la norma supera la soglia. | 
| gradient\_clipping\_threshold | virgola mobile | Campo obbligatorio | 0,0-5,0 | Norma di gradiente massima consentita. | 
| dataset\_max\_len | intero | Campo obbligatorio | 256—131072 | Lunghezza massima della sequenza in token. | 
| max\_response\_length | intero | Campo obbligatorio | 100—200000 | Numero massimo di token per la risposta generata. | 
| seed | intero | Campo obbligatorio | 0–2147483647 | Seme casuale per la riproducibilità. | 
| logging\_steps | intero | Campo obbligatorio | 1-100 | Frequenza di registrazione metrica. | 
| train\_val\_split\_ratio | virgola mobile | Facoltativo | 0.0 - 1.0 | Frazione assegnata alla formazione rispetto alla convalida. | 
| temperature | virgola mobile | Campo obbligatorio | 0,0—2,0 | Temperatura di campionamento per la valutazione. | 
| adam\_beta | virgola mobile | Campo obbligatorio | 1e-03—0,1 | Temperatura inversa DPO. Controlla la forza con cui il modello impone le classifiche delle preferenze. | 