본문 바로가기
Programming/환경셋팅

gcp(google cloud platform) tpu 사용

by Chan_찬 2020. 6. 23.
728x90
반응형

cloud tpu

t2t transformer 사용하기

설명

  • transformer(디코더만): 단일 시퀀스 모델링을 수행하는 경우(사례: 언어 모델링)
  • transformer(인코더-디코더): 시퀀스가 시퀀스 모델링을 수행하는 경우(사례: 번역)
  • transformer(인코더만): 인코더만 실행하여 시퀀스의 클래스 모델링을 수행하는 경우(사례: 감정분류)

TransformerTensor2Tensor 라이브러리에 있는 모델 중 하나일 뿐이다. T2T는 스크립트 세트뿐 아니라 딥러닝 모델과 데이터세트까지 포함된 라이브러리로서, 모델을 학습시키고 데이터를 다운로드 밑 준비하는 데 사용할 수 있다.

Cloud Storage bucket 생성

데이터 / 학습결과를 저장할 버킷 생성

  1. GCP storage 이동
  2. 새 버킷 생성
    • 고유이름
    • 저장소 등급
    • 위치: cloud tpu 를 사용하기위해 기본값 그대로 저장
  3. 버킷에 vocab 과 dataset 저장하기
    • data/train-gpu 폴더에 vocab, dataset 저장

ctpu 사용

  1. GCP Console 창 열기
  2. cloud tpu를 만들 프로젝트 사용
    $ gcloud config set project <my-project>
    $ gcloud config set project nmt-training

가상머신(VM) and cloud tpu 서비스를 만듬

ctpu up
ctpu up --tpu-size=v3-8 --zone=us-central1-b #v3-8
ctpu will use the following configuration:

Name: [your TPU's name]
Zone: [your project's zone]
GCP Project: [your project's name]
TensorFlow Version: 1.14
VM:
  Machine Type: [your machine type]
  Disk Size: [your disk size]
  Preemptible: [true or false]
Cloud TPU:
  Size: [your TPU size]
  Preemptible: [true or false]

OK to create your Cloud TPU resources with the above configuration? [Yn]:

compute engine VM 확인

ctpu up 명령어 실행이 끝나면 프롬프트가 username@tpuname 인지 확인한다.

custom t2t_problem git clone

$ git clone https://gitlab.com/dev/tools.git

환경변수 만들기

export STORAGE_BUCKET=gs://nmt-data
export DATA_DIR=$STORAGE_BUCKET/data/train-gpu
export MODEL=transformer
export HPARAMS=transformer_big_enfr_tpu
export PROBLEM=t2t_problem
export TMP_DIR=/tmp/t2t_tmp
export T2T_PROBLEM_DIR=/home/user/t2t
export TRAIN_DIR=$DATA_DIR/gpu
export TPU_NAME=chan-lee

training

t2t-trainer \
--t2t_usr_dir=$T2T_PROBLEM_DIR \
--data_dir=$DATA_DIR \
--problem=$PROBLEM \
--model=$MODEL \
--hparams_set=$HPARAMS \
--output_dir=$TRAIN_DIR \
--cloud_tpu_name=$TPU_NAME \
--use_tpu=True

gcp storage 복사

gsutil cp tacotron-2_image.tar gs://nmt-data/docker/
gsutil cp gs://nmt-data/docker/tacotron-2_image.tar .

삭제

  1. compute engine VM 연결 해제
$ exit
  1. cloud shell 에서 cloud tpu 설정 때 사용한 --zone 플래그로 ctpu delete 를 실행하여 compute engine VM 과 cloud tpu 를 삭제
$ ctpu delete [optional: --zone]

ctpu up 실행 때 tpu 리소스 이름을 설정한경우, ctpu delete--name 플래그로 이름을 지정해야 한다

  1. tpu 사용 확인
    $ ctpu status
    2018/04/28 16:16:23 WARNING: Setting zone to "us-central1-b"
    No instances currently exist.
         Compute Engine VM:     --
         Cloud TPU:             --
728x90
728x90
BIG

'Programming > 환경셋팅' 카테고리의 다른 글

github 자체 CI, CD => action  (0) 2020.07.01
Rabbit MQ - message queue  (0) 2020.06.24
ssh config  (0) 2020.06.20
AWS S3 - ec2에 mount 하기 - s3fs보다 2배 빠르다 - goofys  (0) 2019.12.31
Data Ingestion, Gobblin  (0) 2016.09.27
Buy me a coffeeBuy me a coffee

댓글