Codey L’IA generativa di Google per le attività di codifica

Codey, l'IA generativa di Google per la codifica

Introduzione

Sin dalla sua introduzione, OpenAI ha rilasciato innumerevoli Generative AI e Large Language Models basati sui loro framework GPT di alto livello, inclusa ChatGPT, la loro Generative Conversational AI. Dopo la creazione di successo dei modelli di linguaggio conversazionale, gli sviluppatori stanno costantemente cercando di creare Large Language Models che possano sviluppare o assistere gli sviluppatori nella codifica delle applicazioni. Molte aziende hanno iniziato a fare ricerca su questi LLM, inclusa OpenAI, che aiuterebbero gli sviluppatori a costruire applicazioni più velocemente con i LLM che conoscono i linguaggi di programmazione. Google ha creato Codey, un modello raffinato di PaLM 2, in grado di svolgere diverse attività di codifica.

Leggi anche: PaLM 2 di Google per affrontare l’effetto GPT-4

Obiettivi di apprendimento

  • Comprendere come è stato creato Codey
  • Imparare come lavorare con Codey sulla piattaforma Google Cloud
  • Comprendere il tipo di input che Codey può accettare
  • Esplorare e interagire con diversi modelli all’interno di Codey
  • Sfruttare Codey per generare codice Python funzionante
  • Testare Codey per vedere come identifica e risolve gli errori nel codice

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

Cosa è Codey?

Codey è uno dei modelli fondamentali creati e rilasciati di recente da Google. Codey si basa sul PaLM 2 Large Language Model. Codey è un modello raffinato del PaLM 2 Large Language Model. Codey è stato raffinato utilizzando un ampio corpus di codici di alta qualità e documenti di codifica. Google afferma che Codey può scrivere codice in oltre 20+ linguaggi di programmazione, tra cui Python, C, Javascript, Java e altri ancora. Codey è stato utilizzato per migliorare i prodotti di Google come Google Colab, Android Studio, ecc.

Codey è stato creato per soddisfare tre scopi. Uno è il completamento del codice. Codey può analizzare il tuo codice e fare suggerimenti preziosi basati su di esso. È quindi consapevole del contesto del codice che stai scrivendo. Un altro scopo è la generazione di codice. Codey può generare codice completo e funzionante in qualsiasi linguaggio, a condizione di fornire l’input corretto. Infine, puoi chattare con il tuo codice. Puoi fornire il tuo codice a Codey e chattare con Codey in relazione al codice. Codey è ora disponibile al pubblico tramite Vertex AI nella piattaforma Google Cloud.

Leggi anche: Med-PaLM 2 di Google sarà l’IA medica più avanzata

Iniziare con Codey

Per lavorare con Codey di Google, è necessario avere un account con la piattaforma Google Cloud. La piattaforma Google Cloud ospita il servizio chiamato Vertex AI, che contiene tutti i modelli sviluppati da Google e anche i modelli open source raffinati da Google. Google ha reso disponibili di recente i modelli fondamentali di Google, tra cui PaLM 2, Codey, Chirp e Imagen. Gli utenti di GCP possono trovarli qui.

Dopo aver creato un account nella piattaforma Google Cloud, è necessario abilitare l’API Vertex AI per lavorare con Vertex AI. Per fare ciò, vai su API e servizi -> Libreria, quindi cerca l’API Vertex AI. Possiamo vedere l’API Vertex AI nella prima immagine qui sotto. Fai clic su di essa. Dopo aver cliccato su di essa, troveremo una casella blu con scritto “Abilita API”. Fai clic sulla casella blu per abilitare l’API, che avrà un aspetto simile alla seconda immagine.

Questa conferma ci consente di lavorare con tutti i servizi di intelligenza artificiale forniti da Google, inclusi i modelli fondamentali di Google come Chirp, Imagen e Codey.

Generazione di codice con Codey

In questa sezione vedremo la generazione di codice con il modello Codey. Il prerequisito per questo sarà l’abilitazione dell’API Vertex AI in GCP, che abbiamo già fatto. La spiegazione del codice qui avverrà in Google Colab. Prima di passare al codice, dobbiamo installare alcuni pacchetti necessari per lavorare con Vertex AI, che faremo tramite pip.

!pip install shapely

!pip install google-cloud-aiplatform>=1.27.0

Shapley e google-cloud-aiplatform sono gli unici due pacchetti necessari per iniziare a lavorare con il modello Codey. Ora importeremo i pacchetti e autenticheremo il nostro account Google, in modo che Colab possa utilizzare le nostre credenziali GCP per eseguire il modello Codey da Vertex AI.

from google.colab import auth as google_auth
google_auth.authenticate_user()


import vertexai
from vertexai.preview.language_models import CodeGenerationModel


vertexai.init(project="your_project_id", location="us-west1")
parameters = {
    "temperature": 0.3,
    "max_output_tokens": 1024
}
  • Innanzitutto, importiamo il google_auth dal pacchetto Google.colab. Questo è necessario perché ci aiuterà ad autenticarci consentendo a Colab di utilizzare le nostre credenziali per eseguire il modello Codey da Vertex AI.
  • Poi importiamo vertex, il pacchetto che contiene tutti i modelli di apprendimento automatico e intelligenza artificiale di Google. Infine, importiamo anche CodeGenerationModel da vertexai con cui lavoreremo.
  • Ora iniziamo Vertex AI con il progetto con cui lavoreremo. Qui forniamo l’ID del progetto alla variabile project e assegniamo una delle posizioni alla variabile location, passando entrambe le variabili al metodo init() di vertexai.
  • <li.Specifichiamo anche i parametri preventivamente. Questi includono i parametri come la temperatura, che indica quanto creativo dovrebbe essere il nostro modello, e il parametro max_out_tokens, che rappresenta il limite impostato per la lunghezza dell'output generato dal Large Language Model.

<p.Prenderemo questo modello importato, ovvero CodeGenerationModel, e lo testeremo passando un prompt.

Prompt

code_model = CodeGenerationModel.from_pretrained("[email protected]")
response = code_model.predict(
    prefix = """Scrivi un codice in Python per contare l'occorrenza della parola "rocket" da una data frase di input utilizzando le espressioni regolari""",
    **parameters
)

print(f"Risposta dal modello: {response.text}")
  • Qui è presente il modello per la generazione di codice. Stiamo lavorando con un modello pre-addestrato di Google, ovvero il modello “[email protected]”, che è il modello PaLM 2 raffinato. Questo modello è responsabile della generazione di codice a partire dal prompt.
  • Per passare il prompt, lo passiamo alla funzione predict() del modello. Alla variabile prefix passiamo il prompt. Qui vogliamo che il modello generi del codice Python per contare le occorrenze della parola “rocket” utilizzando le espressioni regolari.
  • E passiamo anche i parametri definiti in precedenza alla funzione predict().
  • Le risposte generate da questo modello di generazione di codice vengono salvate nella variabile response, e per ottenere la risposta, chiamiamo il metodo text per ottenere la risposta dal modello.

L’output per il codice può essere visto di seguito

Otteniamo un codice Python come output per il prompt che abbiamo fornito. Il modello ha scritto uno script Python che corrisponde alla query che abbiamo fornito. Ora l’unico modo per testare questo è copiare la risposta, incollarla in un’altra cella in Colab e eseguirla. Qui vediamo l’output per lo stesso.

La frase che abbiamo fornito quando viene eseguito il codice è “Abbiamo lanciato il nostro primo razzo. Il razzo è costruito con materiale riciclato al 100%. Abbiamo lanciato con successo il nostro razzo nello spazio”. L’output indica con successo che la parola “rocket” è presente tre volte. In questo modo, il modello di generazione di codice di Codey può essere utilizzato per creare rapidamente codici funzionanti fornendo semplici prompt al Large Language Model.

Chat di Codice con Codey

La funzione Code Chat ci permette di interagire con Codey sul nostro codice. Forniamo il codice a Codey e chiacchieriamo con il modello di Codey riguardo al codice. Può essere utile per capire meglio il codice, ad esempio come funziona, o se vogliamo approcci alternativi per il codice dato, che Codey può fare guardando il codice attuale. Se incontriamo errori, possiamo fornire sia il codice che l’errore, che Codey guarderà e darà una soluzione per risolvere l’errore. Dobbiamo navigare su Vertex AI in GCP per fare ciò. Nel servizio Vertex AI, quindi navighiamo nella sezione Language sotto Generative AI Studio, che può essere visto di seguito

Seguiremo un approccio non codificato, ovvero inizialmente abbiamo visto come lavorare con la generazione di codice attraverso Python con l’API Vertex AI. Ora faremo questo tipo di attività direttamente tramite GCP stesso. Ora per chattare con Codey sul nostro codice, procediamo con l’opzione Code Chat al centro nella casella blu. Faremo clic su di essa per spostarci, quindi ci porterà all’interfaccia di seguito.

Qui vediamo che il modello che utilizzeremo è il modello “[email protected]″. Ora, quello che faremo è introdurre un errore nel codice di espressione regolare che abbiamo generato in precedenza. Quindi passeremo questo codice di errore e l’errore causato alla Code Chat e vedremo se il modello corregge il nostro codice. Nel codice di Python Regex, sostituiremo re.findall() con re.find() e eseguiremo il codice. Otterremo il seguente errore.

Qui vediamo nell’output che otteniamo un errore vicino al metodo re.find(). Ora passeremo questo codice modificato e l’errore che abbiamo ottenuto alla Code Chat in “Inserisci un prompt per iniziare una conversazione”. Otteniamo il seguente output appena premiamo il pulsante Invio.

Vediamo che il modello Codey ha analizzato il nostro codice e ha suggerito dove era l’errore. Ha persino fornito il codice corretto con cui lavorare. In questo modo, la Code Chat può identificare e correggere errori, comprendere il codice e ottenere anche le migliori pratiche di codice.

Conclusioni

In questo articolo, abbiamo esaminato uno dei modelli di base recentemente annunciati pubblicamente da Google, il Codey, una versione ottimizzata del modello di linguaggio generativo PaLM 2 di Google. Il modello Codey è ottimizzato per una vasta gamma di codice di alta qualità, consentendogli di scrivere codice in oltre 20 diversi linguaggi di programmazione, tra cui Python, Java, JavaScript, ecc. Il modello Codey è facilmente accessibile tramite Vertex AI, a cui possiamo accedere tramite GCP o tramite l’API di Vertex AI, entrambi metodi che abbiamo visto in questo articolo.

Per saperne di più: IA generativa: definizione, strumenti, modelli, vantaggi e altro ancora

Alcuni dei principali punti salienti di questo articolo includono:

  • Codey è un modello ottimizzato basato su PaLM 2, rendendolo robusto e affidabile.
  • È in grado di scrivere codice in più di 20 diversi linguaggi di programmazione.
  • Con Codey, possiamo generare codice da un semplice prompt e persino chattare con il modello per correggere gli errori che si verificano nel codice.
  • Codey fornisce anche suggerimenti, una funzione di completamento del codice, in cui il modello analizza il codice che stai scrivendo e offre suggerimenti preziosi.
  • Possiamo lavorare con Codey direttamente tramite l’interfaccia utente del Generative AI Studio in Vertex AI fornito da GCP.

Domande frequenti

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