Google Cloud Platform에 학습 해석 가능성 도구 (LIT) 데모 배포

1. 개요

이 실습에서는 LIT 데모를 빠르게 배포하는 방법을 설명합니다. 모델 동작을 탐색할 수 있도록 LIT 도구에 익숙해지는 것이 목표입니다. 감정 분석을 수행하고 반사실적 LIT 특성을 사용하여 특정 단어의 중요성을 파악합니다. 데모에는 분석을 수행하기 위한 데이터 세트가 포함되어 있습니다. 실습에서는 Google Cloud Platform에 LIT를 배포하고, 데이터를 분석하고, 배포된 서비스를 삭제하는 단계를 설명합니다.

학습 통역 도구 (LIT)란 무엇인가요?

🔥LIT는 텍스트, 이미지, 테이블 형식 데이터를 지원하는 시각적 대화형 ML 모델 이해 도구입니다. 독립형 서버로 실행하거나 Colab, Jupyter 및 Google Cloud Vertex AI 노트북과 같은 노트북 환경 내에서 실행할 수 있습니다.

LIT는 다음과 같은 질문에 답할 수 있도록 설계되었습니다.

  • 내 모델은 어떤 종류의 예시에서 저조한 성능을 보이는가?
  • 내 모델은 왜 이렇게 예측하는가? 이 예측이 적대적 행동 또는 학습 세트의 바람직하지 않은 전제에 기인할 수 있나요?
  • 텍스트 양식, 동사 시제나 대명사 성별 등을 변경해도 내 모델이 일관적으로 작동하는가?

이 도구는 LIT GitHub 저장소에서 사용할 수 있습니다. 이에 관한 자료는 ArXiv에서도 확인하실 수 있습니다.

실습할 내용

Google Cloud Shell을 사용하여 컨테이너 이미지를 가져오고, 태그를 지정하고, 푸시하고, 배포합니다.

통합된 Google Cloud 환경의 일부로 아티팩트를 중앙에서 저장하고 종속 항목을 빌드할 수 있게 해주는 Google Artifact Registry를 사용합니다. Artifact Registry에 Docker 이미지를 업로드합니다. Google Cloud Artifact Registry 문서에서 이에 대해 자세히 알아볼 수 있습니다.

관리형 Knative 서비스인 Google Cloud Run을 사용하여 Docker 이미지를 배포합니다. 이는 Google의 확장 가능한 인프라에서 직접 컨테이너를 실행할 수 있게 해 주는 관리형 컴퓨팅 플랫폼입니다.

데이터 세트

데모에서는 Stanford Sentiment Treebank 데이터 세트를 사용합니다.

"Stanford Sentiment Treebank는 라벨 지정이 완료된 구문 분석 트리가 포함된 최초의 코퍼스로서 언어 내 감정의 구성 효과를 완벽하게 분석할 수 있습니다. 코퍼스는 Pang and Lee (2005)가 도입한 데이터 세트에 기반하며 영화 리뷰에서 추출한 11,855개의 단일 문장으로 구성됩니다. 그것은 스탠포드 파서 (Klein and 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 콘솔은 Google Cloud 리소스를 신속하게 관리할 수 있는 강력하고 안전한 웹 관리자 인터페이스입니다. 이동 중에도 사용할 수 있는 DevOps 도구입니다.

2-b: Google Cloud Shell 실행

Google Cloud Shell을 실행합니다. 아래 사진을 참고하세요.

Google Cloud 콘솔 출시

다음과 같은 결과를 확인할 수 있습니다.

Google Cloud Console

다음 단계에서는 명령 프롬프트를 사용합니다.

Cloud Shell은 브라우저를 사용하여 어디서나 액세스할 수 있는 온라인 개발 및 운영 환경입니다. gcloud 명령줄 도구, kubectl 등의 유틸리티가 미리 로드된 온라인 터미널로 리소스를 관리할 수 있습니다. 온라인 Cloud Shell 편집기를 사용하여 클라우드 기반 앱을 개발, 빌드, 디버그, 배포할 수도 있습니다. 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. Google Cloud Artifact Registry에 Docker 이미지 배포

3-a: Google Cloud Artifact Registry 만들기

먼저 Docker 이미지를 저장할 Artifact Registry를 만들어야 합니다.

# 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: CloudRun에 Docker 이미지 배포

대상 저장소에서 Cloud Run에 Docker 이미지를 배포합니다.

Google Cloud Deploy Cloud Run

배포 옵션에서 '기존 컨테이너 이미지에서 버전 1개 배포'를 선택합니다.

구성에서 서비스 이름을 $DEMO_NAME과 동일하게 지정하고 리전을 $GCP_LOCATION과 동일하게 선택합니다.

인증의 경우 '인증되지 않은 호출 허용'을 선택할 수 있습니다. 또는 '인증 필요'를 선택합니다. '인증 필요'를 선택하면 데모에 액세스하기 위해 추가 단계를 완료해야 할 수도 있습니다. 따라서 '인증되지 않은 호출 허용'을 선택하는 것이 좋습니다. 이 데모를 익히고 싶다면

Google Cloud Run 구성

컨테이너 구성에서 컨테이너 포트를 5432로, 메모리는 32GiB로, CPU를 8로 선택합니다.

Google Cloud 컨테이너 구성

구성을 설정한 후 인스턴스를 만듭니다.

4. GCP에서 LIT 서비스 보기

서비스를 만든 후 Google Cloud 콘솔에서 로그를 확인할 수 있습니다.

탐색: Google Cloud 콘솔의 상단 표시줄 → Cloud Run (검색창) → demo1 애플리케이션 선택 → 로그 선택 측정항목 등을 확인할 수도 있습니다.

Google Cloud 콘솔에서 검색을 사용하고 'Cloud Run'을 입력합니다. 아래 사진을 참고하세요.

Google Cloud Console 검색

'demo1'을 선택합니다. 사용할 수 있습니다 아래 사진을 참고하세요.

Google Cloud 콘솔 Cloud Run 목록

로그 섹션을 확인할 수 있습니다. 그동안 참조 URL을 확인할 수 있습니다. 아래 사진을 참고하세요. Google Cloud 콘솔 Cloud Run 로그

측정항목 섹션을 확인할 수 있습니다. 아래 사진을 참고하세요. Google Cloud 콘솔 Cloud Run 측정항목

5. LIT 데모 URL 찾아보기

'금지됨' 오류로 인해 URL에 액세스할 수 없는 경우 서비스를 변경하고 인증되지 않은 호출을 허용해야 합니다.

LIT Cloud Run 권한 변경

또는 아래 명령어를 사용하여 서비스를 로컬 호스트로 프록시할 수 있습니다.

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

리전이 GCP_LOCATION과 동일한지 확인합니다. 그런 다음 로컬 호스트 URL을 찾아볼 수 있습니다.

LIT 프록시 서비스

LIT 데모는 아래 스크린샷과 같습니다.

LIT 데모 홈

Stanford Sentiment Treebank 데이터 세트에서 감정 분석을 확인합니다. 다음 단계를 따르세요.

  • LIT 데이터 테이블에서 검색 기능을 사용하여 'not'이라는 단어가 포함된 56개의 데이터 포인트를 찾습니다.

LIT 데모 검색

  • 측정항목 표에서 BERT 모델 정확성을 확인하세요. BERT 모델의 정확성이 높습니다

LIT 데모 정확성

  • 개별 데이터 포인트를 선택하고 설명을 찾습니다. '우울증'이라는 단어를 검색합니다.

LIT 데모 정확성

  • '최고의 우울증 시대 갱스터 영화가 아닙니다'를 선택합니다. Salience 지도를 확인합니다. 특징 지도는 다음과 같지 '않다'고 제안함 및 'ultimate' 중요한 역할을 합니다

LIT 데모 정확성

다양한 LIT 기능을 사용해 볼 수 있습니다. LIT 기능을 설명하는 짧은 YouTube 동영상 또는 LIT ArXiv를 확인하실 수 있습니다.

6. 축하합니다

수고하셨습니다. Codelab을 완료했습니다. 휴식 시간

삭제

실습을 삭제하려면 실습을 위해 만든 Google Cloud 서비스를 모두 삭제합니다. 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.