Korzystanie z LIT w połączeniu z Gemmą

Wyświetl informacje o generatywnej AI Uruchom w Google Colab Wyświetl źródło w GitHubie Nauka w Codelabs

Usługi związane z generatywną AI są stosunkowo nowe, a ich zachowania mogą się różnić starszych form oprogramowania. Dlatego tak ważne jest sondowanie systemów uczących się używanych modeli, zbadanie przykładów działania modelu i zbadanie niespodzianki.

Learning Interpretability Tool (LIT; strona internetowa, GitHub) to platforma do debugowania i analizowania modeli ML, aby zrozumieć, dlaczego i jak zachowanie w swoich zachowaniach.

Z tego artykułu dowiesz się, jak skonfigurować narzędzie LIT, by w pełni wykorzystać modelu Gemma, używając modułu Salience Sequence Salience do analizowania różnych i metody inżynierii promptów.

Konfigurowanie narzędzia LIT do debugowania promptów 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.

Można je zignorować.

Instalowanie LIT i Keras NLP

Ten notatnik korzysta z implementacji kodu Gemma w KerasNLP (więcej informacji na temat skonfiguruj poniżej). Potrzebujesz najnowszej wersji aplikacji keras (3.0 lub nowszej) keras-nlp (0.12+) i lit-nlp (1.2+) oraz konto Kaggle, aby pobrać model podstawowy.

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

Dostęp do Kaggle

KerasNLP przechowuje wytrenowane wagi modeli w Kaggle. Używany pakiet kagglehub do uwierzytelnienia w tej usłudze. Pamiętaj, aby zaakceptować także umowę licencyjną. dla Gemma z konta Kaggle.

Więcej informacji o konfigurowaniu Kaggle znajdziesz w Dodatku na końcu. koncie.

import kagglehub

kagglehub.login()

Konfigurowanie LIT

LIT udostępnia funkcję make_notebook_widget() do konfigurowania promptu z narzędzi do debugowania w kontekście notatnika.

LIT udostępnia zbiór przykładowych promptów towarzyszących samouczkowi, do którego link w dalszej części tego dokumentu.

Aby dowiedzieć się, jak skonfigurować widżet do użycia różnych modeli lub w wielu zbiorach danych.

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

Możesz teraz renderować interfejs w komórce Colab.

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

Debugowanie z wykorzystaniem poziomu sekwencji

Duże modele językowe (LLM) zamiany tekstu na tekst, np. Gemma, pobierają sekwencję wejściową w postaci tekstu tokenizowanego i wygenerować nowe tokeny, logiczne kontynuacje lub uzupełnianie.

Metody oceny umożliwiają sprawdzanie, które części są ważne dla modelu w przypadku różnych części generowanych danych wyjściowych. Moduł Skuteczność w sekwencji LIT rozszerza te metody, aby wyjaśnić, znaczenie sekwencji na różnych poziomach szczegółowości: od tokenów po słów na zdania i nie tylko.

Możesz użyć funkcji LIT w komórce powyżej, aby pobawić się poziomami sekwencji . Aby łatwiej zdobywać wiedzę, zapoznaj się z zapoznaj się z samouczkiem Prompt Debugging with Sequence Salience (Debugowanie wyników w sekwencji). bezpośrednio w tej usłudze Colab.

Więcej informacji akademickich i technicznych na temat działania Salience Sequence Salience znajdziesz przeczytaj nasz artykuł.

Dodatek: dostęp do Gemma w Kaggle Hub

Ten notatnik korzysta z implementacji Gemma w KerasNLP w tym dokumencie. KerasNLP przechowuje wytrenowane wagi modeli w Kaggle, a Gemma wymaga uwierzytelniania i potwierdzenia licencji, aby uzyskać dostęp do tych wag.

Poniższe instrukcje przeprowadzą Cię przez proces konfiguracji konta Kaggle oraz uwierzytelniać w Kaggle za pomocą pakietu kagglehub.

  1. Utwórz konto Kaggle, jeśli jeszcze go nie masz
  2. Poproś o dostęp do Gemma
    • Zaloguj się w Kaggle, korzystając z powyższego konta.
    • Otwórz stronę zgody: https://www.kaggle.com/models/google/gemma/license/consent.
    • Wybierz opcję „Zweryfikuj przez konto Kaggle”. (ustawienie domyślne) i kliknij Dalej.
    • Wypełnij formularz zgody (pola imienia i nazwiska u góry).
    • Potwierdź, że zgadzasz się z zasadami, za pomocą pól wyboru u dołu
    • Kliknij „Akceptuję”. u dołu przycisku, aby przyznać dostęp
    • Powinno to spowodować przekierowanie na stronę modelu (https://www.kaggle.com/models/google/gemma).
  3. Tworzenie tokena API
    • Zaloguj się w Kaggle na konto utworzone powyżej.
    • Wejdź na stronę Ustawienia: https://www.kaggle.com/settings.
    • Przewiń w dół do sekcji dotyczącej interfejsu API.
    • Użyj opcji „Utwórz nowy token”. przycisk aktywujący generowanie tokenów
    • Użyj menu na ekranie, aby zapisać plik JSON o nazwie kaggle.json, który zostanie wygenerowany na komputerze.
    • Plik JSON to obiekt z 2 właściwościami – nazwą użytkownika i kluczem. Obie te właściwości będą potrzebne później do uwierzytelnienia w usłudze
  4. Używanie danych logowania tokena interfejsu API do uwierzytelniania w kagglehub w Colab
    • Otwórz stronę LIT Sequence Saleince w Colab: https://colab.sandbox.google.com/github/google/generative-ai-docs/blob/main/site/en/gemma/docs/lit_gemma.ipynb#scrollTo=yKw8gDsh_nVR
    • Połącz ze środowiskiem wykonawczym GPU
    • W przypadku Gemma 2B możesz użyć środowiska wykonawczego T4 poziomu bezpłatnego.
    • W przypadku Gemma 7B potrzebujesz przedpłaconych środków obliczeniowych Colab lub konta Colab Pro, aby korzystać z GPU V100, L4 lub A100
    • Uruchom kod z komórki kagglehub, aby wyświetlić formularz HTML z prośbą o podanie nazwy użytkownika i tokenu
    • Skopiuj pole username z pliku kaggle.json pobranego w poprzednim kroku i wklej je w polu username w formularzu.
    • Skopiuj pole key z pliku kaggle.json pobranego w poprzednim kroku i wklej je w polu token w formularzu.
    • Kliknij przycisk logowania, aby zapisać te dane logowania w środowisku wykonawczym

Musisz powtórzyć ostatni krok za każdym razem, gdy środowisko wykonawcze Colab jest odłączone, ponieważ odłączenie powoduje wyczyszczenie pamięci podręcznej, w której są przechowywane dane logowania.