Sviluppa un'applicazione di AI generativa

Last reviewed 2024-03-26 UTC

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 per soddisfare le 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 quest'ultimo sia adatto all'AI generativa. Per informazioni su come sviluppare un caso d'uso, vedi 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 della tua organizzazione (funzionalità e infrastruttura). Per informazioni su come valutare le tue funzionalità di IA 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 loop per le fasi decisionali critiche. La revisione umana può aiutare a prendere decisioni quali garantire un uso responsabile, soddisfare specifici requisiti di controllo qualità o monitorare i contenuti generati.

Modelli di AI generativa

I modelli di base di IA generativa vengono addestrati su set di dati di svariati terabyte di testo, immagini, codice o altri contenuti multimediali. I dati e l'architettura del modello consentono ai modelli di identificare pattern complessi e di acquisire una profonda comprensione del contesto, nonché di produrre nuovi contenuti basati sui dati di addestramento, come testo, immagini, musica o video.

I modelli di base sono il nucleo su cui si basano numerose applicazioni di AI generativa. Le funzionalità dei modelli si traducono in capacità emergenti: con una semplice istruzione tramite prompt di testo, i modelli di base di AI generativa possono imparare a eseguire una serie di attività, come tradurre linguaggi, 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 eseguire attività specifiche con alcune tecniche di prompt oppure possono essere perfezionati con dati di addestramento aggiuntivi minimi.

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

Altri modelli multimodali estendono la capacità di un'applicazione di AI generativa di elaborare informazioni da diverse 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 realizzati da zero per la multimodalità e sono in grado di ragionare perfettamente su testo, immagini, video, audio e codice. Model Garden di Google Cloud e Vertex AI possono aiutarti a trovare e personalizzare una gamma di modelli di base da origini Google, open source e di terze parti.

Scelta di un modello

Quando scegli un modello, considera la modalità, le dimensioni e il costo del modello. 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 da testo a immagine, devi trovare un modello addestrato con 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 costi e latenza potrebbero essere più elevati.
    • Modelli Vertex AI offre un ampio elenco di modelli di IA generativa che puoi utilizzare.
    • Model Garden fornisce un elenco di offerte di modelli ML proprietari e open source su Google Cloud.
  • Dimensioni: la dimensione di un modello viene generalmente misurata in base al numero di parametri. In generale, un modello più grande può apprendere modelli 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, potrebbe essere necessario sperimentare e valutare i modelli per determinare quale dimensione funziona meglio per il tuo caso d'uso.
  • Costo: il costo di un modello è legato alle sue capacità, che di solito è correlato al conteggio dei 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 nodo utilizzate durante il deployment del modello.

    • Per informazioni sui prezzi dei modelli di AI generativa su Vertex AI, consulta i prezzi di Vertex AI.

    • Per informazioni sui costi di deployment dei modelli su Google Kubernetes Engine (GKE), consulta i prezzi di GKE.

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

Progettare i prompt

La progettazione di prompt è il processo di creazione di coppie di prompt e risposta per fornire ai modelli linguistici contesto e istruzioni aggiuntivi. Dopo aver creato i prompt, forniscili al modello come set di dati di prompt per il preaddestramento. Quando un modello pubblica previsioni, risponde con le tue istruzioni integrate.

Se vuoi ottenere un output specifico, puoi utilizzare strategie di progettazione dei prompt, ad esempio istruire il modello di completare l'input parziale o fornire al modello esempi di risposte ideali. Per ulteriori informazioni, consulta Introduzione alla progettazione dei prompt.

Personalizza un modello

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

Chiamate di funzione ed estensioni

Le chiamate di funzione e Vertex AI Extensions espandono le capacità del tuo modello. Considera i casi d'uso per la tua applicazione e i casi in cui l'utilizzo di un solo modello potrebbe non essere sufficiente. Puoi assistere il modello aggiungendo chiamate di funzione o estensioni. Ad esempio, il modello può estrarre le informazioni del calendario dal testo e utilizzare un'estensione per trovare e prenotare una prenotazione.

Sebbene sia possibile utilizzare le chiamate di funzione e le estensioni in modo intercambiabile, esiste alcune differenze di alto livello. La chiamata di funzione è un'operazione sincrona e non devi includere le credenziali. Le estensioni Vertex AI offrono 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 chiama automaticamente le funzioni, le estensioni richiedono di includere le credenziali nel codice.

Grounding

Per collegamento si intende l'aumento delle risposte del modello ancorandole a fonti di informazioni verificabili. Per mettere a terra un modello, lo colleghi a un'origine dati. Il grounding di un modello consente di migliorare l'affidabilità dei contenuti generati riducendo le allucinazioni.

La generazione aumentata del recupero (RAG) è una tecnica di grounding comunemente utilizzata. RAG utilizza la funzionalità di ricerca per trovare informazioni pertinenti, quindi le aggiunge a un prompt del modello. Quando utilizzi 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 maggiori informazioni, consulta Che cos'è un database vettoriale.

Per scoprire di più sul grounding in Vertex AI, consulta Panoramica sul 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 con una terminologia specifica, potrebbero richiedere più formazione rispetto a quella che si può fare con la sola progettazione dei prompt. In questo scenario, puoi utilizzare l'ottimizzazione del modello per migliorare le prestazioni e rispettare i requisiti di output specifici.

Per ottimizzare un modello, devi creare un set di dati di addestramento e poi selezionare un metodo di ottimizzazione, come ottimizzazione supervisionato, apprendimento per rinforzo dall'ottimizzazione con feedback umano (RLHF) o distillazione del modello. La dimensione del set di dati e i metodi di ottimizzazione dipenderanno dal modello e dall'obiettivo dell'ottimizzazione. Ad esempio, le attività specializzate di nicchia richiedono un set di dati più piccolo per ottenere miglioramenti significativi. Per scoprire di più sull'ottimizzazione del modello, consulta Ottimizzazione dei modelli di base linguistici.

valuta un modello

La valutazione del modello consente di valutare in che modo i prompt e le personalizzazioni influiscono sulle prestazioni di un modello. Ogni metodo di valutazione ha i propri punti deboli e punti di forza da considerare. Ad esempio, le valutazioni basate sulle metriche possono essere automatizzate e scalate rapidamente con un modo quantificabile di misurare il rendimento. Tuttavia, le metriche possono semplificare eccessivamente i risultati e tralasciare il contesto e le sfumature del linguaggio naturale. Per ovviare a questi difetti, utilizza un'ampia gamma di metriche in combinazione con 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 risposte di qualità superiore. La valutazione automatica affiancata è alla pari con quella dei valutatori umani, ma è più rapida e disponibile on demand. Tuttavia, per eseguire i confronti, questo metodo richiede un modello più grande dei modelli che stai valutando e che possono 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) create da te. Quando crei il tuo set di dati, includi un insieme eterogeneo di esempi in linea con l'attività che stai valutando per ottenere risultati significativi.

Deployment di un modello

Il deployment di un modello associa un endpoint e risorse della macchina fisica al 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 dispongono già di endpoint. Gli endpoint sono specifici del tuo progetto Google Cloud e sono immediatamente disponibili per l'utilizzo. Tuttavia, se ottimizzi uno di questi modelli, devi eseguirne il deployment su 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, puoi selezionare 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 puoi gestirle autonomamente. Con gli ambienti autogestiti, puoi pubblicare modelli su piattaforme come GKE.

Dopo aver deciso il tipo di ambiente in cui eseguire il deployment, considera il traffico, i requisiti di latenza e il budget previsti. Devi bilanciare questi fattori con le tue risorse fisiche. Ad esempio, se la priorità è un costo inferiore, potresti tollerare una latenza più elevata con macchine a costo inferiore. Gli ambienti di test sono un buon esempio di questo compromesso. Per ulteriori informazioni 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'IA generativa su Vertex AI è progettata sulla base dei principi dell'IA di Google. Tuttavia, è importante testare i modelli per assicurarne l'uso sicuro e responsabile. Data l'incredibile versatilità degli LLM, è difficile prevedere risposte non intenzionali o impreviste.

Quando sviluppi applicazioni per il tuo caso d'uso, considera i limiti dei modelli di AI generativa in modo da mitigare correttamente i potenziali usi impropri e i problemi involontari. Un esempio di limitazione del modello è che la qualità del modello è pari a quella dei 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 potrebbe avere prestazioni non ottimali o output falsi. Per scoprire di più sulle limitazioni del modello di AI generativa, consulta IA responsabile.

Passaggi successivi