Sviluppare un'applicazione di AI generativa
Questo documento ti aiuta a scoprire come affrontare le sfide in ogni fase di sviluppo di un'applicazione di AI generativa. Descrive come selezionare un modello, personalizzare l'output del modello in base alle tue esigenze, valutare le personalizzazioni ed eseguire il deployment del modello. Questo documento presuppone che tu abbia già un caso d'uso in mente e che sia adatto all'AI generativa. Per informazioni su come sviluppare un caso d'uso, consulta Valutare e definire il caso d'uso aziendale dell'AI generativa.
Prima di iniziare a sviluppare un'applicazione di AI generativa, valuta l'idoneità tecnica della tua organizzazione (funzionalità e infrastruttura). Per informazioni su come valutare le tue funzionalità di AI e creare una roadmap per sfruttarne il potenziale, consulta il seminario sulla preparazione all'IA. Se prevedi di sviluppare flussi di lavoro automatizzati dall'AI generativa, valuta se è opportuno includere persone nel loop per le fasi decisionali critiche. La revisione da parte di persone fisiche può essere utile per prendere decisioni come garantire un utilizzo responsabile, soddisfare requisiti specifici di controllo qualità o monitorare i contenuti generati.
Modelli di AI generativa
I modelli di base di AI generativa vengono addestrati su set di dati di diversi terabyte di testo, immagini, codice o altri contenuti multimediali. I dati e l'architettura del modello consentono ai modelli di identificare schemi complessi, acquisire una comprensione approfondita e contestuale e produrre nuovi contenuti come testo, immagini, musica o video in base ai dati di addestramento.
I modelli di base costituiscono il nucleo su cui si basano numerose applicazioni di AI generativa. Le funzionalità dei modelli si traducono in capacità emergenti: con una semplice istruzione di prompt di testo, i modelli di base di AI generativa possono imparare a svolgere una serie di attività, come tradurre lingue, rispondere a domande, scrivere una poesia o scrivere codice, senza addestramento esplicito per ogni attività. I modelli di base dell'IA generativa possono anche adattarsi per svolgere attività specifiche con alcune tecniche di prompt o possono essere ottimizzati con dati di addestramento aggiuntivi minimi.
I modelli linguistici di grandi dimensioni (LLM) vengono addestrati sul testo e sono un esempio di modelli di base che si basano solitamente su architetture di deep learning, come il Transformer sviluppato da Google nel 2017. Gli LLM possono essere addestrati su miliardi di esempi di testo e altri contenuti e possono essere personalizzati per domini specifici.
Altri modelli multimodali ampliano la capacità di un'applicazione di AI generativa di elaborare informazioni provenienti da più modalità, tra cui immagini, video, audio e testo. I prompt multimodali combinano più formati di input come testo, immagini e audio. Ad esempio, puoi inserire un'immagine e chiedere a un'applicazione di AI generativa di elencare o descrivere gli oggetti al suo interno. I modelli Gemini di Google sono stati progettati da zero per la multimodalità e possono ragionare senza problemi su testo, immagini, video, audio e codice. Model Garden e Vertex AI di Google Cloud possono aiutarti a trovare e personalizzare una gamma di modelli di base di Google, open source e di terze parti.
Scelta di un modello
Quando scegli un modello, tieni conto della modalità, delle dimensioni e del costo. Scegli il modello più conveniente che soddisfi comunque i tuoi requisiti di latenza e qualità della risposta.
- Modalità: come descritto nella sezione precedente, la modalità di un modello corrisponde alle categorie di dati di alto livello per le quali è stato addestrato, ad esempio testo, immagini e video. In genere, il caso d'uso e la modalità del modello sono strettamente associati. Se il tuo caso d'uso prevede la generazione di testo in immagini, devi trovare un modello addestrato su dati di testo e immagini. Se hai bisogno della flessibilità di più modalità, come nella ricerca multimodale, esistono modelli che supportano anche casi d'uso multimodali, ma i costi e la latenza potrebbero essere più elevati.
- I modelli Vertex AI offrono un ampio elenco di modelli di IA generativa che puoi utilizzare.
- Model Garden fornisce un elenco di offerte di modelli di ML proprietari e open source su Google Cloud.
- Dimensioni: le dimensioni di un modello vengono in genere misurate in base al numero di parametri. In generale, un modello più grande può apprendere pattern e relazioni più complessi all'interno dei dati, il che può comportare risposte di qualità superiore. Poiché i modelli più grandi della stessa famiglia possono avere una latenza e costi più elevati, potrebbe essere necessario sperimentare e valutare i modelli per determinare quale dimensione del modello è più adatta al tuo caso d'uso.
Costo: il costo di un modello è correlato alle sue funzionalità, che solitamente si riferiscono al numero di parametri del modello. Inoltre, i modelli possono essere misurati e addebitati in modo diverso. Ad esempio, per alcuni modelli l'addebito avviene in base al numero di token di input e di output. Per gli altri modelli, gli addebiti si basano sul numero di ore di nodo utilizzate durante il deployment del modello.
Per informazioni sui prezzi dei modelli di IA generativa su Vertex AI, consulta Prezzi di Vertex AI.
Per informazioni sul costo per il deployment dei modelli su Google Kubernetes Engine (GKE), consulta i prezzi di GKE.
Funzionalità: non tutti i modelli supportano funzionalità come la regolazione e la distillazione. Se queste funzionalità sono importanti per te, controlla le funzionalità supportate da ciascun modello.
Progetta prompt
La progettazione dei prompt è il processo di creazione di coppie di prompt e risposte per fornire ai modelli linguistici contesto e istruzioni aggiuntivi. Dopo aver creato i prompt, li fornisci al modello come set di dati di prompt per l'addestramento preliminare. Quando un modello fornisce le previsioni, risponde con le istruzioni incorporate.
Se vuoi ottenere un output specifico, puoi utilizzare strategie di progettazione dei prompt, ad esempio chiedere al modello di completare un input parziale o fornirgli esempi di risposte ideali. Per ulteriori informazioni, consulta la sezione Introduzione alla progettazione dei prompt.
Personalizzare un modello
Dopo aver progettato il prompt, potresti scoprire che le risposte di un modello funzionano bene, quindi non è necessario personalizzarlo. Se il modello non ha un buon rendimento, ad esempio se genera allucinazioni, puoi utilizzare tecniche di personalizzazione aggiuntive. Le sezioni seguenti illustrano queste tecniche e possono aiutarti a comprendere in che modo queste opzioni influiscono sull'output del modello.
Chiamate di funzioni ed estensioni
Le chiamate di funzione e le estensioni di Vertex AI espandeno le funzionalità del tuo modello. Valuta i casi d'uso della tua applicazione e i casi in cui l'utilizzo di un solo modello potrebbe non essere sufficiente. Puoi aiutare il modello aggiungendo chiamate di funzione o estensioni. Ad esempio, il modello può estrarre le informazioni del calendario dal testo e poi utilizzare un'estensione per trovare e prenotare una prenotazione.
Sebbene tu possa utilizzare le chiamate di funzione e le estensioni in modo intercambiabile, esistono alcune differenze di alto livello. La chiamata di funzione è un'operazione asincrona e non è necessario includere le credenziali nel codice. Le estensioni Vertex AI forniscono opzioni predefinite che puoi utilizzare per attività complesse, in modo da non dover scrivere le tue funzioni. Tuttavia, poiché le estensioni di Vertex AI restituiscono e chiamano le funzioni per tuo conto, le estensioni richiedono di includere le credenziali nel codice.
Grounding
Per grounding si intende l'aumento delle risposte del modello ancorandole a fonti di informazioni verificabili. Per basare un modello, devi collegarlo a un'origine dati. Il grounding di un modello contribuisce a migliorare l'affidabilità dei contenuti generati riducendo le allucinazioni.
La Retrieval Augmented Generation (RAG) è una tecnica di grounding di uso comune. La RAG utilizza la funzionalità di ricerca per trovare informazioni pertinenti e poi le aggiunge a un prompt del modello. Quando utilizzi la RAG, l'output si basa su fatti e sulle informazioni più recenti. La ricerca RAG utilizza incorporamenti vettoriali e database vettoriali, che archiviano i dati come rappresentazioni numeriche di dati non strutturati come testo e immagini. Per ulteriori informazioni, consulta Che cos'è un database vettoriale.
Per scoprire di più sull'isolamento in Vertex AI, consulta la panoramica dell'isolamento. Per informazioni su come configurare un flusso di lavoro di incorporamento in AlloyDB per PostgreSQL, consulta il flusso di lavoro di incorporamento di esempio.
Ottimizzazione del modello
Attività specializzate, come l'addestramento di un modello linguistico su terminologia specifica, potrebbero richiedere più addestramento di quanto puoi fare con il solo design dei prompt. In questo scenario, puoi utilizzare l'ottimizzazione del modello per migliorarne le prestazioni e fare in modo che si attenga a requisiti di output specifici.
Per ottimizzare un modello, devi creare un set di dati di addestramento e poi selezionare un metodo di ottimizzazione, ad esempio l'ottimizzazione supervisionata, l'ottimizzazione RLHF (apprendimento per rinforzo con feedback umano) o la distillazione del modello. Le dimensioni del set di dati e i metodi di ottimizzazione dipendono dal modello e dallo scopo dell'ottimizzazione. Ad esempio, le attività specializzate e di nicchia richiedono un set di dati più piccolo per ottenere miglioramenti significativi. Per scoprire di più sull'ottimizzazione dei modelli, consulta Ottimizzare i modelli di base per le lingue.
Valutare un modello
La valutazione del modello ti aiuta a valutare l'impatto di prompt e personalizzazioni sul rendimento di un modello. Ogni metodo di valutazione ha i suoi punti di forza e di debolezza da considerare. Ad esempio, le valutazioni basate su metriche possono essere automatizzate e scalate rapidamente con un modo quantificabile per misurare il rendimento. Tuttavia, le metriche possono semplificare eccessivamente i risultati e perdere il contesto e le sfumature del linguaggio naturale. Per attenuare queste carenze, utilizza una vasta gamma di metriche in combinazione con le valutazioni umane.
L'IA generativa su Vertex AI offre la valutazione affiancata automatica, che consente di confrontare l'output di due modelli con i dati empirici reali. Un terzo modello ti aiuta a selezionare le risposte di qualità superiore. La valutazione automatica affiancata è alla pari con quella dei valutatori umani, ma è più rapida e disponibile su richiesta. Tuttavia, per eseguire i confronti, questo metodo richiede un modello più grande di quelli che stai valutando, che può presentare bias inerenti. Dovresti quindi eseguire alcune valutazioni umane.
Per tutti i metodi di valutazione, è necessario un set di dati di valutazione. Un set di dati di valutazione include le coppie di prompt e dati di fatto (risposta ideale) che crei. Quando crei il set di dati, includi una serie diversificata di esempi in linea con la task che stai valutando per ottenere risultati significativi.
Esegui il deployment di un modello
Il deployment di un modello associa un endpoint e risorse di macchine fisiche al tuo modello per fornire previsioni online a bassa latenza. Non tutti i modelli richiedono il deployment. Ad esempio, i modelli di base di Google disponibili nell'IA generativa su Vertex AI hanno già endpoint. Gli endpoint sono specifici per il tuo progetto Google Cloud e sono disponibili immediatamente per il tuo utilizzo. Tuttavia, se ne ottimizzi uno, devi eseguirne il deployment in un endpoint.
Quando esegui il deployment di un modello, decidi se preferisci eseguire il deployment dei modelli in un ambiente completamente gestito o in un ambiente autogestito. In un ambiente completamente gestito, selezioni le risorse fisiche di cui hai bisogno, ad esempio il tipo di macchina e il tipo di acceleratore, dopodiché Vertex AI le esegue e le gestisce per te. Ad esempio, per attivare le previsioni online in cui Vertex AI gestisce le risorse di deployment per te, consulta Eseguire il deployment di un modello in un endpoint. In un ambiente autogestito, hai un controllo più granulare sulle tue risorse, ma devi gestirle autonomamente. Con gli ambienti self-managed, puoi pubblicare modelli su piattaforme come GKE.
Una volta deciso il tipo di ambiente in cui eseguire il deployment, tieni conto del traffico previsto, dei requisiti di latenza e del budget. Devi bilanciare questi fattori con le tue risorse fisiche. Ad esempio, se il costo ridotto è una priorità, potresti essere in grado di tollerare una latenza più elevata con macchine a basso costo. Gli ambienti di test sono un buon esempio di questo compromesso. Per saperne di più su come scegliere un tipo di macchina, consulta il notebook Determinare il tipo di macchina ideale da utilizzare per gli endpoint Vertex AI.
AI responsabile
L'IA generativa su Vertex AI è progettata tenendo conto dei principi dell'IA di Google. Tuttavia, è importante testare i modelli per assicurarsi che vengano utilizzati in modo sicuro e responsabile. A causa dell'incredibile versatilità degli LLM, è difficile prevedere risposte indesiderate o impreviste.
Quando sviluppi applicazioni per il tuo caso d'uso, tieni conto delle limitazioni dei modelli di AI generativa per poter mitigare adeguatamente i potenziali usi impropri e i problemi involontari. Un esempio di limitazione di un modello è che è buono solo quanto i dati che utilizzi. Se fornisci al modello dati non ottimali, come quelli imprecisi o incompleti, non puoi aspettarti prestazioni ottimali. Verifica che i dati di input e i prompt siano accurati. In caso contrario, il modello può avere prestazioni non ottimali o output errati. Per scoprire di più sulle limitazioni dei modelli di AI generativa, consulta IA responsabile.
Passaggi successivi
- Prova i tutorial sui notebook di Vertex AI.
- Scopri di più su MLOps (Operazioni di machine learning) per l'IA generativa.