Saat Anda menjalankan tugas pelatihan, AI Platform Training menetapkan variabel lingkungan
yang disebut TF_CONFIG
pada setiap instance virtual machine (VM) yang merupakan bagian dari
tugas Anda. Kode pelatihan Anda, yang berjalan di setiap VM, dapat menggunakan variabel lingkungan TF_CONFIG
untuk mengakses detail tentang tugas pelatihan dan peran VM tempat kode tersebut berjalan.
TensorFlow menggunakan variabel lingkungan TF_CONFIG
untuk memfasilitasi pelatihan
terdistribusi, tetapi Anda mungkin tidak perlu mengaksesnya secara langsung dalam kode pelatihan.
Dokumen ini menjelaskan variabel lingkungan TF_CONFIG
dan penggunaannya dalam
tugas TensorFlow terdistribusi dan tugas penyesuaian hyperparameter.
Format TF_CONFIG
AI Platform Training menetapkan variabel lingkungan TF_CONFIG
di setiap VM dari setiap
tugas pelatihan untuk memenuhi spesifikasi yang diperlukan TensorFlow untuk
pelatihan
terdistribusi.
Namun, AI Platform Training juga menetapkan kolom tambahan di variabel lingkungan TF_CONFIG
di luar yang diperlukan TensorFlow.
Variabel lingkungan TF_CONFIG
adalah string JSON dengan format berikut:
TF_CONFIG kolom |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
cluster |
Deskripsi cluster TensorFlow. Kamus yang memetakan satu atau beberapa
nama tugas ( Ini adalah argumen pertama yang valid untuk konstruktor Pelajari perbedaan antara
|
||||||||||
task |
Deskripsi tugas VM tempat variabel lingkungan ini ditetapkan. Untuk tugas pelatihan tertentu, kamus ini berbeda untuk setiap VM. Anda dapat menggunakan informasi ini untuk menyesuaikan kode yang dijalankan pada setiap VM dalam tugas pelatihan terdistribusi. Anda juga dapat menggunakannya untuk mengubah perilaku kode pelatihan untuk berbagai uji coba tugas penyesuaian hyperparameter. Kamus ini mencakup pasangan nilai kunci berikut:
|
||||||||||
job |
|
||||||||||
environment |
String |
Untuk tugas pelatihan penampung kustom,
AI Platform Training menetapkan variabel lingkungan tambahan yang disebut CLUSTER_SPEC
,
yang memiliki format serupa dengan TF_CONFIG
, tetapi dengan beberapa perbedaan
penting. Pelajari variabel lingkungan CLUSTER_SPEC
.
Contoh
Kode contoh berikut mencetak variabel lingkungan TF_CONFIG
ke log pelatihan Anda:
import json
import os
tf_config_str = os.environ.get('TF_CONFIG')
tf_config_dict = json.loads(tf_config_str)
# Convert back to string just for pretty printing
print(json.dumps(tf_config_dict, indent=2))
Dalam tugas penyesuaian hyperparameter yang berjalan pada runtime versi 2.1 atau yang lebih baru dan menggunakan worker master, dua worker, dan satu server parameter, kode ini menghasilkan log berikut untuk salah satu worker selama penyesuaian hyperparameter pertama. Contoh output menyembunyikan kolom job
agar lebih ringkas dan mengganti
beberapa ID dengan nilai generik.
{
"cluster": {
"chief": [
"cmle-training-chief-[ID_STRING_1]-0:2222"
],
"ps": [
"cmle-training-ps-[ID_STRING_1]-0:2222"
],
"worker": [
"cmle-training-worker-[ID_STRING_1]-0:2222",
"cmle-training-worker-[ID_STRING_1]-1:2222"
]
},
"environment": "cloud",
"job": {
...
},
"task": {
"cloud": "[ID_STRING_2]",
"index": 0,
"trial": "1",
"type": "worker"
}
}
chief
versus master
VM pekerja master di Pelatihan AI Platform sesuai dengan jenis tugas chief
di TensorFlow. Meskipun TensorFlow dapat menetapkan tugas worker
untuk bertindak sebagai chief
, Pelatihan AI Platform selalu menetapkan chief
secara eksplisit.
master
adalah jenis tugas yang tidak digunakan lagi di TensorFlow. master
mewakili tugas
yang menjalankan peran yang mirip dengan chief
, tetapi juga bertindak sebagai evaluator
dalam
beberapa konfigurasi. TensorFlow 2 tidak mendukung variabel lingkungan TF_CONFIG
yang berisi tugas master
.
AI Platform Training menggunakan chief
di kolom cluster
dan task
dari variabel lingkungan TF_CONFIG
jika salah satu hal berikut benar:
- Anda menjalankan tugas pelatihan yang menggunakan runtime versi 2.1 atau yang lebih baru.
- Anda telah mengonfigurasi tugas pelatihan untuk menggunakan satu atau beberapa evaluator. Dengan kata lain, Anda telah menetapkan
trainingInput.evaluatorCount
tugas ke1
atau lebih besar. - Tugas Anda menggunakan penampung kustom dan Anda telah menetapkan
trainingInput.useChiefInTfConfig
tugas ketrue
.
Jika tidak, untuk alasan kompatibilitas, AI Platform Training menggunakan jenis tugas master
yang tidak digunakan lagi, bukan chief
.
Kapan menggunakan TF_CONFIG
Seperti yang disebutkan di bagian sebelumnya, Anda mungkin tidak perlu berinteraksi dengan variabel lingkungan TF_CONFIG
secara langsung dalam kode pelatihan. Hanya akses variabel lingkungan TF_CONFIG
jika strategi distribusi TensorFlow dan alur kerja penyesuaian hyperparameter standar AI Platform Training, yang keduanya dijelaskan di bagian berikutnya, tidak berfungsi untuk tugas Anda.
Pelatihan terdistribusi
Pelatihan AI Platform menetapkan variabel lingkungan TF_CONFIG
untuk memperluas
spesifikasi yang diperlukan TensorFlow untuk pelatihan
terdistribusi.
Untuk melakukan pelatihan terdistribusi dengan TensorFlow, gunakan tf.distribute.Strategy
API.
Secara khusus, sebaiknya gunakan Keras API bersama dengan
MultiWorkerMirroredStrategy
atau, jika Anda menentukan server parameter untuk tugas Anda,
ParameterServerStrategy
.
Namun, perlu diperhatikan bahwa TensorFlow saat ini hanya menyediakan dukungan eksperimental untuk strategi ini.
Strategi distribusi ini menggunakan variabel lingkungan TF_CONFIG
untuk menetapkan peran ke setiap VM dalam tugas pelatihan Anda, dan untuk memfasilitasi komunikasi antara VM. Anda tidak perlu mengakses variabel lingkungan TF_CONFIG
secara langsung dalam kode pelatihan karena TensorFlow akan menanganinya untuk Anda.
Hanya uraikan variabel lingkungan TF_CONFIG
secara langsung jika Anda ingin menyesuaikan perilaku berbagai VM yang menjalankan tugas pelatihan Anda.
Penyesuaian hyperparameter
Saat Anda menjalankan tugas penyesuaian hyperparameter, AI Platform Training menyediakan argumen yang berbeda ke kode pelatihan Anda untuk setiap uji coba. Kode pelatihan Anda tidak perlu mengetahui uji coba yang sedang berjalan. Selain itu, Pelatihan AI Platform menyediakan alat untuk memantau progres tugas penyesuaian hyperparameter.
Jika diperlukan, kode Anda dapat membaca nomor uji coba saat ini dari kolom trial
pada kolom task
dari variabel lingkungan TF_CONFIG
.
Langkah selanjutnya
- Ikuti tutorial dalam dokumentasi TensorFlow tentang Pelatihan multi-pekerja dengan Keras
- Pelajari pelatihan terdistribusi dengan penampung kustom di Pelatihan AI Platform.
- Pelajari cara mengimplementasikan penyesuaian hyperparameter untuk tugas pelatihan Anda.