שימוש ב-LIT עם Gemma

לעיון בבינה מלאכותית גנרטיבית הפעלה ב-Google Colab הצגת המקור ב-GitHub למידה ב-Codelabs

מוצרי בינה מלאכותית גנרטיבית הם חדשים יחסית, וההתנהגות שלהם עשויה להיות שונה צורות קודמות של תוכנה. לכן חשוב לחקור את למידת המכונה של מודלים שנעשה בהם שימוש, לבחון דוגמאות של התנהגות המודל ולחקור הפתעות.

הכלי לפרשנות למידה (LIT, אתר, GitHub) היא פלטפורמה לניפוי באגים ולניתוח מודלים של למידת מכונה, כדי להבין למה ואיך הם מתנהגים כמו שהם מתנהגים.

כאן אפשר ללמוד איך להגדיר את LIT כדי להפיק יותר מודל Gemma על ידי שימוש במודול Sequence Salience כדי לנתח וגישות של הנדסת פרומפטים.

הגדרת LIT לניפוי באגים בהנחיות 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.

אפשר להתעלם מההנחיות האלה.

התקנת LIT ו-Keras NLP

ה-notebook הזה משתמש בהטמעת KerasNLP של Gemma (מידע נוסף על להגדיר זאת למטה). נדרשת גרסה עדכנית של keras (3.0 ואילך) keras-nlp (0.12 ומעלה) ו-lit-nlp (1.2 ומעלה), וחשבון Kaggle כדי להוריד את של מודל הבסיס.

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

גישה לקגל

KerasNLP מאחסן את משקולות המודל שעברו אימון מראש ב-Kaggle. החבילה kagglehub נמצאת בשימוש לצורך אימות עם שירות זה. חשוב לאשר גם את הסכם הרישיון עבור Gemma מחשבון Kaggle שלך.

מידע נוסף על הגדרת Kaggle זמין בנספח בסוף חשבון.

import kagglehub

kagglehub.login()

הגדרת LIT

LIT מספק פונקציה, make_notebook_widget() להגדרת ההנחיה שלנו כלים לניפוי באגים בהקשר של notebook.

LIT מספק מערך נתונים של הנחיות לדוגמה שמתלוות למדריך המקושר בהמשך המסמך.

עיינו בתגובות שבהמשך כדי להגדיר את הווידג'ט לשימוש במודלים שונים ו/או של מערכי נתונים.

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

עכשיו אפשר לעבד את ממשק המשתמש בתא Colab.

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

הצגת הנחיות לניפוי באגים באמצעות רצף רצף

מודלים גדולים של שפה (LLMs) של טקסט לטקסט (LLM), כמו Gemma, לוקחים רצף קלט בפורמט טקסט שעבר הצפנה באמצעות אסימון, וליצור אסימונים חדשים מעקבים או השלמות לוגיות.

שיטות עיקול מאפשרות לבדוק אילו חלקים והקלט חשובים למודל בחלקים שונים של הפלט שנוצר. המודול רצף Salience של LIT מרחיב את השיטות האלה כדי להסביר חשיבות רצפים בכמה רמות פירוט: מאסימונים עד מילים למשפטים ומעבר לכך.

אפשר להשתמש ב-LIT בתא שלמעלה כדי לשחק עם רצף הרצף בעצמכם. כדי ליהנות מחוויית למידה מודרכת יותר, אפשר לעקוב אחר בעזרת המדריך ניפוי באגים בהנחיות באמצעות רצף רצף ישירות ב-Colab הזה.

כדי לקבל מידע אקדמי וטכנולוגי יותר על אופן הפעולה של רצף רציף, מומלץ לעיין במאמר שלנו.

נספח: גישה ל-Gemma ב-Kaggle Hub

ה-notebook הזה משתמש בהטמעה של KerasNLP של Gemma במסמך הזה. KerasNLP מאחסן את משקולות המודל שעברו אימון מראש ב-Kaggle, ו-Gemma דורש אימות ואישור רישיון לגישה למשקולות האלה.

ההוראות הבאות ינחו אותך איך להגדיר חשבון Kaggle לבצע אימות באמצעות Kaggle באמצעות חבילת kagglehub.

  1. אם עדיין אין לך חשבון Kaggle, עליך ליצור חשבון
  2. בקשת גישה ל-Gemma
    • עליך לוודא שהתחברת ל-Kaggle באמצעות החשבון שלמעלה
    • עוברים לדף ההסכמה: https://www.kaggle.com/models/google/gemma/license/consent
    • בוחרים באפשרות 'אימות דרך חשבון Kaggle' אפשרות (ברירת המחדל) ולוחצים על 'הבא'
    • ממלאים את טופס ההסכמה (השדות 'שם פרטי' ושם משפחה' בחלק העליון).
    • אישור המדיניות באמצעות תיבות הסימון שבתחתית
    • לוחצים על 'אישור'. בלחצן למטה כדי להעניק גישה
    • כתובת ה-URL הזו צריכה להפנות אתכם לדף המודל (https://www.kaggle.com/models/google/gemma)
  3. יצירת אסימון ל-API
    • עליך לוודא שהתחברת ל-Kaggle באמצעות החשבון שיצרת למעלה
    • עוברים לדף ההגדרות: https://www.kaggle.com/settings
    • גוללים למטה לקטע API.
    • משתמשים באפשרות 'יצירת אסימון חדש' לחצן להפעלה של יצירה של אסימון
    • משתמשים בתפריט שבמסך כדי לשמור את קובץ ה-JSON שנקרא kaggle.json, השירות יוצר במכונה שלכם
    • קובץ ה-JSON הוא אובייקט עם שני מאפיינים, שם משתמש ומפתח. בהמשך יהיה צורך לבצע אימות מול השירות שלהם
  4. שימוש בפרטי הכניסה של אסימון ה-API לצורך אימות באמצעות kagglehub ב-Colab
    • עוברים אל LIT Sequence Saleince Colab: https://colab.sandbox.google.com/github/google/generative-ai-docs/blob/main/site/en/gemma/docs/lit_gemma.ipynb#scrollTo=yKw8gDsh_nVR
    • התחברות לסביבת זמן ריצה של GPU
    • ב-Gemma 2B אפשר להשתמש בסביבת זמן הריצה של T4 בתוכנית חינמית
    • ל-Gemma 7B צריך קרדיטים על מחשוב של Colab ששולמו מראש או חשבון Colab Pro כדי להשתמש ב-GPU של V100, L4 או A100
    • צריך להריץ את תא הקוד kagglehub כדי להציג טופס HTML עם בקשה להזין את שם המשתמש ואסימון
    • מעתיקים את השדה username מהקובץ kaggle.json שהורדתם בשלב הקודם ומדביקים אותו בשדה username בטופס
    • מעתיקים את השדה key מהקובץ kaggle.json שהורדתם בשלב הקודם ומדביקים אותו בשדה token בטופס
    • כדי לשמור את פרטי הכניסה האלה בסביבת זמן הריצה, צריך ללחוץ על לחצן ההתחברות

צריך לחזור על השלב האחרון בכל פעם שזמן הריצה של Colab מנותק, כי הניתוק מנקה את המטמון שבו פרטי הכניסה מאוחסנים.