Melatih model ML dengan PyTorch
Tutorial ini menjelaskan cara menjalankan tugas pelatihan yang menggunakan framework machine learning PyTorch. Tutorial ini menjelaskan cara mengonfigurasi tugas Anda untuk menggunakan PyTorch yang sedikit berbeda dengan menggunakan framework ML lain yang didukung oleh AI Platform Training. Kemudian, tutorial ini menunjukkan cara menjalankan tugas pelatihan menggunakan contoh kode PyTorch yang melatih model berdasarkan data dari set data Perjalanan Taksi Chicago.
Tutorial ini juga menunjukkan cara menggunakan PyTorch dengan GPU dan dengan penyesuaian hyperparameter.
Container PyTorch
Versi runtime AI Platform Training tidak menyertakan PyTorch sebagai dependensi. Sebagai gantinya, untuk menjalankan tugas pelatihan yang menggunakan PyTorch, tentukan container PyTorch bawaan untuk digunakan oleh AI Platform Training.
Mengonfigurasi container bawaan untuk pelatihan menggunakan beberapa sintaksis yang sama dengan mengonfigurasi container kustom. Namun, Anda tidak perlu membuat penampung Docker sendiri; sebagai gantinya, tentukan URI image container yang disediakan oleh AI Platform dan berikan paket pelatihan Python yang Anda buat.
AI Platform menyediakan container PyTorch bawaan berikut:
URI image container | Versi PyTorch | Prosesor yang didukung |
---|---|---|
gcr.io/cloud-ml-public/training/pytorch-xla.1-11 |
1,11 | CPU, TPU |
gcr.io/cloud-ml-public/training/pytorch-gpu.1-11 |
1,11 | GPU |
gcr.io/cloud-ml-public/training/pytorch-xla.1-10 |
1.10 | CPU, TPU |
gcr.io/cloud-ml-public/training/pytorch-gpu.1-10 |
1.10 | GPU |
gcr.io/cloud-ml-public/training/pytorch-xla.1-9 |
1.9 | CPU, TPU |
gcr.io/cloud-ml-public/training/pytorch-gpu.1-9 |
1.9 | GPU |
gcr.io/cloud-ml-public/training/pytorch-xla.1-7 |
1,7 | CPU, TPU |
gcr.io/cloud-ml-public/training/pytorch-gpu.1-7 |
1,7 | GPU |
gcr.io/cloud-ml-public/training/pytorch-xla.1-6 |
1.6 | CPU, TPU |
gcr.io/cloud-ml-public/training/pytorch-gpu.1-6 |
1.6 | GPU |
gcr.io/cloud-ml-public/training/pytorch-cpu.1-4 |
1.4 | CPU |
gcr.io/cloud-ml-public/training/pytorch-gpu.1-4 |
1.4 | GPU |
Image container ini berasal dari Deep Learning Containers dan menyertakan dependensi yang disediakan oleh Deep Learning Containers.
Jika Anda ingin menggunakan versi PyTorch yang tidak tersedia di salah satu container bawaan, ikuti panduan untuk menggunakan container kustom.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Mendownload kode contoh
Jalankan perintah berikut untuk mendownload aplikasi pelatihan PyTorch contoh dan buka direktori dengan aplikasi pelatihan:
git clone --depth=1 \
https://github.com/GoogleCloudPlatform/ai-platform-samples.git
cd ai-platform-samples/training/pytorch/structured/python_package
Secara opsional, periksa struktur kode pelatihan:
ls -pR
Direktori trainer/
berisi aplikasi pelatihan PyTorch, dan
setup.py
memberikan detail konfigurasi untuk memaketkan aplikasi
pelatihan.
Membuat bucket Cloud Storage
Buat bucket Cloud Storage untuk menyimpan kode pelatihan yang dipaketkan dan artefak model yang dibuat oleh tugas pelatihan Anda. Jalankan perintah berikut:
gcloud storage buckets create gs://BUCKET_NAME --location=us-central1
Ganti BUCKET_NAME dengan nama unik yang Anda pilih untuk bucket. Pelajari persyaratan untuk nama bucket.
Atau, Anda dapat menggunakan bucket Cloud Storage yang ada di project Google Cloud Anda. Untuk tutorial ini, pastikan untuk menggunakan bucket di
region us-central1
.
Melatih model PyTorch
Tutorial ini menunjukkan beberapa cara untuk melatih model PyTorch di Pelatihan AI Platform:
- Pada instance virtual machine (VM) dengan prosesor CPU
- Di VM dengan prosesor GPU
- Menggunakan penyesuaian hyperparameter (di VM dengan prosesor CPU)
Pilih salah satu cara ini sekarang, dan ikuti petunjuk di tab yang sesuai untuk tutorial ini selanjutnya. Kemudian, Anda dapat mengulangi bagian ini jika ingin mencoba pelatihan dengan salah satu konfigurasi lainnya.
Bersiap untuk membuat tugas pelatihan
Sebelum membuat tugas pelatihan, pastikan kode pelatihan Anda sudah siap dan tentukan beberapa opsi konfigurasi di lingkungan lokal Anda.
CPU
Tetapkan beberapa variabel Bash yang akan digunakan saat Anda membuat tugas pelatihan:
BUCKET_NAME=BUCKET_NAME
JOB_NAME=getting_started_pytorch_cpu
JOB_DIR=gs://${BUCKET_NAME}/${JOB_NAME}/models
Ganti BUCKET_NAME dengan nama bucket Cloud Storage yang Anda buat di bagian sebelumnya.
GPU
Pastikan kode pelatihan PyTorch Anda mengetahui GPU di VM yang digunakan oleh tugas pelatihan, sehingga PyTorch memindahkan tensor dan modul ke GPU dengan tepat.
Jika menggunakan kode contoh yang disediakan, Anda tidak perlu melakukan apa pun, karena kode contoh berisi logika untuk mendeteksi apakah mesin yang menjalankan kode memiliki GPU:
Jika Anda mengubah kode pelatihan, baca panduan PyTorch untuk semantik CUDA untuk memastikan GPU digunakan.
Tetapkan beberapa variabel Bash yang akan digunakan saat Anda membuat tugas pelatihan:
BUCKET_NAME=BUCKET_NAME JOB_NAME=getting_started_pytorch_gpu JOB_DIR=gs://${BUCKET_NAME}/${JOB_NAME}/models
Ganti BUCKET_NAME dengan nama bucket Cloud Storage yang Anda buat di bagian sebelumnya.
Penyesuaian hyperparameter
Kode contoh untuk tutorial ini menyesuaikan parameter kecepatan pembelajaran dan ukuran batch untuk meminimalkan kerugian pengujian.
Pastikan kode pelatihan Anda siap untuk penyesuaian hyperparameter di Pelatihan AI Platform:
Kode harus menguraikan flag hyperparameter yang diteruskan Pelatihan AI Platform ke kode tersebut.
Kode contoh menangani hal ini di
task.py
, sehingga Anda tidak perlu melakukan apa pun kecuali jika Anda mengubah kode.Kode harus menggunakan library
cloudml-hypertune
untuk melaporkan metrik penyesuaian hyperparameter-nya ke AI Platform Training.Kode contoh menangani hal ini di
experiment.py
, sehingga Anda tidak perlu melakukan apa pun kecuali jika mengubah kode.
Jalankan perintah berikut untuk membuat file
config.yaml
yang menentukan opsi penyesuaian hyperparameter:cat > config.yaml <<END trainingInput: hyperparameters: goal: MINIMIZE hyperparameterMetricTag: test_loss maxTrials: 2 maxParallelTrials: 2 enableTrialEarlyStopping: True params: - parameterName: learning-rate type: DOUBLE minValue: 0.0001 maxValue: 1 scaleType: UNIT_LOG_SCALE - parameterName: batch-size type: INTEGER minValue: 1 maxValue: 256 scaleType: UNIT_LINEAR_SCALE END
Opsi ini menyesuaikan hyperparameter
--learning-rate
dan--batch-size
untuk meminimalkan kerugian model.Tetapkan beberapa variabel Bash yang akan digunakan saat Anda membuat tugas pelatihan:
BUCKET_NAME=BUCKET_NAME JOB_NAME=getting_started_pytorch_hptuning JOB_DIR=gs://${BUCKET_NAME}/${JOB_NAME}/models
Ganti BUCKET_NAME dengan nama bucket Cloud Storage yang Anda buat di bagian sebelumnya.
Variabel Bash ini memiliki tujuan berikut:
JOB_NAME
adalah ID untuk tugas Pelatihan AI Platform Anda. Nama ini harus unik di antara tugas AI Platform Training dalam project Google Cloud Anda.JOB_DIR
digunakan oleh AI Platform Training untuk menentukan tempat tepat untuk mengupload aplikasi pelatihan Anda. Aplikasi pelatihan juga menggunakanJOB_DIR
untuk menentukan tempat mengekspor artefak model saat selesai dilatih.
Membuat tugas pelatihan
Jalankan perintah berikut untuk membuat tugas pelatihan:
CPU
gcloud ai-platform jobs submit training ${JOB_NAME} \
--region=us-central1 \
--master-image-uri=gcr.io/cloud-ml-public/training/pytorch-xla.1-10 \
--scale-tier=BASIC \
--job-dir=${JOB_DIR} \
--package-path=./trainer \
--module-name=trainer.task \
-- \
--train-files=gs://cloud-samples-data/ai-platform/chicago_taxi/training/small/taxi_trips_train.csv \
--eval-files=gs://cloud-samples-data/ai-platform/chicago_taxi/training/small/taxi_trips_eval.csv \
--num-epochs=10 \
--batch-size=100 \
--learning-rate=0.001
GPU
gcloud ai-platform jobs submit training ${JOB_NAME} \
--region=us-central1 \
--master-image-uri=gcr.io/cloud-ml-public/training/pytorch-gpu.1-10 \
--scale-tier=CUSTOM \
--master-machine-type=n1-standard-8 \
--master-accelerator=type=nvidia-tesla-p100,count=1 \
--job-dir=${JOB_DIR} \
--package-path=./trainer \
--module-name=trainer.task \
-- \
--train-files=gs://cloud-samples-data/ai-platform/chicago_taxi/training/small/taxi_trips_train.csv \
--eval-files=gs://cloud-samples-data/ai-platform/chicago_taxi/training/small/taxi_trips_eval.csv \
--num-epochs=10 \
--batch-size=100 \
--learning-rate=0.001
Penyesuaian hyperparameter
gcloud ai-platform jobs submit training ${JOB_NAME} \
--region=us-central1 \
--master-image-uri=gcr.io/cloud-ml-public/training/pytorch-xla.1-10 \
--scale-tier=BASIC \
--job-dir=${JOB_DIR} \
--package-path=./trainer \
--module-name=trainer.task \
--config=config.yaml \
-- \
--train-files=gs://cloud-samples-data/ai-platform/chicago_taxi/training/small/taxi_trips_train.csv \
--eval-files=gs://cloud-samples-data/ai-platform/chicago_taxi/training/small/taxi_trips_eval.csv \
--num-epochs=10
Baca panduan untuk tugas pelatihan guna mempelajari flag konfigurasi dan cara menggunakannya untuk menyesuaikan pelatihan.
Perintah ini menampilkan pesan yang mirip dengan berikut ini:
Job [JOB_NAME] submitted successfully.
Your job is still active. You may view the status of your job with the command
$ gcloud ai-platform jobs describe JOB_NAME
or continue streaming the logs with the command
$ gcloud ai-platform jobs stream-logs JOB_NAME
jobId: JOB_NAME
state: QUEUED
Anda dapat memantau status tugas dengan perintah berikut:
gcloud ai-platform jobs describe ${JOB_NAME}
Anda dapat melakukan streaming log pelatihan tugas dengan perintah berikut:
gcloud ai-platform jobs stream-logs ${JOB_NAME}
Setelah selesai, tugas pelatihan akan menyimpan model ML terlatih dalam file bernama
model.pth
di direktori berstempel waktu dalam direktori Cloud Storage JOB_DIR
yang Anda tentukan.
Langkah selanjutnya
- Pelajari cara melakukan pelatihan PyTorch terdistribusi di cluster multi-node.
- Pelajari cara menggunakan TPU untuk pelatihan dengan PyTorch di Pelatihan AI Platform.
- Pelajari cara menyesuaikan konfigurasi tugas pelatihan.
- Jika Anda ingin menggunakan versi PyTorch yang tidak tersedia dalam container bawaan, pelajari cara menggunakan container kustom.
- Pelajari lebih lanjut cara menggunakan PyTorch di dokumentasi PyTorch.