본문 바로가기

NLP 자연어 처리, Natural Language Processing

GCP, Cloud TPU 사용법

 

Google Cloud SDK 설치

# Add the Cloud SDK distribution URI as a package source
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

# Import the Google Cloud public key
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

# Update the package list and install the Cloud SDK
sudo apt-get update && sudo apt-get install google-cloud-sdk

설치 후 초기화

gcloud init

 

VM 접속하기.

gcloud compute ssh ubuntu@VM_NAME

 

아나콘다 패키지 설치

sudo apt-get update

# pip 설치
sudo apt-get install python3-pip

# wget 설치
sudo apt-get install wget

# Anaconda 설치
wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh
bash Anaconda3-2021.05-Linux-x86_64.sh

 

EXPORT

export STORAGE_BUCKET=gs://$BUCKET_NAME
export TPU_NAME=$TPU_NAME

 

GCS에서 파일 복사

# Google Cloud Storage에서 VM으로 파일 복사
gsutil cp -r gs://bert_train_1/model /home/ubuntu/model

 

GCSFUSE

export GCSFUSE_REPO=gcsfuse-`lsb_release -c -s`
echo "deb http://packages.cloud.google.com/apt $GCSFUSE_REPO main" | sudo tee /etc/apt/sources.list.d/gcsfuse.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

sudo apt-get update
sudo apt-get install gcsfuse

# mount 폴더를 만들고 해당 폴더에 GCS를 마운트
mkdir mount
gcsfuse $STORAGE_BUCKET_NAME mount

# 언마운트
fusermount -u mount

# 접속 허가
gcloud auth application-default login

 

Permission 관련 문제는 GCP 에서 구성원들을 편집자 혹은 추가하여 저장소 이전 버킷 리더로 설정하면 된다.fu

 

python run_pretraining_revise_save_count.py --input_file=gs://스토리지이름/Train_data/* --output_dir=gs://스토리지이름/Bert/Init/ --do_train=True --do_eval=False --bert_config_file=gs://스토리지이름/bert-base-uncased-config.json --train_batch_size=8 --max_seq_length=512 --max_prediction_per_seq=20 --num_train_steps=5000000 --save_checkpoints_steps=50000 --num_warmup_steps=10000 --learning_rate=5e-5 --max_to_keep=100 --use_tpu=True --tpu_name=TPU이름

 

 

modeling.py 수정 후 다시 불러 올 때. 모델 가중치 불러오기 오류가 있을 시

#assignment_map[name] = name
assignment_map[name] = name_to_variable[name]

 

추가 설정해야하는 것.

 

1. 버킷과 VM 인스턴스 작업자 편집.

2. 버킷과 TPU 작업자 편집

 

 

반응형