Como implantar uma demonstração da ferramenta de aprendizado de interpretabilidade (LIT, na sigla em inglês) no Google Cloud Platform

1. Visão geral

Este laboratório fornece instruções para implantar uma demonstração de LIT rapidamente. O objetivo é familiarizar você com a ferramenta de LIT para analisar o comportamento do modelo. Você vai realizar uma análise de sentimento e usar o recurso LIT contrafactual para descobrir a importância de palavras específicas. A demonstração inclui um conjunto de dados para realizar a análise. O laboratório mostra as etapas para implantar a LIT no Google Cloud Platform, analisar os dados e excluir os serviços implantados.

O que é a ferramenta de aprendizado de interpretabilidade (LIT)?

🔥LIT é uma ferramenta visual e interativa de compreensão de modelos de ML compatível com texto, imagem e dados tabulares. Ele pode ser executado como um servidor independente ou dentro de ambientes de notebook, como Colab, Jupyter e notebooks da Vertex AI do Google Cloud.

A LIT foi criada para responder a perguntas como estas:

  • Com que tipo de exemplos o modelo tem um desempenho ruim?
  • Por que o modelo fez essa previsão? Essa previsão pode ser atribuída ao comportamento adversário ou a prioris indesejáveis no conjunto de treinamento?
  • O modelo vai se comportar de maneira consistente se mudarmos coisas como estilo do texto, tempo verbal ou gênero do pronome?

A ferramenta está disponível no repositório da LIT do GitHub (link em inglês). Um artigo sobre ele também está disponível no ArXiv (em inglês).

O que você vai fazer

Você usará o Google Cloud Shell para extrair, marcar, enviar e implantar a imagem do contêiner.

Você vai usar o Google Artifact Registry, que permite armazenar artefatos de forma centralizada e criar dependências como parte de uma experiência integrada do Google Cloud. Você vai fazer upload da imagem Docker para o Artifact Registry. Saiba mais sobre isso na documentação do Google Cloud Artifact Registry.

Você vai usar o Google Cloud Run, um serviço gerenciado do Knative, para implantar a imagem Docker. É uma plataforma de computação gerenciada que permite executar contêineres diretamente na infraestrutura escalonável do Google.

Conjunto de dados

A demonstração usa o conjunto de dados do Stanford Sentiment Treebank.

"O Stanford Sentiment Treebank é o primeiro corpus com árvores de análise totalmente rotuladas que permite uma análise completa dos efeitos de composição do sentimento na linguagem. O corpus é baseado no conjunto de dados introduzido por Pang e Lee (2005) e consiste em 11.855 frases extraídas de críticas de filmes. Ele foi analisado com o analisador de Stanford (Klein e Manning, 2003) e inclui um total de 215.154 frases exclusivas dessas árvores de análise, cada uma anotada por três juízes humanos." Documento de referência

Antes de começar

Para este guia de referência, você precisa de um projeto do Google Cloud. Você pode criar um projeto novo ou selecionar um que já tenha criado.

2. Iniciar o console do Google Cloud e o Cloud Shell

Você vai iniciar um console do Google Cloud e usar o Google Cloud Shell nesta etapa.

2-a: iniciar o console do Google Cloud

Inicie um navegador e acesse o Console do Google Cloud.

O console do Google Cloud é uma interface de administração da Web avançada e segura que permite gerenciar os recursos do Google Cloud rapidamente. Uma ferramenta de DevOps em qualquer lugar.

2-b: Iniciar o Google Cloud Shell

Inicie um Google Cloud Shell. Veja a imagem abaixo como referência.

Lançamento do console do Google Cloud

Você verá algo como:

Console do Google Cloud

Você usará o prompt de comando nas próximas etapas.

O Cloud Shell é um ambiente de desenvolvimento e operações on-line acessível pelo navegador em qualquer lugar. Você pode gerenciar seus recursos com o terminal on-line pré-carregado com utilitários como a ferramenta de linha de comando gcloud, kubectl e muito mais. Também é possível desenvolver, criar, depurar e implantar apps baseados na nuvem usando o editor on-line do Cloud Shell. O Cloud Shell oferece um ambiente on-line pronto para desenvolvedores com um conjunto de ferramentas pré-instalado e 5 GB de espaço de armazenamento permanente.

2-c: definir o projeto do Google Cloud

Defina o projeto e o local do Google Cloud em que você vai criar os serviços. Você vai usar essas informações para criar o Google Cloud Workbench e o Artifact Registry. Você usará o primeiro para criar e enviar um contêiner. Você usará o último para armazenar a imagem do contêiner.

É preciso definir a única variável PROJECT_ID obrigatória. É possível modificar as outras variáveis, mas os valores padrão são suficientes para executar o laboratório. Defina o projeto correto do Google Cloud. Ela é usada pelo comando gcloud.

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

3. implante as imagens do Docker no Artifact Registry do Google Cloud

3-a: criar um Artifact Registry do Google Cloud

Primeiro, crie um Artifact Registry para armazenar imagens do 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: extrair imagem do Docker

Depois liste todas as imagens Docker da LIT no repositório público usando o comando abaixo.

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

É possível encontrar todas as imagens disponíveis e a tag correspondente, que se refere à versão da imagem, e escolher a tag que você quer implantar.

Imagens do Google Cloud Docker

Extraia a imagem do Docker escolhida usando o comando abaixo.

# 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: Adicionar tag à imagem do Docker

Em terceiro lugar, marque a imagem que você acabou de extrair no repositório de destino.

# 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: enviar imagem do Docker

Em seguida, envie a imagem Docker para o repositório de destino.

# 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: Implantar a imagem do Docker no CloudRun

Implante a imagem Docker no Cloud Run a partir do repositório de destino.

Google Cloud Deploy Cloud Run

Na opção de implantação, selecione "Implantar uma revisão de uma imagem de contêiner atual".

Na configuração, dê ao serviço o mesmo nome de $DEMO_NAME e selecione a região para ser igual a $GCP_LOCATION.

Para o Authentication, escolha "Permitir invocações não autenticadas" ou "Autenticação necessária". Se você selecionar "Exigir autenticação", será necessário concluir outras etapas para acessar a demonstração. Portanto, é recomendável selecionar "Permitir invocações não autenticadas" caso queira conhecer a demonstração.

Configuração do Google Cloud Run

Na configuração de Contêineres, selecione a porta Contêiner como 5432, a Memória como 32 Gb e a CPU como 8.

Configuração do contêiner do Google Cloud

Depois de definir a configuração, crie a instância.

4. Ver o serviço da LIT no GCP

Depois de criar o serviço, é possível observar os registros no console do Google Cloud.

Navegação: barra superior do console do Google Cloud → Cloud Run (na barra de pesquisa) → selecione o aplicativo demo1 → selecione os REGISTROS. Você também pode verificar as métricas METRICS etc.

No console do Google Cloud, use a opção "Pesquisar" e digite "Cloud Run". Veja a imagem abaixo como referência.

Pesquisa do console do Google Cloud

Selecione "demo1" que você acabou de criar. Veja a imagem abaixo como referência.

Lista do Cloud Run no console do Google Cloud

Você pode verificar a seção REGISTROS. Enquanto isso, você pode encontrar o URL da referência. Veja a imagem abaixo como referência. Registro do Cloud Run no console do Google Cloud

Consulte a seção "MÉTRICAS". Veja a imagem abaixo como referência. Métricas do Cloud Run no console do Google Cloud

5. Procure o URL da demonstração da LIT

Se você não conseguir acessar o URL devido ao erro "Proibido", será necessário alterar o serviço e permitir a invocação não autenticada.

Permissão do Cloud Run para alteração de LIT

Ou você pode proxy do serviço para o host local usando o comando abaixo.

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

Confirme que a região é a mesma de GCP_LOCATION. Em seguida, procure o URL do host local.

Serviço de proxy da LIT

A demonstração da LIT é parecida com a captura de tela abaixo:

Página inicial da demonstração da LIT

Você vai verificar essa análise no conjunto de dados Stanford Sentiment Treebank. Siga as etapas abaixo:

  • Use a função de pesquisa na tabela de dados da LIT para encontrar os 56 pontos de dados que contêm a palavra "não".

Pesquisa de demonstração da LIT

  • Verifique a precisão do modelo BERT na tabela de métricas. A precisão do modelo BERT é alta.

Precisão da demonstração da LIT

  • Selecione pontos de dados individuais e procure explicações. Procure a palavra "depressão".

Precisão da demonstração da LIT

  • Selecione "Não é o melhor filme de gângster da era da depressão". Verifique o mapa de saliência. Os mapas de saliência sugerem que "não" e “final” são importantes para a previsão.

Precisão da demonstração da LIT

Há muitos recursos da LIT que você pode testar. Confira nosso breve vídeo do YouTube ou a LIT ArXiv explicando os recursos da LIT.

6. Parabéns

Parabéns por concluir o codelab. Hora de relaxar!

Limpar

Para limpar o laboratório, exclua todos os serviços do Google Cloud criados para ele. Use o Google Cloud Shell para executar os comandos a seguir.

Se a conexão do Google Cloud for perdida por inatividade, redefina as variáveis. Siga as instruções 2-c e 4-1 para definir as variáveis do shell e o projeto do 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.