LIT mit Gemma verwenden

Ansehen zu generativer KI In Google Colab ausführen Quelle auf GitHub ansehen In Codelabs lernen

Produkte mit generativer KI sind relativ neu und ihr Verhalten kann sich stärker unterscheiden als frühere Formen von Software. Daher ist es wichtig, das maschinelle Lernen der verwendeten Modelle, untersuchen Sie Beispiele für das Verhalten des Modells und untersuchen Sie Überraschungen zu erleben.

Das Learning Interpretability Tool (LIT; Website, GitHub) ist eine Plattform zum Debuggen und Analysieren von ML-Modellen, um zu verstehen, warum und wie wie sie sich verhalten.

Hier erfahren Sie, wie Sie LIT einrichten, um die Gemma-Modell mithilfe des Sequence Salience-Moduls zur Analyse verschiedener Prompt Engineering-Ansätze.

LIT zum Debuggen von Gemma-Prompts einrichten

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.

Diese können ignoriert werden.

LIT und Keras NLP installieren

Dieses Notebook verwendet die KerasNLP-Implementierung von Gemma (weitere Informationen zum konfigurieren Sie dies unten. Du benötigst eine aktuelle Version von keras (3.0+) keras-nlp (0.12+) und lit-nlp (1.2+) sowie ein Kaggle-Konto zum Herunterladen der Basismodell.

# 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"

Kaggle-Zugriff

KerasNLP speichert die vortrainierten Modellgewichtungen in Kaggle. Die kagglehub-Paket wird verwendet für die Authentifizierung bei diesem Dienst. Akzeptieren Sie auch die Lizenzvereinbarung für Gemma aus Ihrem Kaggle-Konto.

Weitere Informationen zum Einrichten einer Kaggle finden Sie im Anhang am Ende. Konto.

import kagglehub

kagglehub.login()

LIT konfigurieren

LIT bietet die Funktion make_notebook_widget() zum Konfigurieren des Prompts Debugging-Tools in einem Notebook-Kontext.

LIT bietet ein Dataset mit Beispiel-Prompts, die zum verknüpften Tutorial gehören weiter unten in diesem Dokument.

In den nachfolgenden Kommentaren erfahren Sie, wie Sie das Widget für die Verwendung verschiedener Modelle und/oder Datasets.

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",
)

Jetzt können Sie die UI in einer Colab-Zelle rendern.

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

Prompt-Debugging mit Sequence Salience

Text-to-Text Large Language Models (LLMs wie Gemma) nehmen eine Eingabesequenz in Form von tokenisiertem Text und generieren neue Tokens, die logische Folgeaktionen oder Ergänzungen.

Mit Auffälligkeitsmethoden können Sie prüfen, welche Teile einer Eingaben für das Modell für verschiedene Teile der generierten Ausgabe wichtig. Das Sequence Salience-Modul von LIT erweitert diese Methoden, um von Sequenzen mit mehreren Detaillierungsgraden: von Wörtern bis zu Sätzen und darüber hinaus.

Sie können LIT in der Zelle oben verwenden, um mit der Sequence Salience herumzuspielen selbstständig zu machen. Für eine bessere Lernerfahrung können Sie lange mit der Anleitung Prompt-Debugging mit Sequence Salience direkt in diesem Colab-Produkt.

Noch mehr akademische und technische Informationen zur Funktionsweise von Sequence Salience finden Sie in unserem Whitepaper.

Anhang: Zugriff auf Gemma auf Kaggle Hub

In diesem Notebook wird die KerasNLP-Implementierung von Gemma in diesem Dokument verwendet. KerasNLP speichert die vortrainierten Modellgewichtungen in Kaggle. Gemma benötigt Authentifizierung und Lizenzbestätigung für den Zugriff auf diese Gewichtungen.

In der folgenden Anleitung erfahren Sie, wie Sie ein Kaggle-Konto einrichten und authentifizieren Sie sich mit dem Paket kagglehub bei Kaggle.

  1. Erstellen Sie ein Kaggle-Konto, falls Sie noch keines haben.
  2. Zugriff auf Gemma anfordern
    • Stellen Sie sicher, dass Sie mit dem oben genannten Konto bei Kaggle angemeldet sind.
    • Rufen Sie die Einwilligungsseite auf: https://www.kaggle.com/models/google/gemma/license/consent.
    • Wählen Sie das Kästchen „Verify via Kaggle Account“ (Über Kaggle-Konto verifizieren) aus. (Standardauswahl) und klicken Sie auf „Weiter“,
    • Füllen Sie das Formular zur Einwilligung der Nutzer in der EU aus (Felder für den Vor- und Nachnamen oben).
    • Bestätigen Sie die Richtlinie mithilfe der Kästchen unten.
    • Klicken Sie auf die Schaltfläche , um den Zugriff zu erlauben.
    • Sie werden auf die Modellseite weitergeleitet (https://www.kaggle.com/models/google/gemma).
  3. API-Token erstellen
    • Stellen Sie sicher, dass Sie mit dem oben erstellten Konto bei Kaggle angemeldet sind.
    • Rufen Sie die Seite mit den Einstellungen auf: https://www.kaggle.com/settings
    • Scrollen Sie nach unten zum Abschnitt „API“.
    • Die Option „Neues Token erstellen“ verwenden Schaltfläche zum Auslösen der Tokengenerierung
    • Speichern Sie über das Bildschirmmenü die JSON-Datei namens „kaggle.json“, die vom Dienst auf Ihrem Computer generiert wird.
    • Die JSON-Datei ist ein Objekt mit zwei Attributen, einem Nutzernamen und einem Schlüssel. Sie benötigen beide für die Authentifizierung später beim jeweiligen Dienst.
  4. Mit Ihren API-Token-Anmeldedaten bei Kaggle in Colab authentifizieren
    • Rufen Sie das Colab für LIT Sequence Saleince auf: https://colab.sandbox.google.com/github/google/generative-ai-docs/blob/main/site/en/gemma/docs/lit_gemma.ipynb#scrollTo=yKw8gDsh_nVR
    • Mit einer GPU-Laufzeit verbinden
    • Für Gemma 2B können Sie die kostenlose T4-Laufzeit verwenden
    • Für die Gemma 7B benötigen Sie im Voraus bezahltes Colab-Rechenguthaben oder ein Colab Pro-Konto, um eine V100-, L4- oder A100-GPU zu verwenden
    • Führen Sie die Codezelle kagglehub aus, um ein HTML-Formular anzuzeigen, in dem Sie nach Ihrem Nutzernamen und einem Token gefragt werden
    • Kopieren Sie das Feld username aus der Datei kaggle.json, die Sie im vorherigen Schritt heruntergeladen haben, und fügen Sie es im Formular in das Feld username ein
    • Kopieren Sie das Feld key aus der Datei kaggle.json, die Sie im vorherigen Schritt heruntergeladen haben, und fügen Sie es im Formular in das Feld token ein.
    • Klicken Sie auf die Anmeldeschaltfläche, um diese Anmeldedaten in der Laufzeit zu speichern

Sie müssen den letzten Schritt jedes Mal wiederholen, wenn die Colab-Laufzeit getrennt wird, da beim Trennen der Verbindung der Cache geleert wird, in dem die Anmeldedaten gespeichert sind.