استفاده از LIT با Gemma

مشاهده در Generative AI در Google Colab اجرا شود مشاهده منبع در GitHub در Codelabs بیاموزید

محصولات هوش مصنوعی مولد نسبتا جدید هستند و رفتارهای آنها می تواند بیشتر از نرم افزارهای قبلی متفاوت باشد. این امر بررسی مدل‌های یادگیری ماشینی مورد استفاده، بررسی نمونه‌هایی از رفتار مدل و بررسی شگفتی‌ها را مهم می‌سازد.

ابزار تفسیرپذیری یادگیری (LIT؛ وب‌سایت ، GitHub ) بستری برای اشکال‌زدایی و تجزیه و تحلیل مدل‌های ML است تا بفهمیم چرا و چگونه آن‌ها به روشی که انجام می‌دهند رفتار می‌کنند.

در اینجا، با استفاده از ماژول Sequence Salience برای تجزیه و تحلیل رویکردهای مختلف مهندسی سریع، نحوه راه اندازی LIT را برای بهره گیری بیشتر از مدل Gemma گوگل یاد خواهید گرفت.

راه اندازی LIT برای Debug Gemma Prompts

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 را نصب کنید

این نوت‌بوک از پیاده‌سازی 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"

دسترسی Kaggle

KerasNLP وزنه های مدل از پیش آموزش دیده خود را در Kaggle ذخیره می کند. بسته kagglehub برای احراز هویت با این سرویس استفاده می شود. حتماً موافقت نامه مجوز Gemma را از حساب Kaggle خود نیز بپذیرید.

برای اطلاعات بیشتر در مورد نحوه راه اندازی حساب Kaggle، به پیوست در پایان مراجعه کنید.

import kagglehub

kagglehub.login()

پیکربندی LIT

LIT تابع make_notebook_widget() را برای پیکربندی ابزارهای اشکال زدایی سریع ما در زمینه نوت بوک فراهم می کند.

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>

اشکال زدایی سریع با Sequence Salience

مدل‌های زبان بزرگ متن به متن (LLM)، مانند Gemma، یک دنباله ورودی را به شکل متن نشانه‌گذاری می‌کنند و توکن‌های جدیدی تولید می‌کنند که دنباله‌روی یا تکمیل منطقی هستند.

روش‌های برجسته به شما این امکان را می‌دهند که بررسی کنید کدام بخش از یک ورودی برای مدل برای بخش‌های مختلف خروجی تولید شده آن مهم است. ماژول Sequence Salience LIT این روش‌ها را برای توضیح اهمیت دنباله‌ها در سطوح مختلف دانه‌بندی گسترش می‌دهد: از نشانه‌ها گرفته تا کلمات تا جملات و فراتر از آن.

می‌توانید از LIT در سلول بالا استفاده کنید تا خودتان با ماژول Sequence Salience بازی کنید. برای تجربه یادگیری هدایت‌شده‌تر، می‌توانید آموزش «اشکال‌زدایی سریع با Sequence Salience» را درست در این Colab به مدت طولانی دنبال کنید.

برای اطلاعات بیشتر آکادمیک و فنی در مورد نحوه عملکرد Sequence Salience، مقاله ما را بررسی کنید.

پیوست: دسترسی به Gemma در Kaggle Hub

این نوت بوک از پیاده سازی KerasNLP از Gemma در این سند استفاده می کند. KerasNLP وزن‌های مدل از پیش آموزش‌دیده‌شده خود را در Kaggle ذخیره می‌کند و Gemma برای دسترسی به آن وزن‌ها به تأیید اعتبار و تأیید مجوز نیاز دارد.

دستورالعمل زیر نحوه راه‌اندازی حساب Kaggle و احراز هویت با Kaggle را با استفاده از بسته kagglehub به شما آموزش می‌دهد.

  1. اگر ندارید یک حساب Kaggle ایجاد کنید
  2. درخواست دسترسی به Gemma
    • مطمئن شوید که با استفاده از حساب بالا وارد Kaggle شده اید
    • به صفحه رضایت بروید: https://www.kaggle.com/models/google/gemma/license/consent
    • گزینه "Verify via Kaggle Account" (انتخاب پیش فرض) را انتخاب کرده و روی next کلیک کنید
    • تکمیل فرم رضایت (فیلدهای نام و نام خانوادگی در بالا)
    • با استفاده از کادرهای چک در پایین، خط مشی را تأیید کنید
    • روی دکمه «پذیرش» در پایین کلیک کنید تا به شما اجازه دسترسی داده شود
    • این باید شما را به صفحه مدل هدایت کند ( 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 برای استفاده از GPU V100، L4، یا A100 به اعتبارات پیش پرداخت Colab یا یک حساب Colab Pro نیاز دارید.
    • سلول کد kagglehub را اجرا کنید تا یک فرم HTML نمایش داده شود که نام کاربری و رمز شما را می خواهد
    • فیلد username را از فایل kaggle.json که در مرحله قبل دانلود کردید کپی کنید و در قسمت username در فرم قرار دهید.
    • فیلد key را از فایل kaggle.json که در مرحله قبل دانلود کردید کپی کنید و در قسمت token در فرم پیست کنید.
    • روی دکمه ورود کلیک کنید تا این اعتبارنامه ها در زمان اجرا ذخیره شوند

هر زمان که زمان اجرا Colab قطع شد، باید آخرین مرحله را تکرار کنید، زیرا قطع اتصال حافظه پنهانی را که اعتبارنامه ها در آن ذخیره می شود پاک می کند.