Развертывание демо-версии Learning Interpretability Tool (LIT) на Google Cloud Platform

1. Обзор

В этой лабораторной работе представлены инструкции по быстрому развертыванию демо-версии LIT. Цель — познакомить вас с инструментом LIT для изучения поведения модели. Вы проведете сентиментальный анализ и воспользуетесь функцией «Контрфактический LIT», чтобы определить важность конкретных слов. Демо-версия включает набор данных для проведения анализа. В лаборатории представлены шаги по развертыванию LIT в Google Cloud Platform, анализу данных и удалению развернутых сервисов.

Что такое Инструмент интерпретации обучения (LIT)?

🔥LIT — это визуальный интерактивный инструмент для понимания моделей машинного обучения, который поддерживает текст, изображения и табличные данные. Его можно запускать как автономный сервер или внутри сред ноутбуков, таких как ноутбуки Colab, Jupyter и Google Cloud Vertex AI.

LIT создан для ответа на такие вопросы, как:

  • На каких примерах моя модель работает плохо?
  • Почему моя модель сделала такой прогноз? Можно ли объяснить этот прогноз состязательным поведением или нежелательными априорными значениями в обучающем наборе?
  • Будет ли моя модель вести себя стабильно, если я изменю такие вещи, как стиль текста, время глагола или род местоимения?

Инструмент доступен в репозитории LIT Github . Статья по этому вопросу также доступна в ArXiv .

Что ты будешь делать

Вы будете использовать Google Cloud Shell для извлечения, тегирования, отправки и развертывания образа контейнера.

Вы будете использовать реестр артефактов Google, который позволит вам централизованно хранить артефакты и создавать зависимости в рамках интегрированного опыта Google Cloud. Вы загрузите образ докера в реестр артефактов. Подробнее об этом можно узнать в документации по реестру Google Cloud Artifact .

Для развертывания образа Docker вы будете использовать Google Cloud Cloud Run , управляемый сервис Knative. Это управляемая вычислительная платформа, которая позволяет запускать контейнеры непосредственно поверх масштабируемой инфраструктуры Google.

Набор данных

В демонстрации используется набор данных Stanford Sentiment Treebank.

«Стэнфордский банк деревьев настроений — это первый корпус с полностью размеченными деревьями синтаксического анализа, который позволяет провести полный анализ композиционных эффектов настроений в языке. Корпус основан на наборе данных, представленном Пангом и Ли (2005), и состоит из 11 855 отдельных предложений. извлечено из рецензий на фильмы. Оно было проанализировано с помощью Стэнфордского парсера (Кляйн и Мэннинг, 2003) и включает в общей сложности 215 154 уникальных фраз из этих деревьев синтаксического анализа, каждая из которых была аннотирована тремя судьями-людьми». Справочный документ

Прежде чем вы начнете

Для работы с этим справочным руководством вам понадобится проект Google Cloud . Вы можете создать новый или выбрать уже созданный проект.

2. Запустите Google Cloud Console и Cloud Shell.

На этом этапе вы запустите Google Cloud Console и будете использовать Google Cloud Shell.

2-a. Запустите облачную консоль Google.

Запустите браузер и перейдите в Google Cloud Console .

Консоль Google Cloud — это мощный и безопасный интерфейс веб-администратора, который позволяет быстро управлять ресурсами Google Cloud. Это мобильный инструмент DevOps.

2-б: Запустите Google Cloud Shell

Запустите Google Cloud Shell. См. изображение ниже для справки.

Запуск облачной консоли Google

Вы должны увидеть что-то вроде этого:

Облачная консоль Google

На следующих шагах вы будете использовать командную строку.

Cloud Shell — это онлайн-среда разработки и эксплуатации, доступная в любом месте с помощью браузера. Вы можете управлять своими ресурсами с помощью онлайн-терминала, в который предварительно загружены такие утилиты, как инструмент командной строки gcloud, kubectl и другие. Вы также можете разрабатывать, создавать, отлаживать и развертывать свои облачные приложения с помощью онлайн-редактора Cloud Shell. Cloud Shell предоставляет готовую онлайн-среду для разработчиков с предустановленным набором избранных инструментов и 5 ГБ постоянного места для хранения данных.

2-c: Установите проект Google Cloud

Укажите проект Google Cloud и место, где вы будете создавать сервисы Google Cloud. Вы будете использовать эту информацию для создания Google Cloud Workbench и реестра артефактов. Вы будете использовать первый для создания и перемещения контейнера. Последний вы будете использовать для хранения образа контейнера.

Вы должны установить единственную обязательную переменную PROJECT_ID. Вы можете изменить другие переменные, но для запуска лаборатории достаточно значений по умолчанию. Установите правильный проект Google Cloud. Это используется командой gcloud.

# Set your GCP Project ID.
export PROJECT_ID=[Your project ID]

3. Разверните образы Docker в реестре Google Cloud Artifact.

3-а: Создайте реестр артефактов Google Cloud

Во-первых, вам необходимо создать реестр артефактов для хранения образов докеров.

# Set Google Cloud Location.
export GCP_LOCATION=us-central1
# Set image container artifact repo name.
export ARTIFACT_REPO=lit-demo
# Set lit demo name.
export DEMO_NAME=demo1

# Use below cmd to list all Google Cloud Artifact locations:
# gcloud artifacts locations list
# Create a repo to upload the docker container images.
gcloud artifacts repositories create $ARTIFACT_REPO \
    --repository-format=docker \
    --location=$GCP_LOCATION \
    --description="LIT Demos"

# Validate the repo creation.
gcloud artifacts repositories describe $ARTIFACT_REPO \
    --location=$GCP_LOCATION

3-b: Извлечение образа Docker

Во-вторых, перечислите все образы докеров LIT в общедоступном репозитории, используя команду ниже.

# List all the public LIT docker images.
gcloud container images  list-tags  us-east4-docker.pkg.dev/lit-demos/lit-app/lit-app

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

Изображения Google Cloud Docker

Извлеките выбранный вами образ Docker, используя команду ниже.

# Set your chosen tag.
export TAG=[Your Chosen Tag]

# Pull the chosen docker image.
docker pull us-east4-docker.pkg.dev/lit-demos/lit-app/lit-app:$TAG

3-c: Тег Docker-образа

В-третьих, пометьте изображение, которое вы только что извлекли, в целевой репозиторий.

# Push the pulled docker image to target repository.
docker tag  us-east4-docker.pkg.dev/lit-demos/lit-app/lit-app:$TAG  $GCP_LOCATION-docker.pkg.dev/$PROJECT_ID/$ARTIFACT_REPO/$DEMO_NAME:$TAG

3-d: Отправка образа Docker

Затем отправьте образ Docker в целевой репозиторий.

# Push the pulled docker image to the target repository.
docker push  $GCP_LOCATION-docker.pkg.dev/$PROJECT_ID/$ARTIFACT_REPO/$DEMO_NAME:$TAG

3-e: Развертывание образа Docker в CloudRun

Разверните образ Docker в облаке из целевого репозитория.

Google Cloud Deploy Cloud Run

В опции развертывания выберите «Развернуть одну ревизию из существующего образа контейнера».

В Config назовите свою службу так же, как $DEMO_NAME, и выберите регион, который будет таким же, как $GCP_LOCATION.

Для аутентификации вы можете выбрать «Разрешить вызовы без аутентификации» или «Требовать аутентификацию». Если вы выберете «Требовать аутентификацию», вам может потребоваться выполнить дополнительные действия для доступа к демо-версии. Поэтому рекомендуется выбрать «Разрешить вызовы без аутентификации», если вы просто хотите ознакомиться с демо-версией.

Конфигурация Google Cloud Run

В конфигурации «Контейнеры» выберите порт контейнера — 5432, память — 32 ГБ и процессор — 8.

Конфигурация облачного контейнера Google

После настройки конфигурации создайте экземпляр.

4. Просмотрите сервис LIT на GCP.

После создания сервиса вы можете просмотреть логи в Google Cloud Console.

Навигация: Верхняя панель в Google Cloud Console → Cloud Run (в строке поиска) → выберите приложение demo1 → выберите ЖУРНАЛЫ. Вы также можете проверить МЕТРИКИ и т. д.

В Google Cloud Console используйте поиск и введите «Cloud Run». См. изображение ниже для справки.

Поиск в облачной консоли Google

Выберите только что созданную службу «demo1». См. изображение ниже для справки.

Список запусков облака Google Cloud Console

Вы можете проверить раздел ЖУРНАЛЫ. А пока вы можете найти URL-адрес ссылки. См. изображение ниже для справки. Журнал запуска облака Google Cloud Console

Вы можете проверить раздел МЕТРИКИ. См. изображение ниже для справки. Метрики запуска облака в Google Cloud Console

5. Просмотрите URL-адрес демонстрации LIT.

Если вы не можете получить доступ к URL-адресу из-за запрещенной ошибки, вам необходимо изменить службу и разрешить вызов без аутентификации.

LIT Изменить разрешение на запуск облака

Или вы можете проксировать службу на локальном хосте, используя команду ниже.

# Proxy the service to local host.
gcloud run services proxy $DEMO_NAME --project $PROJECT_ID

Убедитесь, что регион совпадает с GCP_LOCATION. Затем вы можете просмотреть URL-адрес локального хоста.

ЛИТ Прокси Сервис

Демо-версия LIT выглядит как на скриншоте ниже:

ЛИТ Демо-дом

Вы будете проверять сентиментальный анализ в наборе данных Stanford Sentiment Treebank . Выполните следующие шаги

  • Используйте функцию поиска в таблице данных LIT, чтобы найти 56 точек данных, содержащих слово «нет».

ЛИТ Демо Поиск

  • Проверьте точность модели BERT в таблице показателей. Точность модели BERT высока.

LIT Демо Точность

  • Выберите отдельные точки данных и найдите объяснения. Найдите слово «депрессия».

LIT Демо Точность

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

LIT Демо Точность

Вы можете попробовать множество функций LIT. Вы можете найти наше короткое видео на YouTube или LIT ArXiv , объясняющее функции LIT.

6. Поздравления

Молодцы, завершили кодлаб! Время расслабиться!

Очистить

Чтобы очистить лабораторию, удалите все созданные для нее облачные службы Google. Используйте Google Cloud Shell для выполнения следующих команд.

Если соединение с Google Cloud потеряно из-за бездействия, сбросьте переменные. Следуйте инструкциям 2-c и 4-1, чтобы установить переменные оболочки и настроить проект Google Cloud.

# Delete the Cloud Run Service.
gcloud run services delete $DEMO_NAME \
--region=$GCP_LOCATION

# Delete the Artifact Registry.
gcloud artifacts repositories delete $ARTIFACT_REPO\
	--location=$GCP_LOCATION

### **Further reading**

Continue learning the LIT tool features with the below materials:

* LIT open source code base: [Git repo](https://github.com/PAIR-code/lit)
* LIT paper: [ArXiv](https://arxiv.org/pdf/2008.05122.pdf)
* LIT feature video demo: [Youtube](https://www.youtube.com/watch?v=CuRI_VK83dU)


### **License**

This work is licensed under a Creative Commons Attribution 2.0 Generic License.