Utilizzo di LIT con Gemma

Vedi sull'IA generativa Esegui in Google Colab Visualizza il codice sorgente su GitHub Impara nei codelab

I prodotti di IA generativa sono relativamente nuovi e i loro comportamenti possono variare più di con le loro precedenti forme di software. Per questo è importante esaminare utilizzare i modelli, esaminare esempi del comportamento del modello e indagare sorprese.

Lo strumento di interpretabilità dell'apprendimento (LIT; sito web, GitHub) è una piattaforma per il debug e l'analisi dei modelli ML al fine di comprendere perché e come si comportano come si comportano.

Qui scoprirai come configurare LIT per ottenere di più dalle funzionalità Modello Gemma utilizzando il modulo Sequence Salience per analizzare diversi al prompt engineering.

Configurazione di LIT per il debug dei prompt di Gemma

ERROR: pip's dependency resolver does not currently take into account all the 
packages that are installed. This behaviour is the source of the following 
dependency conflicts.
bigframes 0.21.0 requires scikit-learn>=1.2.2, but you have scikit-learn 1.0.2 
which is incompatible.
google-colab 1.0.0 requires ipython==7.34.0, but you have ipython 8.14.0 
which is incompatible.

Puoi ignorarle.

Installare LIT e Keras NLP

Questo blocco note utilizza l'implementazione KerasNLP di Gemma (ulteriori informazioni su come configuralo di seguito). È necessaria una versione recente di keras (3.0 o versioni successive) keras-nlp (0.12+) e lit-nlp (1.2+), nonché un account Kaggle per scaricare un modello di base.

# Keras is included in Colab runtimes, but needs to be updated to to v3.0+.
# LIT and Keras NLP are not icnldued by default and must be installed.
# Running this cell may require you to restart your session to ensure the newer
# packages are imported correctly.
 pip install -q -U "keras >= 3.0, <4.0" "keras-nlp >= 0.14" "lit-nlp >= 1.2"

Accesso a Kaggle

KerasNLP archivia i pesi del modello preaddestrato su Kaggle. La Pacchetto kagglehub in uso per autenticarti con questo servizio. Assicurati di accettare anche il contratto di licenza per Gemma dal tuo account Kaggle.

Vedi l'Appendice alla fine per maggiori informazioni su come configurare Kaggle .

import kagglehub

kagglehub.login()

Configurare LIT

LIT fornisce una funzione, make_notebook_widget() per configurare il nostro prompt di debug in un contesto di blocchi note.

LIT fornisce un set di dati di prompt di esempio che accompagnano il tutorial collegato più avanti in questo documento.

Consulta i commenti riportati di seguito per configurare il widget in modo che utilizzi modelli diversi e/o e dei set di dati.

from lit_nlp.examples.prompt_debugging import notebook as lit_pdbnb

# The following function initializes a LIT Notebook Widget. It's configured by
# two required positional arguments:
#
# * `datasets_config`: A list of strings containing the dataset names and
#       paths to load from, as "dataset:path", where path can be a URL or a
#       local file path. The example below uses a special value,
#       `sample_prompts`, to load the example prompts provided in the LIT
#       distribution; no other special values are supported.
# * `models_config`: A list of strings containing the model names and paths to
#       load from, as "model:path", where path can be a URL, a local file path,
#       or the name of a preset for the configured deep learning framework.
#
# LIT supports salience computation for KerasNLP and Hugging Face Transformers
# models running on TensorFlow or PyTorch. Note that all models passed to the
# `models_config` parameter will be loaded using the same framework and runtime.
# You can cofnigre these with the following keywork arguments.
#
# * `dl_framework`: Must be one of "kerasnlp" or "transformers".
# * `dl_runtime`: Must be one of "tensorflow" or "torch".
#
# Changing the `dl_framework` value will affect the authentication method used
# to access Gemma model weights.

lit_widget = lit_pdbnb.make_notebook_widget(
    ['sample_prompts'],
    ["gemma_2b_it:gemma_1.1_instruct_2b_en"],
    dl_framework="kerasnlp",
    dl_runtime="tensorflow",
    batch_size=1,
    max_examples=5,
    precision="bfloat16",
)

Ora puoi eseguire il rendering dell'UI in una cella Colab.

lit_widget.render()
<IPython.core.display.Javascript object>

Debug dei prompt con il livello di soddisfazione della sequenza

I modelli linguistici di grandi dimensioni (LLM) da testo a testo, come Gemma, effettuano una sequenza di input sotto forma di testo tokenizzato e genera nuovi token che siano successivi o completamenti logici.

I metodi di conformità ti consentono di controllare quali parti di un sono importanti per il modello per le diverse parti dell'output generato. Il modulo Sequence Salience di LIT estende questi metodi per spiegare l'importanza delle sequenze a più livelli di granularità: dai token le parole, le frasi e molto altro.

Puoi usare LIT nella cella sopra per sperimentare con la funzionalità di adattamento della sequenza. modulo in autonomia. Per un'esperienza di apprendimento più guidata, puoi seguire con il tutorial Debug dei prompt con la Salience della sequenza direttamente in questo Colab.

Per ulteriori informazioni accademiche e tecnologiche sul funzionamento di Sequence Salience, consulta il nostro documento.

Appendice: Accesso a Gemma su Kaggle Hub

Questo blocco note utilizza l'implementazione KerasNLP di Gemma in questo documento. KerasNLP archivia i pesi del modello preaddestrato su Kaggle, mentre Gemma richiede l'autenticazione e la concessione della licenza per accedere a questi pesi.

Le seguenti istruzioni illustrano come configurare un account Kaggle e autenticarsi con Kaggle usando il pacchetto kagglehub.

  1. Crea un account Kaggle se non ne hai uno
  2. Richiedi l'accesso a Gemma
    • Assicurati di aver eseguito l'accesso a Kaggle utilizzando l'account indicato sopra
    • Vai alla pagina del consenso: https://www.kaggle.com/models/google/gemma/license/consent
    • Seleziona "Verifica tramite account Kaggle". (la selezione predefinita) e fai clic su Avanti
    • Compila il modulo di consenso (i campi nome e cognome in alto).
    • Accetta le norme utilizzando le caselle di controllo in basso
    • Fai clic sul pulsante "Accetta" in basso per ottenere l'accesso.
    • Questo dovrebbe reindirizzarti alla pagina del modello (https://www.kaggle.com/models/google/gemma).
  3. Creare un token API
    • Assicurati di aver eseguito l'accesso a Kaggle con l'account che hai creato sopra
    • Vai alla pagina Impostazioni: https://www.kaggle.com/settings.
    • Scorri verso il basso fino alla sezione API
    • Utilizza il pulsante "Crea nuovo token" pulsante per attivare la generazione del token
    • Usa il menu sullo schermo per salvare il file JSON, denominato kaggle.json, che il servizio genera sulla tua macchina.
    • Il file JSON è un oggetto con due proprietà, nome utente e chiave. Avrai bisogno di entrambe per l'autenticazione sul servizio in un secondo momento
  4. Usa le credenziali del token API per l'autenticazione con Kagglehub in Colab
    • Vai al Colab LIT Sequence Saleince: https://colab.sandbox.google.com/github/google/generative-ai-docs/blob/main/site/en/gemma/docs/lit_gemma.ipynb#scrollTo=yKw8gDsh_nVR
    • Connettiti a un runtime GPU
    • Per Gemma 2B puoi usare il runtime T4 di livello senza costi
    • Per Gemma 7B avrai bisogno di crediti di calcolo Colab prepagati o di un account Colab Pro per utilizzare una GPU V100, L4 o A100
    • Esegui la cella di codice kagglehub per visualizzare un modulo HTML che richiede il nome utente e un token
    • Copia il campo username dal file kaggle.json scaricato nel passaggio precedente e incollalo nel campo username del modulo
    • Copia il campo key dal file kaggle.json scaricato nel passaggio precedente e incollalo nel campo token del modulo
    • Fai clic sul pulsante di accesso per salvare queste credenziali nel runtime

Dovrai ripetere l'ultimo passaggio ogni volta che il runtime di Colab viene disconnesso, poiché questa operazione cancella la cache in cui sono archiviate le credenziali.