È possibile impostare i parametri nel Prompt Lab per controllare il modo in cui il modello genera l'output in risposta al prompt. Impostare i parametri di decodifica per regolare il modo in cui viene generato il testo di output. Impostare i parametri dei criteri di arresto per specificare quando il modello deve interrompere la creazione di output.
Decodifica
La decodificazione è il processo utilizzato da un modello per scegliere i token nell'output generato.
Scegliere una delle seguenti opzioni di decodifica:
Decodifica greedy: seleziona il token con la probabilità più alta ad ogni fase del processo di decodifica.
La decodifica greedy produce un output che corrisponde strettamente al linguaggio più comune nei dati di pre - addestramento del modello e nel testo del prompt, il che è auspicabile in casi di utilizzo meno creativi o basati sui fatti. Una debolezza della decodifica greedy è che può causare loop ripetitivi nell'output generato.
La decodifica greedy non genera sempre lo stesso output in richieste consecutive. Per ottenere risultati coerenti su più prompt, utilizzare la decodifica a campionamento e specificare lo stesso numero per il parametro del seme casuale in ogni prompt.
Decodifica di campionamento: offre una maggiore variabilità nella modalità di selezione dei token.
Con la decodificazione di campionamento, i token del modello esempi , il che significa che il modello sceglie un sottoinsieme di token, e quindi un token viene scelto casualmente da questo sottoinsieme per essere aggiunto al testo di output. Il campionamento aggiunge variabilità e casualità al processo di decodifica, che può essere desiderabile nei casi di utilizzo creativi. Tuttavia, con una maggiore variabilità si ha un maggiore rischio di output non corretto o insensato.
Altre opzioni per la decodifica del campionamento
Quando si sceglie la decodifica a campionamento, sono disponibili altri parametri che possono essere utilizzati per regolare il modo in cui il foundation model sceglie i token da campionare. I seguenti parametri funzionano insieme per influenzare quali token vengono campionati:
- Il campionamento della temperatura appiattisce o tempera la distribuzione della probabilità sui token da campionare.
- Il campionamento Top - k esegue il campionamento dei token con le probabilità più elevate fino a quando non viene raggiunto il numero specificato di token.
- Il campionamento Top - p campiona i token con i punteggi di probabilità più elevati fino a quando la somma dei punteggi non raggiunge il valore di soglia specificato. (Il campionamento Top - p è anche chiamato campionamento dei nuclei.)
Parametro | Valori supportati | Predefinito | Utilizzo |
---|---|---|---|
Temperatura | Numero a virgola mobile compreso tra 0.0 (uguale alla decodifica greedy) e 2.0 (creatività massima) | 0.7 | Valori più elevati portano a una maggiore variabilità |
Primi K | Numero intero compreso tra 1 e 100 | 50 | Valori più elevati portano a una maggiore variabilità |
Primi P | Numero a virgola mobile compreso tra 0.0 e 1.0 | 1.0 | A meno che non si modifichi il valore, questa impostazione non viene utilizzata |
Le impostazioni Temperatura, Top K e Top P non sono applicabili quando si sceglie di utilizzare la decodifica greedy.
Esempio di regolazione delle impostazioni di codifica di campionamento
In questo esempio, il foundation model ha già generato il testo in uscita " I took my dog
e ora il modello sta scegliendo il token successivo.
Per trovare la scelta migliore, il modello calcola una distribuzione discreta della probabilità sui token possibili. Con questo tipo di distribuzione, a ogni token viene assegnato un punteggio di probabilità di punto decimale compreso tra 0 e 1, dove i punteggi si aggiungono fino a 1.
In uno scenario reale, potrebbero esserci centinaia di token possibili. In questo esempio, le scelte includono solo cinque token, che vengono mostrati qui nel contesto di frasi tipiche:
Ho preso il mio cane ...
- per una passeggiata.
- al veterinario.
- con .
- e il mio gatto in vacanza.
- dal collare.
I primi K e i primi P rappresentano due metodi differenti per scegliere i token da campionare.
Entrambi i metodi iniziano ordinando le scelte dalla più probabile alla meno probabile. La seguente tabella elenca i token e i relativi punteggi di probabilità fittizi in ordine.
Token | Punteggio probabilità |
---|---|
per | 0.4 |
a | 0.25 |
con | 0.17 |
e | 0.13 |
di | 0.05 |
Esempio K superiore
Top K specifica quanti token campionare. Ad esempio, se si imposta Top K su 3, vengono campionati solo i primi tre token nell'elenco: per, pere con.
Esempio P superiore
Top P specifica la soglia del punteggio di probabilità cumulativa che i token devono raggiungere.
Ad esempio, se si imposta Primi P su 0.6, solo i primi due token, per e per, vengono campionati perché le loro probabilità (0.4 e 0.25) si aggiungono a 0.65. (Come mostrato in questo esempio, è corretto che la somma superi la soglia.)
La P superiore non viene utilizzata a meno che non si imposti il parametro P superiore su un valore diverso da quello predefinito di 1. Utilizzando Top P e Top K insieme può essere un modo utile per filtrare i token con punteggi di probabilità extra bassa. Quando vengono specificati entrambi i parametri, viene applicato per primo Top K.
Ad esempio, è possibile impostare Top K su 5 e Top P su 0.8. L'impostazione Prime K esegue il campionamento di tutti i 5 token, quindi Top P limita i token campionati a per, pere con perché le loro probabilità raggiungono la soglia del punteggio di probabilità di 0.8 (0.4 + 0.25 + 0.17 = 0.82).
Quando vengono specificate entrambe le impostazioni, tutti i token al di sotto del limite impostato da Top K vengono considerati con una probabilità di zero quando viene calcolato Top P. Ad esempio, se Top K è impostato su 2 e Top P su 0.8, vengono campionati solo per e per . Il token con non viene campionato perché i punteggi di probabilità per con, ee per vengono reimpostati su 0.
Esempio di temperatura
L'impostazione della temperatura influisce sulla forma della distribuzione di probabilità utilizzata durante il campionamento dei token.
Le basse temperature amplificano le differenze di probabilità tra i token. I termini più probabili hanno punteggi molto più elevati rispetto ai termini meno probabili. Di conseguenza, i termini che sono simili ai termini nei dati di addestramento del modello o nell'input del prompt saranno probabilmente campionati. Utilizzare un valore di temperatura inferiore quando si desidera un output più affidabile.
Le alte temperature si traducono in probabilità token che sono più vicine l'una all'altra. Di conseguenza, i termini insoliti hanno una maggiore possibilità di essere campionati. Utilizzare un valore di temperatura più elevato quando si desidera aumentare la casualità e la variabilità o l'output, ad esempio quando si desidera un output creativo. Ricorda, la casualità può anche portare a un output inaccurato o senza senso.
Ad esempio, quando viene applicato un valore di temperatura elevata come 2, i punteggi di probabilità dei token in questo esempio potrebbero essere più vicini tra loro, come mostrato nella Tabella 3.
Token | Punteggi con temperatura = 2 |
---|---|
per | 0.3 |
a | 0.25 |
con | 0.2 |
e | 0.15 |
di | 0.10 |
Quando Top P è impostato su 0.8, la temperatura influenza i token di esempio nel modo seguente:
- Con una temperatura elevata, i primi quattro token (per, da a, cone e) vengono campionati perché i loro punteggi (0.3 + 0.25 + 0.2 + 0.15 = 90) sono 90.
- Con una temperatura bassa, vengono campionati solo i primi tre token (per, pere con) perché i loro punteggi (0.4 + 0.25 + 0.17 = 82) totalizzano 82.
Quando si utilizza un valore di temperatura elevata, sono necessari più token per raggiungere la soglia impostata da Top P. Il token extra che viene campionato ha il punteggio più basso, il che significa che il token è una scelta più insolita.
Seed casuale
Quando si inoltra lo stesso prompt a un modello più volte con la decodifica di campionamento, il modello di solito genera testo diverso ogni volta. Questa variabilità è il risultato di pseudo - casualità intenzionale che è integrato nel processo di decodifica.
Per valore di inizializzazione casuale si intende il numero utilizzato per avviare il generatore di numeri casuali che il modello utilizza per rendere casuali le proprie scelte token. Se si desidera rimuovere questa casualità intenzionale come una variabile dai propri esperimenti, è possibile scegliere un numero e specificare lo stesso numero ogni volta che si esegue l'esperimento.
- valori supportati: numero intero compreso tra 1 e 4.294.967.295
- Valore predefinito: generato in modo casuale
- Utilizzare : per produrre risultati ripetibili, impostare ogni volta lo stesso valore di seme random.
Penalità di ripetizione
Se l'output generato per il prompt, il modello e i parametri scelti contiene in modo congruente testo ripetitivo, è possibile provare ad aggiungere una penalità di ripetizione. Se impostata, la penalità riduce i punteggi di probabilità dei token utilizzati di recente in modo che il modello abbia meno probabilità di ripeterli. Un valore più elevato porta a una produzione più varia e diversificata.
- Valori supportati: Numero in virgola mobile nell'intervallo 1.0 (nessuna penalità) a 2.0 (penalità massima)
- Valore predefinito: 1.0
- Uso: maggiore è la penalità, minore è la probabilità che il risultato includa testo ripetuto.
Criteri di arresto
La generazione del testo si arresta dopo che il modello considera l'output completo, viene generata una sequenza di arresto, viene raggiunto il limite massimo di token o viene raggiunto il limite di tempo di generazione del modello.
La generazione del modello si arresta quando viene raggiunto il limite di tempo per la richiesta di generazione. Il limite di tempo predefinito è 10 minuti e 5 minuti per i piani Lite. Puoi specificare un limite di tempo più breve quando invii una richiesta di inferenza utilizzando l'API.
È possibile influenzare la lunghezza dell'output generato dal modello nei seguenti modi: specificando le sequenze di arresto e impostando i token Min e Max.
Interrompi sequenze
Una sequenza di arresto è una stringa di uno o più caratteri. Se si specificano le sequenze di arresto, il modello interromperà automaticamente la creazione dell'output dopo che una delle sequenze di arresto specificate viene visualizzata nell'output generato.
Ad esempio, un modo per far sì che un modello smetta di generare output dopo una sola frase è specificare un periodo come sequenza di arresto. In questo modo, dopo che il modello genera la prima frase e la termina con un punto, la generazione dell'output si arresta.
La scelta di sequenze di arresto efficaci dipende dal tuo caso di utilizzo e dalla natura dell'output generato che ti aspetti.
Valori supportati: da 0 a 6 stringhe, ciascuna non più lunga di 40 token
Valore predefinito: Nessuna sequenza di arresto
Utilizzo: Seguire questi suggerimenti per l'utilizzo delle sequenze di arresto:
- Le sequenze di arresto vengono ignorate fino a quando non viene generato un numero di token specificato nel parametro Min tokens. Tenete presente questa relazione quando impostate il valore minimo del parametro token.
- Se il prompt include esempi di coppie di input e output, assicuratevi di includere negli esempi una delle sequenze di stop nell'output di esempio.
Numero minimo e massimo di nuovi token
Se l'output del modello è troppo breve o troppo lungo, provare a modificare i parametri che controllano il numero di token generati:
Il parametro Token minimi controlla il numero minimo di token nell'output generato
Il parametro Numero massimo di token controlla il numero massimo di token nell'output generato
Valori supportati: Il numero massimo di token consentiti nell'output varia a seconda del modello. Per ulteriori informazioni, vedi le informazioni Numero massimo di token in Supported foundation models.
Valori predefiniti:
- Numero minimo token: 0
- Numero massimo di token: 200
Usa:
- Il numero minimo di token deve essere minore o uguale al numero massimo di token.
- Il costo di utilizzo dei modelli di base in IBM watsonx.ai si basa sull'utilizzo, che è parzialmente correlato al numero di token che vengono generati. Specificare il valore più basso per Numero massimo di token che funziona per il tuo caso d'uso è una strategia di risparmio sui costi.
Ulteriori informazioni
Argomento principale: Prompt Lab