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
실행한 후 입니다.
상단에 런타임을 눌러 아래쪽의 런타임 유형 변경을 누릅니다.
하드웨어 가속기를 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 링크가 뜨는데 이 링크를 기준으로 저장한 폴더를 선택하고 사용하면 됩니다.
반응형
'NLP 자연어 처리, Natural Language Processing' 카테고리의 다른 글
GCP, Cloud TPU 사용법 (0) | 2021.07.06 |
---|---|
TPU를 이용한 BERT GLUE task Train, Evaluation 해보기 (0) | 2021.04.24 |
GCP(Google Cloud Platform) Storage, 버킷 만들기 (0) | 2021.03.25 |
NLP data를 tf.record로 변환하기 (0) | 2021.03.18 |
Wikipedia Dataset Preprocessing (0) | 2021.03.18 |