Utiliser LIT avec Gemma

Voir dans l'IA générative Exécuter dans Google Colab Consulter le code source sur GitHub Apprendre dans les ateliers de programmation

Les produits d'IA générative sont relativement récents et leur comportement peut varier les anciennes formes de logiciels. Il est donc important de vérifier des modèles utilisés, examiner des exemples de comportement surprises.

Learning Interpretability Tool (LIT ; site Web, GitHub) est une plate-forme permettant de déboguer et d'analyser des modèles de ML pour comprendre pourquoi et comment ils se comportent comme ils le font.

Vous allez apprendre à configurer le LIT pour exploiter tout le potentiel le modèle Gemma à l'aide du module Sequence Salience pour analyser différentes des approches d'ingénierie des requêtes.

Configurer LIT pour déboguer les requêtes 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.

Vous pouvez les ignorer.

Installer LIT et Keras NLP

Ce notebook utilise l'implémentation KerasNLP de Gemma (plus d'informations sur l'exécution configurez-le ci-dessous). Vous devez disposer d'une version récente de keras (version 3.0 ou ultérieure) keras-nlp (0.12+) et lit-nlp (1.2+), et un compte Kaggle pour télécharger le de 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"

Accès à Kaggle

KerasNLP stocke les pondérations de ses modèles pré-entraînés sur Kaggle. La Le package kagglehub est utilisé à authentifier avec ce service. Veillez aussi à accepter le contrat de licence pour Gemma depuis votre compte Kaggle.

Consultez l'annexe à la fin pour plus d'informations sur la façon de configurer un Kaggle de service.

import kagglehub

kagglehub.login()

Configurer LIT

LIT fournit une fonction, make_notebook_widget(), pour configurer notre invite. de débogage dans le contexte d'un notebook.

LIT fournit un ensemble de données d'exemples de requêtes qui accompagnent le tutoriel associé. plus loin dans ce document.

Consultez les commentaires ci-dessous pour savoir comment configurer le widget afin qu'il utilise différents modèles et/ou des ensembles de données.

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

Vous pouvez maintenant afficher l'UI dans une cellule Colab.

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

Débogage des requêtes avec la saillance séquentielle

Les grands modèles de langage (LLM, text-to-text), tels que Gemma, extraient une séquence d'entrée sous la forme de texte tokenisé et génèrent de nouveaux jetons qui sont des suites ou des réalisations logiques.

Les méthodes de saillance vous permettent d'inspecter les parties d'une sont importantes pour le modèle pour les différentes parties de la sortie générée. Le module Salience des séquences de LIT étend ces méthodes pour expliquer l'importance des séquences à plusieurs niveaux de précision: des jetons, des mots aux phrases et au-delà.

Vous pouvez utiliser le LIT dans la cellule ci-dessus pour tester la saillance des séquences par vous-même. Pour une expérience d'apprentissage plus guidée, vous pouvez suivre de longues en suivant le tutoriel sur le débogage des requêtes avec la saillance séquentielle. directement dans ce Colab.

Pour encore plus d'informations universitaires et techniques sur le fonctionnement de la saillance des séquences, consultez notre article.

Annexe: Accéder à Gemma sur Kaggle Hub

Ce notebook utilise l'implémentation KerasNLP de Gemma présentée dans ce document. KerasNLP stocke les pondérations de ses modèles pré-entraînés sur Kaggle, et Gemma a besoin une authentification et une confirmation de licence pour accéder à ces pondérations.

Les instructions suivantes vous expliquent comment créer un compte Kaggle et s'authentifier auprès de Kaggle à l'aide du package kagglehub.

  1. Créer un compte Kaggle si vous n'en avez pas <ph type="x-smartling-placeholder">
  2. Demander l'accès à Gemma <ph type="x-smartling-placeholder">
      </ph>
    • Assurez-vous d'être connecté à Kaggle en utilisant le compte ci-dessus
    • Accédez à la page de consentement: https://www.kaggle.com/models/google/gemma/license/consent.
    • Sélectionnez « Vérifier via un compte Kaggle ». (sélection par défaut) et cliquez sur "Suivant"
    • Remplissez le formulaire de consentement (champs "Prénom" et "Nom" en haut).
    • Acceptez le règlement à l'aide des cases à cocher en bas de l'écran.
    • Cliquez sur le bouton "Accepter" bouton situé en bas pour obtenir l'accès
    • Vous devriez être redirigé vers la page du modèle (https://www.kaggle.com/models/google/gemma).
  3. Créer un jeton d'API <ph type="x-smartling-placeholder">
      </ph>
    • Assurez-vous d'être connecté à Kaggle avec le compte que vous avez créé ci-dessus
    • Accédez à la page "Paramètres" : https://www.kaggle.com/settings.
    • Faites défiler la page jusqu'à la section "API".
    • Utilisez l'option "Créer un jeton" bouton pour déclencher la génération de jetons
    • Utilisez le menu à l'écran pour enregistrer le fichier JSON, nommé kaggle.json, que le service génère sur votre machine.
    • Le fichier JSON est un objet comportant deux propriétés : le nom d'utilisateur et la clé. Vous en aurez besoin ultérieurement pour vous authentifier auprès de leur service.
  4. Utiliser vos identifiants de jeton d'API pour vous authentifier avec Kaggle dans Colab <ph type="x-smartling-placeholder">
      </ph>
    • Accédez au Colab de la séquence LIT Saleince: https://colab.sandbox.google.com/github/google/generative-ai-docs/blob/main/site/en/gemma/docs/lit_gemma.ipynb#scrollTo=yKw8gDsh_nVR.
    • Se connecter à un environnement d'exécution GPU
    • Pour Gemma 2B, vous pouvez utiliser l'environnement d'exécution sans frais T4.
    • Pour Gemma 7B, vous aurez besoin de crédits de calcul Colab prépayés ou d'un compte Colab Pro pour utiliser un GPU V100, L4 ou A100
    • Exécutez la cellule de code kagglehub pour afficher un formulaire HTML vous demandant votre nom d'utilisateur et un jeton.
    • Copiez le champ username du fichier kaggle.json que vous avez téléchargé à l'étape précédente et collez-le dans le champ username du formulaire
    • Copiez le champ key du fichier kaggle.json que vous avez téléchargé à l'étape précédente et collez-le dans le champ token du formulaire
    • Cliquez sur le bouton de connexion pour enregistrer ces identifiants dans votre environnement d'exécution.

Vous devrez répéter la dernière étape chaque fois que l'environnement d'exécution Colab sera déconnecté, car cette opération efface le cache dans lequel les identifiants sont stockés.