大家好我是Jerry老師,這篇帶來了五分鐘學會系列,主要跟大家分享如何在GCP上採用TPU來訓練自然語言模型,整個過程不包含「訓練時間、主機設定與安裝時間」只需要五分鐘就可以幾行指令就可以完成訓練操作。
有了主控台之後,就可以開始玩了。
在主控台畫面,點選「新增專案」
接著可以會有一個自動產生的專案名稱,我們可以自己輸入,但是要記得輸入的名稱。
像是我在自動產生的名稱前後加上jerry跟tpu。
接著回主控台,在畫面右上角,開啟「Cloud Shell」
1.接著輸入以下參數
export PROJECT_NAME=jerry-project87630-tpu(注意這是剛剛我設定的ID)
請在紅字修改自己剛剛開的專案名稱
2.執行下面指令
gcloud config set project ${PROJECT_NAME}
3.建立bucket-name,這是Google專門存放資料的技術,我取的跟ID一樣好了
gsutil mb -p ${PROJECT_NAME} -c standard -l europe-west4 -b on gs://jerry-project87630-tpu
一樣請在紅字修改自己剛剛開的專案名稱
接著就正式開啟TPU囉
請輸入下面指令,這邊我的TPU名稱設定jerry,大家照貼即可。
ctpu up --tpu-size=v3-8 --name=jerry --machine-type=n1-standard-8 --zone=europe-west4-a --tf-version=2.2
這邊採用的是最新TensorFlow2.2版本
看到下面畫面,打 y 即可
接著會看到下面畫面,這是TPU建立過程。
接著進入我們剛剛設定好的TPU機器,執行下面指令
gcloud compute ssh jerry --zone=europe-west4-a
中間如果看到以下畫面,看到這幾行直接按Enter即可。
接著設定環境參數,執行下面指令
export TPU_NAME=jerry
設定BUCKET位置,這個跟前面設定一樣
export STORAGE_BUCKET=gs://jerry-project87630-tpu
一樣請在紅字修改自己剛剛開的專案名稱
然後安裝執行這次實作的套件
sudo pip3 install -r /usr/share/models/official/requirements.txt
最後就剩兩個步驟,設定以下環境參數
export PYTHONPATH="${PYTHONPATH}:/usr/share/models" (vm)$ export BERT_BASE_DIR=gs://cloud-tpu-checkpoints/bert/keras_bert/uncased_L-24_H-1024_A-16 (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/bert-output(vm)$ export GLUE_DIR=gs://cloud-tpu-checkpoints/bert/classification(vm)$ export TASK=mnli
接著跑模型,執行下面指令
python3 /usr/share/models/official/nlp/bert/run_classifier.py \ --mode='train_and_eval' \ --input_meta_data_path=${GLUE_DIR}/${TASK}_meta_data \ --train_data_path=${GLUE_DIR}/${TASK}_train.tf_record \ --eval_data_path=${GLUE_DIR}/${TASK}_eval.tf_record \ --bert_config_file=${BERT_BASE_DIR}/bert_config.json \ --init_checkpoint=${BERT_BASE_DIR}/bert_model.ckpt \ --train_batch_size=32 \ --eval_batch_size=32 \ --learning_rate=2e-5 \ --num_train_epochs=3 \ --model_dir=${MODEL_DIR} \ --distribution_strategy=tpu \ --tpu=${TPU_NAME}
看到下面畫面,表示跑成功囉,大約一小時之後會有結果,中途如果要中斷,就按Control+z
因為TPU非常貴,所以下面就是關閉的程序
首先離開VM
exit
接著確認目前的TPU有哪些還在執行
ctpu list
接著刪除指定的TPU,剛剛我設定的TPU名字是jerry,在下面畫面按 y 就可以刪除TPU囉!
ctpu delete jerry
目前的Google TPU費用,不同區域與等級都有不同價格
平均一個小時1塊到9塊美金不等
目前如果採用標準TPU-V2 約5塊美金,約156元台幣,跑一天差不多3800左右。
跑一個月就是11萬多,如果用好一點TPU-V3 約8塊美金,跑一個月17萬。
感謝文章的TPU費用是由Google雲端贊助的費用(GCP credit supported activity)。
以上是這篇文章跟大家分享透過TPU如何跑BERT模型,以及費用成本估算,感謝收看。
沒有留言:
張貼留言