Sviluppare un'applicazione di AI generativa

Questo documento ti aiuta a imparare ad affrontare le sfide in ogni fase dello 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à in mente un caso d'uso 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 la preparazione tecnica (funzionalità e infrastruttura) della tua organizzazione. Per informazioni su come valutare le tue funzionalità di AI e creare una roadmap per sfruttarne il potenziale, consulta AI Readiness Workshop. Se prevedi di sviluppare flussi di lavoro automatizzati dall'AI generativa, valuta se le persone devono essere incluse nel ciclo per le fasi decisionali critiche. La revisione umana può aiutare a prendere decisioni come garantire un uso 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 più terabyte di testo, immagini, codice o altri contenuti multimediali. I dati e l'architettura del modello consentono ai modelli di identificare pattern complessi e ottenere una comprensione profonda e contestuale, nonché di produrre nuovi contenuti come testo, immagini, musica o video basati sui 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 un addestramento esplicito per ogni attività. I modelli di base di AI generativa possono anche essere adattati per svolgere attività specifiche con alcune tecniche di prompt oppure possono essere ottimizzati con dati di addestramento aggiuntivi minimi.

I modelli linguistici di grandi dimensioni (LLM) vengono addestrati su testo e sono un esempio di modelli di base che si basano in genere su architetture di deep learning, come Transformer sviluppato da Google nel 2017. Gli LLM possono essere addestrati su miliardi di campioni di testo e altri contenuti e possono essere personalizzati per domini specifici.

Altri modelli multimodali estendono la capacità di un'applicazione di AI generativa di elaborare informazioni 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 nell'immagine. I modelli Gemini di Google sono stati sviluppati da zero per la multimodalità e possono elaborare senza problemi testo, immagini, video, audio e codice. Google CloudModel Garden e Vertex AI possono aiutarti a trovare e personalizzare una serie di modelli di base di Google, open source e di terze parti.

Scelta di un modello

Quando scegli un modello, considera la modalità, le dimensioni e il costo. Scegli il modello più conveniente che soddisfi comunque i tuoi requisiti di qualità e latenza della risposta.

  • Modalità: come descritto nella sezione precedente, la modalità di un modello corrisponde alle categorie di dati di alto livello per cui viene addestrato un modello, come 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 immagine, devi trovare un modello addestrato su dati di testo e immagine. 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.
    • Modelli Vertex AI offre un ampio elenco di modelli di AI generativa che puoi utilizzare.
    • Model Garden fornisce un elenco di offerte di modelli 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 latenza e costi più elevati, potresti dover sperimentare e valutare i modelli per determinare quale dimensione è più adatta al tuo caso d'uso.
  • Costo: il costo di un modello è correlato alle sue funzionalità, che di solito si riferiscono al numero di parametri del modello. I modelli possono anche essere misurati e addebitati in modo diverso. Ad esempio, alcuni modelli vengono addebitati in base al numero di token di input e output. Gli altri modelli vengono addebitati in base al numero di ore di nodo utilizzate durante il deployment del modello.

    • Per informazioni sui prezzi dei modelli di AI generativa su Vertex AI, consulta la pagina Prezzi di Vertex AI.

    • Per informazioni sul costo del deployment dei modelli su Google Kubernetes Engine (GKE), consulta Prezzi di GKE.

  • Funzionalità: non tutti i modelli supportano funzionalità come l'ottimizzazione e la distillazione. Se queste funzionalità sono importanti per te, controlla quelle supportate da ciascun modello.

Progettare 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 il pre-addestramento. Quando un modello fornisce previsioni, risponde con le istruzioni integrate.

Se vuoi ottenere un output specifico, puoi utilizzare strategie di progettazione dei prompt, ad esempio istruire il modello a completare l'input parziale o fornirgli esempi di risposte ideali. Per saperne di più, consulta la pagina Introduzione alla progettazione dei prompt.

Personalizzare un modello

Dopo la progettazione del prompt, potresti scoprire che le risposte di un modello funzionano bene, quindi non devi personalizzarle. Se il modello non funziona bene, ad esempio se genera allucinazioni, puoi utilizzare tecniche di personalizzazione aggiuntive. Le sezioni seguenti introducono queste tecniche e possono aiutarti a capire in che modo queste opzioni influiscono sull'output del modello.

Chiamate di funzione ed estensioni

La chiamata di funzione e le estensioni di Vertex AI ampliano le funzionalità del tuo modello. Considera i casi d'uso della tua applicazione e le situazioni 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 informazioni dal 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, richiedono l'inclusione delle credenziali nel codice.

Grounding

Il grounding si riferisce all'aumento delle risposte del modello ancorandole a fonti di informazione 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 comunemente utilizzata. 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 informazioni aggiornate. 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 saperne di più, vedi Che cos'è un database vettoriale.

Per scoprire di più sul grounding in Vertex AI, consulta la panoramica del grounding. Per informazioni su come configurare un flusso di lavoro di incorporamento in AlloyDB per PostgreSQL, consulta l'esempio di flusso di lavoro di incorporamento.

Ottimizzazione del modello

Attività specializzate, come l'addestramento di un modello linguistico su una terminologia specifica, potrebbero richiedere un addestramento più approfondito di quello che puoi ottenere con la sola progettazione dei prompt. In questo scenario, puoi utilizzare l'ottimizzazione del modello per migliorare le prestazioni e fare in modo che il modello rispetti 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 con apprendimento per rinforzo con feedback umano (RLHF) o la distillazione del modello. Le dimensioni del set di dati e i metodi di ottimizzazione dipendono dal modello e da ciò per cui stai eseguendo l'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 del modello, consulta Ottimizzare i modelli di base del linguaggio.

Valutare un modello

La valutazione del modello ti aiuta a valutare in che modo i prompt e le personalizzazioni influiscono sulle prestazioni di un modello. Ogni metodo di valutazione presenta punti di forza e di debolezza da considerare. Ad esempio, le valutazioni basate sulle metriche possono essere automatizzate e scalate rapidamente con un modo quantificabile per misurare il rendimento. Tuttavia, le metriche possono semplificare eccessivamente i risultati e non tenere conto del contesto e delle sfumature del linguaggio naturale. Per mitigare queste carenze, utilizza un'ampia gamma di metriche in combinazione con valutazioni umane.

L'AI generativa su Vertex AI offre la valutazione affiancata automatica, che ti 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 i 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 intrinseci. Pertanto, dovresti comunque eseguire alcune valutazioni umane.

Per tutti i metodi di valutazione, è necessario un set di dati di valutazione. Un set di dati di valutazione include coppie di prompt e dati di fatto (risposta ideale) che crei. Quando crei il set di dati, includi un insieme diversificato di esempi in linea con l'attività che stai valutando per ottenere risultati significativi.

Esegui il deployment di un modello

Il deployment di un modello associa un endpoint e risorse macchina fisiche al modello per fornire previsioni online a bassa latenza. Non tutti i modelli richiedono il deployment. Ad esempio, i foundation model di Google disponibili nell'AI generativa su Vertex AI hanno già endpoint. Gli endpoint sono specifici per il tuo progetto Google Cloud e sono immediatamente disponibili per l'uso. Tuttavia, se regoli uno di questi modelli, 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 autogestito. In un ambiente completamente gestito, selezioni le risorse fisiche di cui hai bisogno, come il tipo di macchina e il tipo di acceleratore, quindi Vertex AI crea un'istanza e gestisce le risorse per te. Ad esempio, per abilitare 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 le gestisci in autonomia. Con gli ambienti autogestiti, puoi gestire modelli su piattaforme come GKE.

Dopo aver deciso il tipo di ambiente in cui eseguire il deployment, considera il traffico previsto, i requisiti di latenza e il budget. Devi bilanciare questi fattori con le tue risorse fisiche. Ad esempio, se la priorità è un costo inferiore, potresti essere in grado di tollerare una latenza maggiore con macchine a costi inferiori. Gli ambienti di test sono un buon esempio di questo compromesso. Per saperne di più su come scegliere un tipo di macchina, consulta il blocco note Determinare il tipo di macchina ideale da utilizzare per gli endpoint Vertex AI.

AI responsabile

L'AI generativa su Vertex AI è progettata tenendo presenti i principi dell'AI 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 presente i limiti dei modelli di AI generativa in modo da poter mitigare correttamente potenziali usi impropri e problemi imprevisti. Un esempio di limitazione del modello è che un modello è valido solo quanto i dati che utilizzi. Se fornisci al modello dati non ottimali, ad esempio dati 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 falsi. Per scoprire di più sulle limitazioni dei modelli di AI generativa, consulta AI responsabile.

Passaggi successivi