Gunakan AI Platform Training untuk menjalankan aplikasi pelatihan TensorFlow, scikit-learn, dan XGBoost Anda di cloud. AI Platform Training menyediakan dependensi yang diperlukan untuk melatih model machine learning menggunakan framework yang dihosting ini dalam versi runtime-nya. Selain itu, Anda dapat menggunakan container kustom untuk menjalankan tugas pelatihan dengan framework machine learning lainnya. Halaman ini menjelaskan konsep utama Pelatihan AI Platform. Jika Anda ingin langsung melanjutkan proses pelatihan, lihat cara memulai tugas pelatihan.
Cara kerja pelatihan
AI Platform Training menjalankan tugas pelatihan Anda pada resource komputasi di cloud. Anda dapat melatih algoritma bawaan (beta) terhadap set data tanpa menulis aplikasi pelatihan. Jika algoritma bawaan tidak sesuai dengan kasus penggunaan Anda, Anda dapat membuat aplikasi pelatihan untuk dijalankan di Pelatihan AI Platform.
Berikut ini ringkasan proses untuk menggunakan aplikasi pelatihan Anda:
- Anda membuat aplikasi Python yang melatih model, dan Anda membangunnya seperti yang Anda lakukan untuk berjalan secara lokal di lingkungan pengembangan Anda.
- Anda akan mendapatkan data pelatihan dan verifikasi ke sumber yang dapat diakses oleh Pelatihan AI Platform. Ini biasanya berarti memasukkannya ke dalam Cloud Storage, Bigtable, atau layanan penyimpanan Google Cloud lainnya yang terkait dengan project Google Cloud yang sama dengan yang Anda gunakan untuk Pelatihan AI Platform.
- Jika aplikasi siap dijalankan, Anda harus mengemasnya dan mentransfernya ke bucket Cloud Storage yang dapat diakses project Anda. Hal ini otomatis diterapkan saat Anda menggunakan Google Cloud CLI untuk menjalankan tugas pelatihan.
- Layanan pelatihan Pelatihan AI Platform menyiapkan resource untuk tugas
Anda. Fungsi ini mengalokasikan satu atau beberapa virtual machine (yang disebut instance
pelatihan) berdasarkan konfigurasi tugas Anda. Setiap instance pelatihan disiapkan oleh:
- Menerapkan image mesin standar untuk versi Pelatihan AI Platform yang digunakan tugas Anda.
- Memuat paket aplikasi Anda dan menginstalnya dengan
pip
. - Menginstal paket tambahan apa pun yang Anda tentukan sebagai dependensi.
- Layanan pelatihan menjalankan aplikasi Anda, melewati argumen command line yang Anda tentukan saat membuat tugas pelatihan.
- Anda bisa mendapatkan informasi tentang tugas yang sedang berjalan dengan cara berikut:
- Di Cloud Logging.
- Dengan meminta detail tugas atau menjalankan streaming log menggunakan alat command line
gcloud
. - Dengan membuat permintaan status secara terprogram ke layanan pelatihan.
- Saat tugas pelatihan Anda berhasil atau mengalami error yang tidak dapat dipulihkan, AI Platform Training akan menghentikan semua proses tugas dan membersihkan resource.
Aplikasi machine learning standar
Layanan pelatihan AI Platform Training dirancang agar memiliki dampak seminimal mungkin pada aplikasi Anda. Ini berarti Anda dapat berfokus pada kode model Anda.
Sebagian besar aplikasi machine learning:
- Menyediakan cara untuk mendapatkan data pelatihan dan data evaluasi.
- Memproses instance data.
- Gunakan data evaluasi untuk menguji akurasi model (seberapa sering model memprediksi nilai yang tepat).
- (Untuk aplikasi pelatihan TensorFlow) Berikan cara untuk menghasilkan checkpoint pada interval dalam proses untuk mendapatkan snapshot progres model.
- Berikan cara untuk mengekspor model terlatih saat aplikasi selesai.
Struktur pelatihan terdistribusi
Jika Anda menjalankan tugas TensorFlow terdistribusi dengan AI Platform Training, Anda akan menentukan beberapa mesin (node) dalam cluster pelatihan. Layanan pelatihan mengalokasikan resource untuk jenis mesin yang Anda tentukan. Tugas Anda yang sedang berjalan pada node tertentu disebut replikasi. Sesuai dengan model TensorFlow terdistribusi, setiap replika di cluster pelatihan diberi satu peran atau tugas dalam pelatihan terdistribusi:
Master: Hanya satu replika yang ditetapkan sebagai pekerja master. Tugas ini mengelola tugas lainnya dan melaporkan status tugas secara keseluruhan. Layanan pelatihan akan berjalan hingga tugas Anda berhasil atau menemukan error yang tidak dapat dipulihkan. Dalam pelatihan terdistribusi, status replika master menandakan status tugas secara keseluruhan.
Jika Anda menjalankan tugas satu proses, satu-satunya replika adalah master untuk tugas tersebut.
Pekerja: Satu atau beberapa replika dapat ditetapkan sebagai pekerja. Replika ini melakukan bagian tugasnya seperti yang Anda tetapkan dalam konfigurasi tugas.
Server parameter: Satu atau beberapa replika dapat ditetapkan sebagai server parameter. Replika ini mengoordinasikan status model bersama di antara pekerja.
Strategi pelatihan terdistribusi
Ada tiga strategi dasar untuk melatih model dengan beberapa node:
- Pelatihan paralel data dengan update sinkron.
- Pelatihan paralel data dengan update asinkron.
- Pelatihan model-paralel.
Karena Anda dapat menggunakan strategi paralel data terlepas dari struktur modelnya, ini adalah titik awal yang baik untuk menerapkan metode pelatihan terdistribusi pada model kustom Anda. Dalam pelatihan paralel data, seluruh model dibagikan dengan semua worker node. Setiap node menghitung vektor gradien secara independen dari beberapa bagian set data pelatihan dengan cara yang sama seperti pemrosesan mini-batch. Vektor gradien yang dihitung dikumpulkan ke dalam node server parameter, dan parameter model diperbarui dengan penjumlahan total vektor gradien. Jika Anda mendistribusikan 10.000 batch di antara 10 node pekerja, setiap node akan bekerja pada sekitar 1.000 batch.
Pelatihan paralel data dapat dilakukan dengan update sinkron atau asinkron. Saat menggunakan update asinkron, server parameter menerapkan setiap vektor gradien secara independen, tepat setelah menerimanya dari salah satu node pekerja, seperti yang ditunjukkan dalam diagram berikut:
Untuk mempelajari cara melakukan pelatihan terdistribusi paralel data, baca MultiWorkerMirroredStrategy
dan ParameterServerStrategy
TensorFlow.
Kemudian, pelajari cara mengonfigurasi pelatihan terdistribusi dalam Pelatihan AI Platform.
Untuk mempelajari pelatihan paralel model lebih lanjut, baca Mesh TensorFlow.
Mengemas aplikasi
Sebelum dapat menjalankan aplikasi pelatihan di AI Platform Training, Anda harus mengemas aplikasi Anda dan dependensinya. Kemudian, Anda harus mengupload paket ini ke bucket Cloud Storage yang dapat diakses oleh project Google Cloud Anda.
Google Cloud CLI mengotomatiskan sebagian besar prosesnya. Secara khusus,
Anda dapat menggunakan
gcloud ai-platform jobs submit training
untuk mengupload paket aplikasi dan mengirimkan tugas pelatihan.
Lihat petunjuk mendetail tentang cara memaketkan aplikasi pelatihan.
Mengirimkan tugas pelatihan Anda
AI Platform Training menyediakan pelatihan model sebagai layanan asinkron (batch).
Anda dapat mengirim tugas pelatihan dengan menjalankan gcloud ai-platform jobs submit training
dari command line atau dengan mengirim permintaan ke API di projects.jobs.create.
Lihat petunjuk terperinci tentang cara memulai tugas pelatihan.
ID tugas
Anda harus memberi tugas pelatihan nama yang mematuhi aturan ini:
- ID harus unik dalam project Google Cloud Anda.
- Kode ini hanya boleh berisi campuran huruf besar/kecil, angka, dan garis bawah.
- Nama ini harus diawali dengan huruf.
- Panjangnya tidak boleh lebih dari 128 karakter.
Anda dapat menggunakan konvensi penamaan pekerjaan apa pun yang diinginkan. Jika Anda tidak menjalankan banyak tugas, nama yang Anda pilih mungkin tidak terlalu penting. Jika menjalankan banyak tugas, Anda mungkin perlu menemukan ID pekerjaan dalam daftar besar. Sebaiknya buat ID pekerjaan Anda mudah dibedakan antara satu sama lain.
Teknik yang umum digunakan adalah menentukan nama dasar untuk semua tugas yang terkait dengan model tertentu, lalu menambahkan string tanggal/waktu. Konvensi ini memudahkan pengurutan daftar tugas berdasarkan nama, karena semua tugas untuk model kemudian dikelompokkan bersama dalam urutan menaik.
Tingkatan skala
Saat menjalankan tugas pelatihan di Pelatihan AI Platform, Anda harus menentukan jumlah dan jenis mesin yang dibutuhkan. Untuk mempermudah prosesnya, Anda dapat memilih dari serangkaian spesifikasi cluster yang telah ditentukan sebelumnya yang disebut tingkat skala. Atau, Anda dapat memilih tingkat kustom dan menentukan sendiri jenis mesin.
Untuk menentukan tingkat skala, tambahkan ke objek TrainingInput dalam konfigurasi tugas Anda. Jika menggunakan perintah gcloud
untuk mengirim tugas pelatihan, Anda dapat menggunakan ID yang sama.
Lihat definisi mendetail tentang tingkat skala dan jenis mesin.
Penyesuaian hyperparameter
Jika ingin menggunakan penyesuaian hyperparameter, Anda harus menyertakan detail konfigurasi saat membuat tugas pelatihan. Lihat panduan konseptual tentang penyesuaian hyperparameter dan cara menggunakan penyesuaian hyperparameter.
Region dan zona
Google Cloud menggunakan region, yang dibagi menjadi beberapa zona untuk menentukan lokasi geografis resource komputasi fisik. Saat menjalankan tugas pelatihan di AI Platform Training, Anda menentukan region tempat Anda ingin menjalankan tugas tersebut.
Jika menyimpan set data pelatihan di Cloud Storage, Anda harus menjalankan tugas pelatihan di region yang sama dengan bucket Cloud Storage yang digunakan untuk data pelatihan. Jika Anda harus menjalankan tugas di region yang berbeda dari bucket data, tugas Anda mungkin memerlukan waktu lebih lama.
Untuk melihat region yang tersedia untuk layanan Pelatihan AI Platform, termasuk pelatihan model dan prediksi online/batch, baca panduan untuk region.
Menggunakan job-dir sebagai direktori output umum
Anda dapat menentukan direktori output untuk tugas Anda dengan menyetel direktori tugas saat mengonfigurasi tugas tersebut. Saat Anda mengirimkan tugas, AI Platform Training akan melakukan hal berikut:
- Memvalidasi direktori sehingga Anda dapat memperbaiki masalah sebelum tugas berjalan.
- Meneruskan jalur ke aplikasi Anda sebagai argumen command line
bernama
--job-dir
.
Anda perlu memperhitungkan argumen --job-dir
dalam aplikasi Anda.
Ambil nilai argumen saat Anda mengurai parameter lain dan menggunakannya saat menyimpan output aplikasi Anda. Lihat panduan
untuk memulai tugas pelatihan.
Versi runtime
Untuk berlatih dengan salah satu framework machine learning yang dihosting AI Platform Training, tentukan versi runtime Pelatihan AI Platform yang didukung yang akan digunakan untuk tugas pelatihan Anda. Versi runtime menentukan versi TensorFlow, scikit-learn, XGBoost, dan paket Python lainnya yang diinstal pada instance pelatihan yang dialokasikan. Tentukan versi yang memberikan fungsi yang Anda perlukan. Jika Anda menjalankan tugas pelatihan secara lokal serta di cloud, pastikan tugas lokal dan cloud menggunakan versi runtime yang sama.
Data input
Data yang dapat Anda gunakan dalam tugas pelatihan harus mematuhi aturan berikut agar dapat dijalankan di Pelatihan AI Platform:
- Data harus dalam format yang dapat Anda baca dan masukkan ke kode pelatihan Anda.
- Data harus berada di lokasi yang dapat diakses kode Anda. Artinya, data tersebut harus disimpan di salah satu layanan Google Cloud Storage atau big data.
Data output
Umumnya aplikasi menghasilkan output data, termasuk checkpoint selama pelatihan dan model tersimpan saat pelatihan selesai. Anda dapat menghasilkan data lain sesuai kebutuhan aplikasi. Cara paling mudah adalah menyimpan file output ke bucket Cloud Storage di project Google Cloud yang sama dengan tugas pelatihan Anda.
Membangun tugas pelatihan yang tahan terhadap mulai ulang VM
VM Google Cloud dimulai ulang sesekali. Untuk memastikan tugas pelatihan Anda tahan terhadap proses mulai ulang ini, simpan checkpoint model secara rutin dan konfigurasikan tugas Anda untuk memulihkan checkpoint terbaru.
Anda biasanya menyimpan checkpoint model di jalur Cloud Storage yang Anda tentukan dengan argumen --job-dir
dalam perintah gcloud ai-platform jobs submit
training
.
TensorFlow TensorFlow API menerapkan fungsi checkpoint untuk Anda. Jika model Anda digabungkan dalam Assessment, Anda tidak perlu khawatir mengenai peristiwa mulai ulang pada VM.
Jika Anda tidak dapat menggabungkan model dalam TensorFlow Assessment, tulis fungsi untuk menyimpan dan memulihkan checkpoint ke dalam kode pelatihan Anda. TensorFlow menyediakan resource berguna berikut dalam modul tf.train:
Pelatihan dengan GPU
Anda dapat menjalankan tugas pelatihan di Pelatihan AI Platform dengan unit pemrosesan grafis (GPU). GPU dirancang untuk melakukan operasi yang intensif secara matematis dengan kecepatan tinggi. Fungsi ini dapat lebih efektif dalam menjalankan operasi tertentu pada data tensor daripada menambahkan mesin lain dengan satu atau beberapa core CPU.
Layanan pelatihan AI Platform Training tidak menyediakan antarmuka khusus untuk bekerja dengan GPU. Anda dapat menentukan mesin yang berkemampuan GPU untuk menjalankan tugas Anda, dan layanan akan mengalokasikannya untuk Anda. Misalnya, dalam tugas pelatihan TensorFlow, Anda dapat menetapkan TensorFlow Ops ke GPU dalam kode Anda. Saat Anda menentukan jenis mesin dengan akses GPU untuk suatu jenis tugas, setiap instance yang ditetapkan ke jenis tugas tersebut akan dikonfigurasi secara identik (seperti biasa): layanan akan menjalankan satu replika kode Anda di setiap mesin.
Jika Anda berlatih dengan framework machine learning yang berbeda menggunakan container kustom, framework tersebut mungkin menyediakan antarmuka yang berbeda untuk menggunakan GPU.
Beberapa model tidak dapat menggunakan GPU. Kami merekomendasikan GPU untuk model besar dan kompleks yang memiliki banyak operasi matematika. Meski begitu, Anda tetap harus menguji manfaat dukungan GPU dengan menjalankan sampel kecil data Anda melalui pelatihan.
Lihat cara menggunakan GPU untuk tugas pelatihan Anda.
Pelatihan dengan TPU
Anda dapat menjalankan tugas pelatihan di Pelatihan AI Platform dengan Cloud TPU.
Lihat cara menggunakan TPU untuk tugas pelatihan Anda.