在 Google Cloud Platform 上部署学习可解释性工具 (LIT) 演示

1. 概览

本实验介绍了如何快速部署 LIT 演示。目标是让您熟悉 LIT 工具,以探索模型行为。您将进行情感分析,并使用 反事实 LIT 功能找出特定字词的重要性。该演示包含一个可用于执行分析的数据集。本实验介绍了在 Google Cloud Platform 中部署 LIT、分析数据以及删除已部署服务的步骤。

Learning Interpretability Tool (LIT) 是什么?

🔥?LIT 是一款可视化、交互式机器学习模型理解工具,支持文本、图片和表格数据。它可以作为独立服务器运行,也可以在 Colab、Jupyter 和 Google Cloud Vertex AI 笔记本等笔记本环境内运行。

LIT 旨在回答以下问题:

  • 我的模型在哪类样本上表现不佳?
  • 我的模型为何做出这种预测?此预测是否归因于对抗行为或训练集中不良的先验数据?
  • 如果改变文本风格、动词时态或代词性别等内容,我的模型能否表现一致?

该工具可在 LIT GitHub 代码库中找到。ArXiv 中也提供了与此相关的论文。

实践内容

您将使用 Google Cloud Shell 来拉取、标记、推送和部署容器映像。

您将使用 Google Artifact Registry,在一体化的 Google Cloud 体验中集中存储工件和构建依赖项。您需要将 Docker 映像上传到 Artifact Registry。如需了解详情,请参阅 Google Cloud Artifact Registry 文档。

您将使用 Google Cloud Run(一项代管式 Knative 服务)来部署 Docker 映像。它是一种代管式计算平台,可让您直接在 Google 可扩缩的基础架构上运行容器。

数据集

该演示使用 Stanford Sentiment Treebank 数据集。

“斯坦福情感树库是首个具有完全标记的解析树的语料库,它支持全面分析语言中情感的组成效应。该语料库基于 Pang and Lee (2005) 引入的数据集,包含从影评中提取的 11,855 个单句。它使用斯坦福解析器解析(Klein 和 Manning,2003 年),从这些解析树中纳入了共 215,154 个唯一短语,每个短语由 3 个人类法官进行注释。”参考论文

准备工作

阅读本参考指南,您需要一个 Google Cloud 项目。您可以创建一个新项目,也可以选择已创建的项目。

2. 启动 Google Cloud 控制台和 Cloud Shell

在此步骤中,您将启动一个 Google Cloud 控制台并使用 Google Cloud Shell。

2-a:启动 Google Cloud 控制台

启动浏览器并转到 Google Cloud 控制台

Google Cloud 控制台是一个强大、安全的 Web 管理界面,可让您快速管理 Google Cloud 资源。它是一种随时随地运行的 DevOps 工具。

2-b:启动 Google Cloud Shell

启动 Google Cloud Shell。请参考下图。

Google Cloud 控制台发布

您应该会看到与以下类似的内容:

Google Cloud Console

您将在后续步骤中使用命令提示符。

Cloud Shell 是一个可通过浏览器访问的在线开发和运营环境。您可以借助预加载了实用程序(如 gcloud 命令行工具、kubectl 等)的在线终端管理资源。您还可以使用在线 Cloud Shell Editor 开发、构建、调试和部署云端应用。Cloud Shell 提供了一个可供开发者使用的在线环境,其中预装了喜爱的工具集和 5GB 的永久性存储空间。

2-c:设置 Google Cloud 项目

设置 Google Cloud 项目以及您将在其中创建 Google Cloud 服务的位置。您将使用这些信息创建 Google Cloud Workbench 和 Artifact Registry。您将使用前者来构建和推送容器。后者用于存储容器映像。

您必须设置唯一的强制性 PROJECT_ID 变量。您可以修改其他变量,但默认值足以运行实验。设置正确的 Google Cloud 项目。这由 gcloud 命令使用。

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

3. 将 Docker 映像部署到 Google Cloud Artifact Registry

3-a:创建 Google Cloud Artifact Registry

首先,您需要创建一个 Artifact Registry 来存储 Docker 映像。

# 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 Docker 映像。

# 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 映像从目标代码库部署到 Cloud Run。

Google Cloud Deploy Cloud Run

在部署选项中,选择“从现有容器映像部署一个修订版本”。

在“配置”中,将您的服务命名为 $DEMO_NAME,然后选择与 $GCP_LOCATION 相同的区域。

对于身份验证,您可以选择“允许未通过身份验证的调用”或“需要身份验证”如果您选择“需要身份验证”您可能需要完成额外步骤才能访问演示。因此,建议您选择“允许未通过身份验证的调用”如果您只想熟悉一下演示

Google Cloud Run 配置

在 Containers 配置中,将 Container 端口设为 5432,将 Memory 设为 32Gib,将 CPU 设为 8。

Google Cloud 容器配置

设置配置后,创建实例。

4. 查看 GCP 上的 LIT 服务

创建服务后,您可以在 Google Cloud 控制台中查看日志。

导航:Google Cloud 控制台中的顶栏 → Cloud Run(在搜索栏中)→ 选择演示版 1 应用 → 选择“日志”。您还可以查看 METRICS 等。

在 Google Cloud 控制台中,使用“搜索”并输入“Cloud Run”。请参考下图。

Google Cloud 控制台搜索

选择“演示 1”刚刚创建的 Service 中。请参见下图作为参考。

Google Cloud 控制台 Cloud Run 列表

您可以查看“日志”部分。在此期间,您可以找到参考文件的网址。请参见下图作为参考。Google Cloud 控制台 Cloud Run 日志

您可以查看“指标”部分。请参见下图作为参考。Google Cloud 控制台 Cloud Run 指标

5. 浏览 LIT 演示网址

如果由于“禁止访问”错误而无法访问该网址,则需要更改服务并允许未经身份验证的调用。

LIT 更改 Cloud Run 权限

或者,您也可以使用下面的命令将服务代理到本地主机。

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

请确保区域与 GCP_LOCATION 相同。然后,您就可以浏览本地主机网址了。

LIT 代理服务

LIT 演示如以下屏幕截图所示:

LIT 演示首页

您将检查 Stanford Sentiment Treebank 数据集的情感分析。请按以下步骤操作

  • 使用 LIT 数据表中的搜索功能查找包含“not”一词的 56 个数据点。

LIT 演示搜索

  • 在指标表中检查 BERT 模型准确率。BERT 模型的准确率很高。

LIT 演示的准确性

  • 选择各个数据点并查找相关说明。搜索“抑郁症”一词。

LIT 演示的准确性

  • 选择“这不是这部抑郁症时代的终极黑帮电影”。查看 Salience Map。显著图表明和“终极”对预测很重要。

LIT 演示的准确性

您可以尝试的 LIT 功能有很多。您可以观看我们的 YouTube 短视频或介绍 LIT 功能的 LIT ArXiv

6. 恭喜

恭喜您完成此 Codelab!该放松一下了!

清理

如需清理实验,请删除为该实验创建的所有 Google Cloud 服务。使用 Google Cloud Shell 运行以下命令。

如果 Google Cloud 连接因闲置而中断,请重置这些变量。按照 2-c 和 4-1 步骤设置 shell 变量并设置 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.