$choice 2021. 3. 25. 18:18

Colab에서 TPU를 이용하여 학습하기 위해서는 GCP(Google Cloud Platform)을 이용해 데이터 및 모델 저장을 해야합니다.

 

1. 우선 tf.record 파일을 다음과 같이 넣어줍니다. 

(저번 시간에 만들었던 choice-life.tistory.com/72 에서 폴더를 만든 후 데이터 파일을 tf.record 파일로 변환 후 업로드 하였습니다)

다음으로는 학습 후 모델이 저장될 폴더를 만들어 줍니다.

 

이렇게하면 GCP 버킷은 준비 상태입니다.

 

2. 다음으로 구글드라이브에 자신의 모델 혹은 사전훈련 모델 코드파일을 구글 드라이브에 업로드합니다.

 

 

 

3. Colab 

 

우선 코랩 파일을 하나 만듭니다. 

colab.research.google.com/notebooks/intro.ipynb#recent=true

 

Google Colaboratory

 

colab.research.google.com

실행한 후 입니다.

상단에 런타임을 눌러 아래쪽의 런타임 유형 변경을 누릅니다.

하드웨어 가속기를 TPU로 바꾸고 저장을 합니다.

이후에 연결을 눌러 줍니다.

 

from google.colab import auth, drive

auth.authenticate_user()
drive.mount('/content/drive')

위의 코드를 입력하고 구글 드라이브를 마운트합니다.

(Google Cloud SDK, Google Drive 2가지를 인증하시게 될겁니다.)

 

cd "/content/drive/My Drive/tpu/bert-master"

코드를 실행하기 위해 해당 폴더로 들어갑니다.

 

import tensorflow as tf
import numpy as np
import os

try:
  device_name = os.environ['COLAB_TPU_ADDR']
  TPU_ADDRESS = 'grpc://' + device_name
  print('Found TPU at: {}'.format(TPU_ADDRESS))

except KeyError:
  print('TPU not found')

다음 코드를 입력하여 실행을 하면 TPU의 주소가 나타나는데 이것은 TPU를 이용할 때 tpu_name의 입력값입니다.

 

이 입력값은 매번 런타임을 실행시킬 때마다 다릅니다.

 

다음은 예제 코드입니다.

## 처음 학습

!python run_pretraining.py \
  --input_file=gs://train-bert1/dataset/* \
  --output_dir=gs://train-bert1/model_save/Init_model_a \
  --do_train=True \
  --do_eval=True \
  --bert_config_file=gs://train-bert1/bert-base-uncased-config.json \
  --train_batch_size=16 \
  --max_seq_length=512 \
  --max_predictions_per_seq=20 \
  --num_train_steps=3000000 \
  --save_checkpoints_steps=50000 \
  --num_warmup_steps=10000 \
  --learning_rate=5e-5 \
  --use_tpu=True \
  --tpu_name=grpc://10.97.163.218:8470

전체적으로 모델 세이브나 불러오기, 데이터를 입력할 때에는 Google Cloud Platform의 Storage 버킷에서 구성을 누르면 Gsutil 링크가 뜨는데 이 링크를 기준으로 저장한 폴더를 선택하고 사용하면 됩니다.

반응형