Le strategie di progettazione dei prompt, come i prompt few-shot, potrebbero non essere sempre sufficienti per personalizzare il comportamento del modello. Utilizza l'ottimizzazione del modello per migliorare le prestazioni di un modello in attività specifiche o per fare in modo che il modello rispetti requisiti di output specifici quando le istruzioni non sono sufficienti. Questa pagina mostra come ottimizzare un modello di base in Vertex AI e fornisce indicazioni su come ottenere i risultati migliori.
Come funziona l'ottimizzazione dei modelli
L'obiettivo dell'ottimizzazione del modello è migliorarne ulteriormente le prestazioni per un'attività specifica. L'ottimizzazione fornisce al modello un set di dati di addestramento contenente molti esempi dell'attività. Per attività di nicchia, puoi ottenere miglioramenti significativi nelle prestazioni del modello ottimizzandolo su un numero modesto di esempi.
I dati di addestramento devono essere strutturati come set di dati di addestramento supervisionato in formato da testo a testo. Ogni record o riga dei dati conterrà il testo di input, in altre parole il prompt, seguito dall'output previsto del modello. L'obiettivo è insegnare al modello a imitare il comportamento o l'attività desiderata, fornendo molti esempi che illustrano tale comportamento o attività.
Quando esegui un job di ottimizzazione, il modello apprende parametri aggiuntivi che consentono di codificare le informazioni necessarie per eseguire l'attività desiderata o per apprendere il comportamento desiderato. Questi parametri possono essere utilizzati al momento dell'inferenza. L'output del job di ottimizzazione è un nuovo modello, che è effettivamente una combinazione dei nuovi parametri appresi e del modello originale.
Flusso di lavoro per l'ottimizzazione del modello
Il flusso di lavoro dell'ottimizzazione dei modelli su Vertex AI è il seguente:
- Prepara il set di dati per l'ottimizzazione del modello.
- Carica il set di dati per l'ottimizzazione del modello in un bucket Cloud Storage.
- Crea un job di ottimizzazione del modello.
Una volta completata l'ottimizzazione, viene eseguito automaticamente il deployment del modello ottimizzato su un endpoint Vertex AI con lo stesso nome. Puoi anche selezionarlo in Generative AI Studio come modello da utilizzare durante la creazione di un nuovo prompt.
Mantieni la coerenza con i dati di produzione
Gli esempi inclusi nel tuo set di dati dovrebbero corrispondere al traffico di produzione previsto. Se il set di dati contiene formattazione, parole chiave, istruzioni o informazioni specifiche, i dati di produzione devono essere formattati nello stesso modo e contenere le stesse istruzioni.
Ad esempio, se gli esempi nel tuo set di dati includono "question:"
e "context:"
, anche il traffico di produzione deve essere formattato in modo da includere "question:"
e "context:"
nello stesso ordine in cui appare negli esempi di set di dati. Se escludi il contesto, il modello non riconoscerà il pattern, anche se la domanda esatta si trovava in un esempio nel set di dati.
Carica il set di dati dell'ottimizzazione in Cloud Storage
Puoi creare un nuovo bucket Cloud Storage o utilizzarne uno esistente per archiviare il file di set di dati. La regione del bucket non è importante, ma ti consigliamo di utilizzare un bucket che si trova nello stesso progetto Google Cloud in cui prevedi di eseguire l'ottimizzazione del modello.
Quando il bucket è pronto, carica il file del set di dati nel bucket.
Crea un job di ottimizzazione del modello
Vertex AI supporta l'ottimizzazione supervisionata e l'apprendimento per rinforzo dal feedback umano (RLHF).
Usare la correzione con supervisione
L'ottimizzazione supervisionata utilizza dati etichettati per addestrare un LLM. I seguenti modelli di base supportano l'ottimizzazione con supervisione:
Per informazioni sull'ottimizzazione di un modello di generazione di testo con l'ottimizzazione supervisionata, consulta Regolazione dei modelli di testo. Per scoprire di più sull'ottimizzazione di una generazione di codice e di un modello di chat di codice con ottimizzazione supervisionata, consulta Regolazione dei modelli di codice.
Usa l'ottimizzazione del modello RLHF (anteprima)
Puoi utilizzare l'apprendimento per rinforzo basato sul feedback umano (RLHF) per ottimizzare i modelli. RLHF utilizza il feedback umano per ottimizzare un modello linguistico. Utilizzando il feedback umano per ottimizzare i tuoi modelli, puoi fare in modo che i modelli siano più in linea con le preferenze umane e ridurre i risultati dannosi in scenari in cui le persone hanno intuizioni complesse su un'attività. Ad esempio, RLHF può essere d'aiuto a un compito ambiguo, come scrivere una poesia sull'oceano, offrendo a una persona due poesie sull'oceano e lasciando che sia quella persona a scegliere quella che preferisce.
I seguenti modelli supportano l'ottimizzazione RLHF:
- Il modello di base per la generazione di testo,
text-bison@001
. Per ulteriori informazioni, consulta Modello di generazione del testo. - I modelli Flan-T5 (Flan-T5)
t5-small
,t5-large
,t5-xl
et5-xxl
. I modelli Flan-T5 possono essere ottimizzati per eseguire attività come la classificazione del testo, la traduzione in lingue e la risposta alle domande. Per ulteriori informazioni, vedi Checkpoint Flan-T5.
L'ottimizzazione RLHF imposta il tipo di acceleratore e il conteggio in base alla regione selezionata.
I job in us-central1
utilizzano otto Nvidia A100 da 80 GB. I job in europe-west4
utilizzano
32 TPU v3.
Puoi utilizzare l'SDK Vertex AI per Python o la console Google Cloud per ottimizzare i tuoi modelli con RLHF:
SDK Vertex AI per Python
Per scoprire come utilizzare l'SDK Vertex AI per Python per ottimizzare i tuoi modelli con RLHF, apri ed esegui il seguente blocco note con Colab, GitHub o Vertex AI Workbench:
Console Google Cloud
Per ottimizzare un modello di testo con l'ottimizzazione RLHF utilizzando la console Google Cloud, segui questi passaggi:
- Nella sezione Vertex AI della console Google Cloud, vai alla pagina Generative AI Studio.
- Fai clic sulla scheda Correzione.
- Fai clic su Crea modello ottimizzato.
- Fai clic su Reinforcement learning from human feedback (RLHF).
- Fai clic su Continua.
- Configura i dettagli del modello come segue:
- Nome modello: inserisci un nome per il modello ottimizzato.
- Modello di base: seleziona il modello di base che vuoi ottimizzare.
- Passaggi del treno dei premi: inserisci il numero di passaggi da utilizzare per addestrare un modello premio. Il valore predefinito è 1000.
- Moltiplicatore del tasso di apprendimento del premio: inserisci un valore in virgola mobile che influisce sul tasso di apprendimento durante l'addestramento di un modello di premio. Per aumentare il tasso di apprendimento predefinito, inserisci un valore più alto. Per diminuire il tasso di apprendimento predefinito, inserisci un valore più basso. Il valore predefinito è 1,0.
- Passaggi di addestramento di rinforzo: inserisci il numero di passaggi da eseguire durante l'ottimizzazione del modello di base utilizzando il potenziamento di rinforzo. Il valore predefinito è 1000.
- Moltiplicatore del tasso di apprendimento per rinforzo Inserisci un valore in virgola mobile che influisce sul tasso di apprendimento durante l'addestramento di un modello di rinforzo. Per aumentare il tasso di apprendimento predefinito, inserisci un valore più alto. Per diminuire il tasso di apprendimento predefinito, inserisci un valore più basso. Il valore predefinito è 1,0.
- Directory di lavoro: inserisci la località di Cloud Storage in cui sono archiviati gli artefatti quando il modello è ottimizzato.
- Regione: inserisci la regione in cui viene eseguita l'ottimizzazione del modello. Le regioni supportate sono:
us-central1
: utilizza 8 Nvidia A100 da 80 GB.europe-west4
: utilizza 32 core del pod TPU v3.
- Fai clic su Continua.
- In Set di dati sulle preferenze umane, carica o scegli un set di dati sulle preferenze umane utilizzato per creare un modello di premio. Il modello di ricompensa è un surrogato della preferenza umana durante il rinforzo di apprendimento. Per garantire che i dati siano sufficienti affinché il modello con premio possa apprendere le preferenze umane durante l'addestramento, consigliamo 5000-10.000 esempi. Se vuoi caricare il file di set di dati, seleziona Carica file JSONL su Cloud Storage. Altrimenti, se il file di set di dati delle preferenze umane si trova già in un bucket Cloud Storage, seleziona File JSONL esistente su Cloud Storage.
- In Richiedi set di dati, se vuoi caricare il file del set di dati, seleziona Carica file JSONL in Cloud Storage. Altrimenti, se il file del set di dati del prompt si trova già in un bucket Cloud Storage, seleziona File JSONL esistente su Cloud Storage.
- Fai clic su Inizia l'ottimizzazione.
Controlla lo stato dell'operazione di ottimizzazione
Per verificare lo stato del job di ottimizzazione dei modelli, vai alla pagina Vertex AI Pipelines nella console Google Cloud. Questa pagina mostra lo stato dei job di ottimizzazione di testo e modelli di codice.
In alternativa, puoi configurare notifiche email per Vertex AI Pipelines in modo da ricevere una notifica via email quando il job di ottimizzazione del modello viene completato o non riesce.
Prezzi
Per l'ottimizzazione, che include sia l'ottimizzazione supervisionato sia l'apprendimento con rinforzo tramite feedback umano (RLHF), il pagamento delle risorse di calcolo utilizzate durante l'addestramento sarà pari a quello dell'addestramento personalizzato Vertex.
Per le previsioni sui modelli ottimizzati, paghi la stessa tariffa del modello di base descritta in Prezzi del supporto di Generative AI su Vertex AI.
Passaggi successivi
- Scopri di più sulle best practice per un'AI responsabile e sui filtri di sicurezza di Vertex AI.
- Scopri come abilitare gli audit log di accesso ai dati per i tuoi endpoint.