PaLM AI | L’IA generativa di Google fatta in casa

Google's in-house generative AI, PaLM AI

Introduzione

Dal lancio dei modelli di IA generativa come i modelli GPT (Generative Pre-trained Transformers) di OpenAI, in particolare ChatGPT, Google è sempre stato sul punto di creare e lanciare un modello di intelligenza artificiale simile. Sebbene Google sia stato il primo a introdurre l’argomento dei Transformers attraverso il modello BERT al mondo, attraverso il suo articolo “Attention is All You Need”, non è riuscito a creare un modello di linguaggio di grandi dimensioni altrettanto potente ed efficiente come quelli sviluppati da OpenAI. Bard AI, introdotto per la prima volta da Google, sembrava non attirare molta attenzione. Di recente Google ha rilasciato l’accesso all’API di PaLM (Pathways Language Model), che si trova dietro Bard AI. In questa guida, vedremo come iniziare con l’API di PaLM.

Obiettivi di apprendimento

  • Imparare come lavorare con il Pathways Language Model
  • Capire le principali caratteristiche offerte da PaLM
  • Creare applicazioni con PaLM 2
  • Sfruttare MakerSuite per la prototipazione rapida di modelli di linguaggio di grandi dimensioni
  • Capire come lavorare con l’API di PaLM

Questo articolo è stato pubblicato come parte del Data Science Blogathon.

Che cos’è PaLM?

PaLM, acronimo di Pathways Language Model, è uno dei modelli di linguaggio di grandi dimensioni sviluppati internamente da Google. È stato introdotto per la prima volta nell’aprile 2022. Recentemente, alcuni mesi fa, Google ha annunciato la versione successiva di questo modello, ovvero PaLM 2. Google afferma che PaLM è migliore in termini di capacità multilingue ed è efficiente dal punto di vista energetico rispetto alla versione precedente.

PaLM 2 non è stato addestrato nella lingua inglese, ma è stato invece un mix di oltre cento lingue, che includeva anche linguaggi di programmazione e matematica. Tutto ciò è stato possibile senza compromettere le prestazioni di comprensione della lingua inglese. Nel complesso, PaLM 2, l’attuale versione di PaLM di Google, eccellerà in molte attività, tra cui la generazione di codici, la comprensione di diverse lingue, le capacità di ragionamento e molto altro ancora.

Come il modello GPT di OpenAI viene fornito in diverse varianti come Davinci, Ada, eccetera, PaLM 2 viene fornito in 4 diverse dimensioni con i nomi Gecko, Otter, Bison e Unicorn (dal più piccolo al più grande). La dimensione Gecko di PaLM 2 è in grado di funzionare anche su dispositivi mobili, aprendo così la strada agli sviluppatori di app mobili per considerare l’utilizzo di questo modello di linguaggio di grandi dimensioni nelle loro applicazioni mobili.

Qual è la differenza tra Bard e PaLM?

Bard è un’intelligenza artificiale conversazionale sperimentale di Google che è alimentata da LaMDA (Language Model for Dialogue Applications), un modello di intelligenza artificiale conversazionale costruito su Transformers, utilizzato per creare applicazioni basate sul dialogo. Il modello LaMDA è composto da 137 miliardi di parametri. Bard utilizza diversi tipi di dataset, composti sia da testo che da dati di codice, per creare dialoghi coinvolgenti.

PaLM (Pathways Language Model) alimenta successivamente Bard. Attualmente, PaLM 2, appena creato, alimenta Bard. PaLM 2 è stato ampiamente addestrato su dati multilingue e di diversi tipi di linguaggio, il che lo rende un ottimo potenziatore per il già esistente Bard. Ciò consente a Bard di estendere le sue capacità non solo alla conversazione di dialoghi, ma anche alla generazione di codici funzionanti nel campo della programmazione, espandendo le sue conoscenze a oltre 20 diversi linguaggi di programmazione.

PaLM 2 alimenta Bard e lo integra con i servizi di Google come Gmail, Google Docs e Google Sheets, consentendo a Bard di inviare informazioni direttamente a questi servizi. Le recenti comunicazioni hanno anche affermato che è stato integrato con molte altre applicazioni di terze parti, come Adobe Fire Fly Image Generator e persino Adobe Express in futuro.

MakerSuite: Accesso all’API di PaLM

Per accedere o testare PaLM 2, il nuovo modello sviluppato internamente da Google, è necessario avere accesso all’API di PaLM. L’API di PaLM ci consente di interagire con diversi modelli di PaLM 2, in modo simile all’API di OpenAI che consente di interagire con i modelli GPT. Ci sono due modi per ottenere accesso all’API di PaLM di Google. Uno è attraverso Vertex AI. L’API di PaLM è prontamente disponibile in Vertex AI su Google Cloud. Tuttavia, non tutti possono avere un account GCP per accedere a questa API. Quindi prenderemo la seconda via, ovvero attraverso MakerSuite.

MakerSuite di Google fornisce un modo basato su interfaccia visiva per interagire con l’API di PaLM. È un IDE basato su browser per testare e prototipare modelli di intelligenza artificiale generativi. In poche parole, è il modo più veloce per iniziare a sperimentare con idee di intelligenza artificiale generativa. MakerSuite ci consente di lavorare direttamente con modelli generativi attraverso la sua interfaccia utente semplice o, se vogliamo, possiamo persino generare un token API in modo da poter sfruttare la potenza di PaLM 2 attraverso l’API nel codice. In questa guida, esploreremo entrambe le modalità: iniziare nell’interfaccia utente basata su web di MakerSuite e lavorare con l’API di PaLM tramite codice Python.

Accedi per iniziare il tuo percorso su MarkerSuite

Per iniziare, clicca qui per essere reindirizzato su MakerSuite, oppure puoi semplicemente cercarlo su Google. Successivamente, registrati con il tuo account Gmail. Poi vedrai quanto segue sul tuo schermo.

Compila tutto e infine clicca su “Iscriviti con il mio account Google” per unirti alla lista d’attesa per accedere alla PaLM API e all’IDE di MakerSuite. Riceverai quindi una email entro 7 giorni che ti informerà di aver ottenuto l’accesso all’IDE di MakerSuite e alla PaLM API. Dopo aver ottenuto l’accesso a MakerSuite, apri il sito web con l’indirizzo email registrato. La home page di MakerSuite sarà simile a

Come possiamo vedere, sulla home page, possiamo visualizzare 3 tipi di Prompts. MakerSuite ci consente di selezionare 3 tipi di Prompts, ovvero Text Prompt, Data Prompt e Chat Prompt, ognuno con la propria importanza, che ci permettono di interagire visivamente con la PaLM 2 API. Per interazioni basate sul codice, puoi trovare il pulsante “Crea una chiave API” qui sotto, che ci consente di creare un’applicazione per lavorare nel nostro codice per accedere ai modelli PaLM 2. Copriremo i tipi di Prompts Text Prompt e Data Prompt e impareremo anche come sfruttare l’API PaLM nel codice.

Prototipazione rapida con MakerSuite

Come abbiamo visto, ci sono tre diversi tipi di Prompts con cui lavorare in MakerSuite, inizieremo con il Text Prompt. Nel dashboard di MakerSuite, seleziona il Text Prompt.

Scrivi il tuo Prompt

Lo spazio bianco sotto “Scrivi il tuo prompt” è dove scriveremo il Prompt, che verrà poi interpretato dal modello PaLM 2. Possiamo scrivere qualsiasi Prompt, come riassumere un paragrafo, chiedere all’IA generativa di creare una poesia, risolvere quesiti di ragionamento logico, qualsiasi cosa tu voglia. Chiediamo al modello di generare un codice Python per calcolare la serie di Fibonacci per una determinata lunghezza “n” e poi clicchiamo su Esegui.

Codice Python per la Query Specificata

L’IA generativa ci ha fornito il codice Python per la query specificata. È possibile vederlo nel testo evidenziato nell’immagine. Il modello ha effettivamente fornito un codice funzionante per la query richiesta. Qui sotto possiamo vedere “Text Bison” e “Text Preview”. “Text Preview” ci permette di vedere il Prompt che abbiamo fornito al modello. Osserviamolo cliccandoci sopra.

Osserviamo anche che il limite massimo di token che può essere inviato è 8196, che è paragonabile ai modelli GPT. Ora, cosa significa “Text Bison”? Se ricordiamo chiaramente, ho dichiarato un po’ di tempo fa che PaLM 2 viene fornito in diverse dimensioni (Gecko, Otter, Bison e Unicon). Quindi il modello utilizzato qui è il modello Text Bison. Clicchiamo su di esso per vedere cosa visualizza.

Contiene informazioni sul modello utilizzato. Attualmente, MakerSuite ci presenta solo il modello Text Bison. La temperatura aumenta la variabilità/creatività all’interno del modello, anche se un valore di temperatura elevato può talvolta indurre il modello a creare cose casuali. L’output massimo è attualmente impostato su 1, quindi otteniamo una singola risposta alla query posta. Tuttavia, possiamo aumentare questo valore, consentendo al modello di generare più risposte a una singola query. Le impostazioni di sicurezza ci permettono di regolare il modello, dicendogli di bloccare alcune o la maggior parte dei contenuti dannosi, che possono includere contenuti tossici, derogatori, violenti, ecc.

Inserisci l’input di prova

Le impostazioni avanzate ci permettono di configurare la lunghezza dell’output in token, i parametri Top K e Top P. Quindi il Text Prompt di MakerSuite ci permette di scrivere qualsiasi Prompt di base. C’è un’altra cosa chiamata “Inserisci l’input di prova”. Proviamolo

Qui nella sezione Prompt, ho impostato un contesto per il modello, dicendo che qualsiasi domanda che diamo all’IA generativa, deve tenere conto che il suo output deve essere generato come se il Large Language Model stesse cercando di spiegarlo a un bambino di 5 anni. Quindi il Prompt che abbiamo scritto è “Spiega le domande sottostanti come se lo stessi spiegando a un bambino di 5 anni”. Poi clicchiamo su “Inserisci l’input di prova”. Vediamo che è apparsa una casella verde chiamata input nello spazio bianco. Allo stesso tempo, sopra il pulsante “Esegui” è apparsa la scritta “Prova il tuo prompt”. Espandiamola

Quando espandiamo “Prova il tuo prompt”, vediamo una tabella con due colonne INPUT e OUTPUT. Il valore predefinito di INPUT è input, che abbiamo cambiato in query qui. Quindi qualsiasi query che inseriamo nella colonna INPUT, viene inserita al posto di “query” nello spazio bianco nella sezione Prompt. Nella seconda immagine, abbiamo dato la query come “Machine Learning”, che è stata sostituita al posto di “query” nello spazio del Prompt. Dopo aver inserito la query e cliccato sul pulsante Esegui, viene generato l’output nella sezione OUTPUT, che possiamo vedere qui sotto. L’output generato sembra ragionevolmente buono perché ha cercato di spiegare l’apprendimento automatico in modo semplice in modo che anche un bambino di 5 anni possa capire.

Introduzione ai Data Prompts – MakerSuite

In questa sezione, lavoreremo sui Data Prompts forniti da MakerSuite. Per farlo, vai alla homepage di MakerSuite e clicca su Data Prompts. Sarai presentato con il seguente

Colonna di input

Come suggerisce il nome, nei Data Prompts dobbiamo fornire dati di esempio al modello, in modo che imparando da essi, il modello sia in grado di generare risposte alle nuove domande. Ogni esempio contiene un input nella colonna INPUT, che rappresenta la query dell’utente e l’output atteso per la query dell’utente è presente nella colonna OUTPUT. In questo modo siamo in grado di fornire alcuni esempi al modello. Il modello imparerà quindi da questi esempi per generare un nuovo output per la nuova query. Proviamolo

Qui nella colonna INPUT, abbiamo fornito i nomi di due famosi giocatori di cricket, Virat Kohli e David Warner. Nella colonna OUTPUT, abbiamo fornito i rispettivi paesi per cui giocano. Ora per testare il modello Text Bison, l’INPUT che abbiamo fornito è Root, un famoso giocatore di cricket che gioca per l’Inghilterra. Quindi ci aspettiamo che l’OUTPUT sia l’Inghilterra. Proviamo adesso.

Come previsto, il LLM ha generato la risposta corretta alla query di test. Il modello ha capito che i dati forniti sono i nomi dei giocatori di cricket e l’output che deve generare è il paese per cui giocano. Se necessario, possiamo anche fornire un contesto prima degli esempi. La cosa che abbiamo fatto qui è chiamata Few Shot Learning, dove nella sezione Prompt, diamo alcuni esempi al Large Language Model e ci aspettiamo che generi un output simile quando viene fornita una nuova query. Ecco come funzionano i Data Prompts in MakerSuite, sicuramente è una funzionalità che lo differenzia da ChatGPT.

Interazione con PaLM 2 utilizzando l’API di PaLM

Per interagire con PaLM 2 tramite codice, abbiamo bisogno di avere la chiave API di PaLM. Questa può essere generata tramite MakerSuite stessa. A tal fine, dobbiamo dirigerci alla homepage di MakerSuite. Sulla homepage, sotto i 3 tipi di prompt, vediamo un’opzione per ottenere la chiave API. Cliccaci sopra per generare una nuova chiave API

Installare le librerie necessarie

Clicca su “Crea chiave API nel nuovo progetto” per generare una nuova chiave API. Dopo che viene generata, possiamo trovarla di seguito. Clicca sulla chiave API per copiare la nuova chiave generata. Ora iniziamo installando le librerie necessarie. Lavoreremo con Google Colab per questa demo.

$ !pip install google-generativeai

Questo scaricherà la libreria di Intelligenza Artificiale Generativa di Google con cui interagiremo con PaLM 2. Inizieremo assegnando la chiave API alla variabile d’ambiente, che può essere fatto come segue

import google.generativeai as palm
import os


os.environ['API_KEY']= 'La tua chiave API'
palm.configure(api_key=os.environ['API_KEY'])

Prima forniamo la chiave API a os.environ[‘API_KEY’], quindi passiamo questa API all’oggetto palm.configure(). Fino ad ora, se il codice viene eseguito con successo, allora siamo pronti per iniziare a lavorare con PaLM 2. Proviamo la parte di generazione di testo dell’IA di PaLM, che utilizza il modello Text-Bison per rispondere alle domande.

Codice

Il codice sarà:

response = palm.generate_text(prompt="Dimmi una barzelletta")
print(response.result)

Il modello Text-Bison di PaLM 2 funziona perfettamente. Espandiamolo un po’ fornendo alcuni parametri aggiuntivi al modello, così da capire cosa altro può essere aggiunto al modello per risultati più accurati/corretti.

prompt = """
Sei un traduttore esperto. Puoi tradurre qualsiasi lingua in qualsiasi lingua.

Traduci quanto segue dall'inglese all'hindi:


Come stai?.
"""


completion = palm.generate_text(
    model='models/text-bison-001',
    prompt=prompt,
    temperature=0,
    max_output_tokens=800,
)


print(completion.result)

Qui abbiamo fornito un prompt al modello. Nel prompt, impostiamo un contesto dicendo che il modello è un traduttore esperto che può tradurre qualsiasi lingua in qualsiasi lingua. E poi forniamo una query all’interno del prompt stesso per tradurre una frase dall’inglese all’hindi. Quindi specifichiamo il modello con cui lavoreremo e sarà il modello Text Bison perché stiamo generando testo qui. Successivamente, la temperatura viene impostata a 0 per zero variabilità e il numero massimo di token di output viene impostato a 800. Possiamo vedere nell’output che il modello è riuscito a tradurre esattamente la frase data dall’inglese all’hindi.

Questo è un esempio della parte di generazione di testo dell’IA di PaLM. C’è anche un prompt di tipo chat che puoi consultare nella loro documentazione per capire come funziona. È molto simile a quello che abbiamo visto qui. Nel prompt di chat, devi fornire esempi di cronologia delle chat tra l’utente e l’IA, in modo che l’IA possa imparare come conversare con l’utente e utilizzare questa conoscenza per chattare senza soluzione di continuità con l’utente.

Applicazioni e casi d’uso

Applicazioni mobili

PaLM 2 è disponibile in 4 diverse dimensioni. La dimensione più piccola di PaLM 2, nota come Geck, è stata progettata per essere integrata nelle applicazioni mobili. Questo include applicazioni di Realtà Aumentata e Realtà Virtuale, dove questa Intelligenza Artificiale Generativa può essere utilizzata per creare paesaggi realistici. Inoltre, può essere applicata a vari tipi di Chatbot/Assistenti, che vanno dai Chatbot di Supporto ai Chatbot Personali.

Duet AI per Google Cloud

Duet AI è un Generative AI collaborativo sempre attivo alimentato da PaLM 2 sviluppato da Google per la piattaforma Google Cloud. Costruire, proteggere e scalare le applicazioni su Google Cloud è stato un processo lungo. Ora, con Duet, il processo diventerà molto più fluido per gli sviluppatori Cloud. Duet analizzerà ciò che stai facendo nel cloud e, in base a ciò, ti assisterà e accelererà il tuo processo di sviluppo nel cloud. Duet AI si adatterà a qualsiasi tipo di abilità, che tu sia un principiante completo o un esperto del cloud.

Analisi di immagini mediche / Risposte a domande mediche

Med-PaLM, un Large Language Model basato su PaLM, è in grado di analizzare immagini mediche complesse e persino fornire risposte di alta qualità a domande mediche. Quando Med-PaLM è stato testato negli esami di licenza per medici degli Stati Uniti, ha raggiunto il 67% (dove la percentuale media per gli esseri umani era del 60%). Pertanto, Med-PaLM può essere ottimizzato ulteriormente e sfruttato per analizzare immagini mediche, dalle radiografie al cancro al seno, dove l’IA generativa non solo dice se il paziente è malato o no, ma dice anche cosa potrebbe aver causato questo, cosa può accadere in futuro e come prendersene cura. Med-PaLM può essere utilizzato anche per rispondere a domande cliniche.

iCAD si è associato a Google per sviluppare ulteriormente Med-PaLM principalmente nell’analisi del cancro al seno per renderlo utilizzabile in un contesto clinico. Google si è anche associato a Northwestern Medicine per migliorare le capacità di intelligenza artificiale nel settore della salute, al fine di individuare condizioni ad alto rischio e contemporaneamente ridurre il tempo di screening/diagnosi.

Ruolo di PaLM nelle applicazioni di Google

Google ha pianificato di integrare PaLM 2 con Gmail per gestire compiti come la sintesi e la riscrittura delle e-mail in un tono formale, tra le altre funzioni. Inoltre, in Google Docs, PaLM 2 verrà utilizzato per il brainstorming, la correzione di bozze e la riscrittura. Google sta persino cercando di incorporarlo in Google Slides, per inserire immagini, testo e video generati automaticamente nelle diapositive. Sheets utilizzerà l’IA per analizzare automaticamente i dati, generare formule e fornire altre funzioni avanzate. Hanno annunciato che tutte queste funzionalità basate su intelligenza artificiale verranno rilasciate gradualmente nel corso di un anno. Per quanto riguarda BARD, un’intelligenza artificiale sperimentale sviluppata da Google, è già alimentata da PaLM 2.

Conclusione

In questa guida, abbiamo appreso il Generative AI di Google, ovvero PaLM (Pathways Language Model). Abbiamo visto come differisce da BARD e abbiamo anche compreso come PaLM 2 sia significativamente migliore rispetto alle versioni precedenti. Successivamente, abbiamo discusso delle dimensioni dei modelli offerti da PaLM 2. Infine, siamo passati alla parte pratica, in cui abbiamo visto come iniziare con PaLM 2. Ci siamo iscritti a MakerSuite e poi l’abbiamo esplorato, giocando con diversi tipi di Prompts offerti da MakerSuite e infine creando un’API per interagire con PaLM 2 tramite il codice.

Punti chiave

Alcuni dei punti chiave di questa guida includono:

  • PaLM 2 è un Large Language Model generativo creato e mantenuto da Google
  • Si può lavorare facilmente con PaLM 2 per creare le proprie applicazioni attraverso Vertex AI in Google Cloud.
  • PaLM 2 è in grado di comprendere diverse lingue ed è in grado di generare codici in più di 20 lingue diverse e ha buone capacità di ragionamento
  • MakerSuite è uno strumento visivo sviluppato da Google, che consente la prototipazione rapida con i Large Language Models
  • I diversi tipi di Prompt di MakerSuite sono adatti per testare diverse applicazioni

Domande frequenti

I media mostrati in questo articolo non sono di proprietà di Analytics Vidhya e sono utilizzati a discrezione dell’autore.