![]() |
![]() |
![]() |
![]() |
מוצרי בינה מלאכותית גנרטיבית הם חדשים יחסית, וההתנהגות שלהם עשויה להיות שונה צורות קודמות של תוכנה. לכן חשוב לחקור את למידת המכונה של מודלים שנעשה בהם שימוש, לבחון דוגמאות של התנהגות המודל ולחקור הפתעות.
הכלי לפרשנות למידה (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
.
- אם עדיין אין לך חשבון Kaggle, עליך ליצור חשבון
- עוברים אל: https://www.kaggle.com/account/login?phase=startRegisterTab
- השתמשו בשיטת הרישום המועדפת עליכם כדי להגדיר את החשבון.
- בקשת גישה ל-Gemma
- עליך לוודא שהתחברת ל-Kaggle באמצעות החשבון שלמעלה
- עוברים לדף ההסכמה: https://www.kaggle.com/models/google/gemma/license/consent
- בוחרים באפשרות 'אימות דרך חשבון Kaggle' אפשרות (ברירת המחדל) ולוחצים על 'הבא'
- ממלאים את טופס ההסכמה (השדות 'שם פרטי' ושם משפחה' בחלק העליון).
- אישור המדיניות באמצעות תיבות הסימון שבתחתית
- לוחצים על 'אישור'. בלחצן למטה כדי להעניק גישה
- כתובת ה-URL הזו צריכה להפנות אתכם לדף המודל (https://www.kaggle.com/models/google/gemma)
- יצירת אסימון ל-API
- עליך לוודא שהתחברת ל-Kaggle באמצעות החשבון שיצרת למעלה
- עוברים לדף ההגדרות: https://www.kaggle.com/settings
- גוללים למטה לקטע API.
- משתמשים באפשרות 'יצירת אסימון חדש' לחצן להפעלה של יצירה של אסימון
- משתמשים בתפריט שבמסך כדי לשמור את קובץ ה-JSON שנקרא kaggle.json, השירות יוצר במכונה שלכם
- קובץ ה-JSON הוא אובייקט עם שני מאפיינים, שם משתמש ומפתח. בהמשך יהיה צורך לבצע אימות מול השירות שלהם
- שימוש בפרטי הכניסה של אסימון ה-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 מנותק, כי הניתוק מנקה את המטמון שבו פרטי הכניסה מאוחסנים.