Использование LIT с Джеммой

Взгляд на генеративный искусственный интеллект Запустить в Google Colab Посмотреть исходный код на GitHub Учитесь в Codelabs

Продукты генеративного искусственного интеллекта относительно новы, и их поведение может значительно отличаться от более ранних форм программного обеспечения. Это делает важным исследовать используемые модели машинного обучения, изучать примеры поведения моделей и исследовать сюрпризы.

Learning Interpretability Tool (LIT; веб-сайт , GitHub ) — это платформа для отладки и анализа моделей ML, чтобы понять, почему и как они ведут себя именно так.

Здесь вы узнаете, как настроить LIT, чтобы получить больше от модели Google 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.

В этом блокноте используется реализация Gemma KerasNLP (подробнее о том, как это настроить, ниже). Вам понадобится последняя версия 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 предоставляет функцию 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, принимают входную последовательность в виде токенизированного текста и генерируют новые токены, которые являются логическими продолжениями или дополнениями.

Методы значимости позволяют вам проверить, какие части входных данных важны для модели для разных частей ее сгенерированного вывода. Модуль LIT Sequence Salience расширяет эти методы, чтобы объяснить важность последовательностей на нескольких уровнях детализации: от токенов до слов, предложений и т. д.

Вы можете использовать LIT в ячейке выше, чтобы самостоятельно поиграть с модулем Sequence Salience. Для более удобного обучения вы можете подробно изучить руководство по быстрой отладке с помощью Sequence Salience прямо в этом Colab.

Еще больше академической и технической информации о том, как работает Sequence Salience, можно найти в нашей статье .

Приложение. Доступ к Gemma в Kaggle Hub

В этом блокноте используется реализация Gemma KerasNLP, описанная в этом документе. KerasNLP хранит свои предварительно обученные веса моделей на Kaggle, а Gemma требует аутентификации и подтверждения лицензии для доступа к этим весам.

В следующей инструкции вы узнаете, как настроить учетную запись Kaggle и пройти аутентификацию в Kaggle с помощью пакета kagglehub .

  1. Создайте учетную запись Kaggle, если у вас ее нет.
  2. Запросить доступ к Джемме
    • Убедитесь, что вы вошли в Kaggle, используя указанную выше учетную запись.
    • Перейдите на страницу согласия: https://www.kaggle.com/models/google/gemma/license/consent.
    • Выберите опцию «Подтвердить через учетную запись Kaggle» (выбор по умолчанию) и нажмите «Далее».
    • Заполните форму согласия (поля имени и фамилии вверху)
    • Подтвердите политику, установив флажки внизу.
    • Нажмите кнопку «Принять» внизу, чтобы получить доступ.
    • Это должно перенаправить вас на страницу модели ( 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: https://colab.sandbox.google.com/github/google/generative-ai-docs/blob/main/site/en/gemma/docs/lit_gemma.ipynb#scrollTo=yKw8gDsh_nVR .
    • Подключитесь к среде выполнения графического процессора
    • Для Gemma 2B вы можете использовать бесплатную среду выполнения T4.
    • Для Gemma 7B вам потребуются предоплаченные вычислительные кредиты Colab или учетная запись Colab Pro для использования графического процессора V100, L4 или A100.
    • Запустите ячейку кода kagglehub , чтобы отобразить HTML-форму, которая запрашивает ваше имя пользователя и токен.
    • Скопируйте поле username из файла kaggle.json , который вы скачали на предыдущем шаге, и вставьте его в поле username в форме.
    • Скопируйте key поле из файла kaggle.json , который вы скачали на предыдущем шаге, и вставьте его в поле token в форме.
    • Нажмите кнопку входа, чтобы сохранить эти учетные данные в вашей среде выполнения.

Вам нужно будет повторять последний шаг каждый раз, когда среда выполнения Colab отключается, поскольку при отключении очищается кеш, в котором хранятся учетные данные.