Saat Anda menjalankan tugas pelatihan, Pelatihan AI Platform akan 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 yang menjalankannya.
TensorFlow menggunakan variabel lingkungan TF_CONFIG
untuk memfasilitasi pelatihan terdistribusi, tetapi Anda mungkin tidak perlu mengaksesnya secara langsung dalam kode pelatihan Anda.
Dokumen ini menjelaskan variabel lingkungan TF_CONFIG
dan penggunaannya dalam tugas TensorFlow terdistribusi dan tugas penyesuaian hyperparameter.
Format TF_CONFIG
Pelatihan AI Platform menetapkan variabel lingkungan TF_CONFIG
pada setiap VM dari setiap tugas pelatihan untuk memenuhi spesifikasi yang diperlukan TensorFlow untuk pelatihan terdistribusi.
Namun, Pelatihan AI Platform juga menetapkan kolom tambahan dalam 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 container kustom,
Pelatihan AI Platform 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 menunjuk tugas worker
untuk bertindak sebagai chief
, AI Platform Training selalu secara eksplisit menetapkan chief
.
master
adalah jenis tugas yang tidak digunakan lagi di TensorFlow. master
mewakili tugas
yang menjalankan peran serupa dengan chief
tetapi juga bertindak sebagai evaluator
dalam
beberapa konfigurasi. TensorFlow 2 tidak mendukung variabel lingkungan TF_CONFIG
yang berisi tugas master
.
Pelatihan AI Platform menggunakan chief
di kolom cluster
dan task
pada variabel lingkungan TF_CONFIG
jika salah satu hal berikut berlaku:
- Anda sedang 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 tinggi. - Tugas Anda menggunakan container kustom dan Anda telah menetapkan
trainingInput.useChiefInTfConfig
tugas ketrue
.
Jika tidak, karena alasan kompatibilitas, Pelatihan AI Platform akan 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 Pelatihan AI Platform, keduanya yang dijelaskan di
bagian berikutnya, tidak berfungsi untuk tugas Anda.
Pelatihan yang terdistribusi
AI Platform Training 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, Pelatihan AI Platform akan memberikan 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
- Baca tutorial dalam dokumentasi TensorFlow tentang Pelatihan multi-pekerja dengan Keras
- Pelajari pelatihan terdistribusi dengan container kustom di Pelatihan AI Platform.
- Pelajari cara mengimplementasikan penyesuaian hyperparameter untuk tugas pelatihan Anda.