Gunakan AI Platform Training untuk menjalankan aplikasi pelatihan TensorFlow, scikit-learn, dan XGBoost 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 penampung kustom untuk menjalankan tugas pelatihan dengan framework machine learning lainnya. Halaman ini menjelaskan konsep utama Pelatihan Platform AI. Jika Anda ingin langsung memulai 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 cocok dengan kasus penggunaan Anda, Anda dapat membuat aplikasi pelatihan untuk dijalankan di AI Platform Training.
Berikut adalah ringkasan proses penggunaan aplikasi pelatihan Anda:
- Anda membuat aplikasi Python yang melatih model, dan Anda mem-build-nya seperti yang Anda lakukan untuk menjalankannya secara lokal di lingkungan pengembangan.
- Anda mendapatkan data pelatihan dan verifikasi ke sumber yang dapat diakses Pelatihan AI Platform. Hal ini biasanya berarti menempatkannya di 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.
- Saat aplikasi siap dijalankan, Anda harus mengemasnya dan mentransfernya ke bucket Cloud Storage yang dapat diakses project Anda. Proses ini otomatis dilakukan saat Anda menggunakan Google Cloud CLI untuk menjalankan tugas pelatihan.
- Layanan pelatihan AI Platform Training menyiapkan resource untuk tugas Anda. Opsi 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 AI Platform Training yang digunakan tugas Anda.
- Memuat paket aplikasi dan menginstalnya dengan
pip
. - Menginstal paket tambahan yang Anda tentukan sebagai dependensi.
- Layanan pelatihan menjalankan aplikasi Anda, meneruskan argumen command line apa pun 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 dengan 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, Pelatihan AI Platform akan menghentikan semua proses tugas dan membersihkan resource.
Aplikasi machine learning standar
Layanan pelatihan AI Platform Training dirancang agar memiliki dampak sekecil mungkin pada aplikasi Anda. Artinya, Anda dapat berfokus pada kode model.
Sebagian besar aplikasi machine learning:
- Berikan 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 dengan interval dalam proses untuk mendapatkan ringkasan progres model.
- Berikan cara untuk mengekspor model terlatih saat aplikasi selesai.
Struktur pelatihan terdistribusi
Jika 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 replika. Sesuai dengan model TensorFlow terdistribusi, setiap replika dalam 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 untuk tugas secara keseluruhan. Layanan pelatihan berjalan hingga tugas Anda berhasil atau mengalami 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 antar-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 paralel model.
Karena Anda dapat menggunakan strategi paralel data terlepas dari struktur model, ini adalah titik awal yang baik untuk menerapkan metode pelatihan terdistribusi ke model kustom Anda. Dalam pelatihan paralel data, seluruh model dibagikan ke semua node pekerja. Setiap node menghitung vektor gradien secara independen dari beberapa bagian set data pelatihan dengan cara yang sama seperti pemrosesan batch mini. Vektor gradien yang dihitung dikumpulkan ke dalam node server parameter, dan parameter model diperbarui dengan jumlah total vektor gradien. Jika Anda mendistribusikan 10.000 batch di antara 10 node pekerja, setiap node akan menangani 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 artikel tentang MultiWorkerMirroredStrategy
dan ParameterServerStrategy
TensorFlow.
Kemudian, pelajari cara mengonfigurasi pelatihan
terdistribusi di Pelatihan AI Platform.
Untuk mempelajari pelatihan paralel model lebih lanjut, baca artikel TensorFlow Mesh.
Mengemas aplikasi
Sebelum dapat menjalankan aplikasi pelatihan di AI Platform Training, Anda harus memaketkan aplikasi 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 proses. Secara khusus,
Anda dapat menggunakan
gcloud ai-platform jobs submit training
untuk mengupload paket aplikasi dan mengirimkan tugas pelatihan.
Lihat petunjuk mendetail tentang mengemas aplikasi pelatihan.
Mengirim tugas pelatihan
AI Platform Training menyediakan pelatihan model sebagai layanan asinkron (batch).
Anda dapat mengirimkan tugas pelatihan dengan menjalankan
gcloud ai-platform jobs submit training
dari command line atau dengan mengirimkan permintaan ke API di
projects.jobs.create.
Lihat petunjuk mendetail tentang memulai tugas pelatihan.
ID tugas
Anda harus memberi nama tugas pelatihan yang mematuhi aturan berikut:
- Nama tersebut harus unik dalam project Google Cloud Anda.
- Nama hanya boleh berisi huruf besar/kecil, angka, dan garis bawah.
- Nama harus diawali dengan huruf.
- Panjangnya tidak boleh lebih dari 128 karakter.
Anda dapat menggunakan konvensi penamaan tugas 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 tugas dalam daftar besar. Sebaiknya buat ID tugas Anda mudah dibedakan satu sama lain.
Teknik yang umum adalah menentukan nama dasar untuk semua tugas yang terkait dengan model tertentu, lalu menambahkan string tanggal/waktu. Konvensi ini memudahkan pengurutan daftar tugas menurut nama, karena semua tugas untuk model kemudian dikelompokkan bersama dalam urutan menaik.
Tingkat skala
Saat menjalankan tugas pelatihan di AI Platform Training, Anda harus menentukan jumlah dan jenis mesin yang diperlukan. Untuk mempermudah prosesnya, Anda dapat memilih dari serangkaian spesifikasi cluster bawaan yang disebut tingkat skala. Atau, Anda dapat memilih tingkat kustom dan menentukan jenis mesin sendiri.
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 untuk penyesuaian hyperparameter dan cara menggunakan penyesuaian hyperparameter.
Region dan zona
Google Cloud menggunakan region, yang dibagi menjadi zona, untuk menentukan lokasi geografis dari resource komputasi fisik. Saat menjalankan tugas pelatihan di AI Platform Training, Anda menentukan region tempat tugas tersebut akan dijalankan.
Jika menyimpan set data pelatihan di Cloud Storage, Anda harus menjalankan tugas pelatihan di region yang sama dengan bucket Cloud Storage yang Anda gunakan untuk data pelatihan. Jika Anda harus menjalankan tugas di region yang berbeda dengan bucket data, tugas Anda mungkin memerlukan waktu lebih lama.
Untuk melihat region yang tersedia untuk layanan AI Platform Training, termasuk pelatihan model dan prediksi online/batch, baca panduan region.
Menggunakan job-dir sebagai direktori output umum
Anda dapat menentukan direktori output untuk tugas dengan menetapkan direktori tugas saat mengonfigurasi tugas. Saat Anda mengirimkan tugas, Pelatihan AI Platform akan melakukan hal berikut:
- Memvalidasi direktori sehingga Anda dapat memperbaiki masalah apa pun sebelum tugas berjalan.
- Meneruskan jalur ke aplikasi Anda sebagai argumen command line
bernama
--job-dir
.
Anda perlu memperhitungkan argumen --job-dir
dalam aplikasi.
Ambil nilai argumen saat Anda mengurai parameter lain dan menggunakannya saat menyimpan output aplikasi. Lihat panduan
untuk memulai tugas pelatihan.
Versi runtime
Untuk melatih dengan salah satu framework machine learning yang dihosting AI Platform Training, tentukan versi runtime AI Platform Training yang didukung untuk digunakan pada tugas pelatihan Anda. Versi runtime menentukan versi TensorFlow, scikit-learn, XGBoost, dan paket Python lainnya yang diinstal di instance pelatihan yang dialokasikan. Tentukan versi yang memberi Anda fungsi yang diperlukan. Jika Anda menjalankan tugas pelatihan secara lokal dan 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 untuk dijalankan di AI Platform Training:
- Data harus dalam format yang dapat Anda baca dan masukkan ke kode pelatihan.
- Data harus berada di lokasi yang dapat diakses oleh kode Anda. Hal ini biasanya berarti bahwa data tersebut harus disimpan dengan salah satu layanan penyimpanan atau big data Google Cloud.
Data output
Aplikasi biasanya menghasilkan data, termasuk checkpoint selama pelatihan dan model tersimpan saat pelatihan selesai. Anda dapat menghasilkan data lain sesuai kebutuhan aplikasi. Cara termudah untuk menyimpan file output ke bucket Cloud Storage di project Google Cloud yang sama dengan tugas pelatihan Anda.
Mem-build tugas pelatihan yang tahan terhadap mulai ulang VM
VM Google Cloud sesekali dimulai ulang. Untuk memastikan bahwa tugas pelatihan Anda tahan terhadap mulai ulang ini, simpan checkpoint model secara rutin dan konfigurasikan tugas untuk memulihkan checkpoint terbaru.
Anda biasanya menyimpan checkpoint model di jalur Cloud Storage yang ditentukan dengan argumen --job-dir
dalam perintah gcloud ai-platform jobs submit
training
.
TensorFlow Estimator API menerapkan fungsi titik pemeriksaan untuk Anda. Jika model Anda digabungkan dalam Estimator, Anda tidak perlu khawatir dengan peristiwa mulai ulang di VM.
Jika Anda tidak dapat menggabungkan model dalam Estimator TensorFlow, 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 AI Platform Training dengan unit pemrosesan grafis (GPU). GPU dirancang untuk melakukan operasi yang intensif secara matematika dengan kecepatan tinggi. Operasi tersebut 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 menggunakan GPU. Anda dapat menentukan mesin yang dilengkapi GPU untuk menjalankan tugas, 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 jenis tugas, setiap instance yang ditetapkan ke jenis tugas tersebut akan dikonfigurasi secara identik (seperti biasa): layanan menjalankan satu replika kode Anda di setiap mesin.
Jika Anda berlatih dengan framework machine learning yang berbeda menggunakan penampung kustom, framework tersebut dapat menyediakan antarmuka yang berbeda untuk menggunakan GPU.
Beberapa model tidak mendapatkan manfaat dari pengoperasian di GPU. Sebaiknya gunakan GPU untuk model besar dan kompleks yang memiliki banyak operasi matematika. Meskipun demikian, Anda harus menguji manfaat dukungan GPU dengan menjalankan sampel kecil data melalui pelatihan.
Lihat cara menggunakan GPU untuk tugas pelatihan Anda.
Pelatihan dengan TPU
Anda dapat menjalankan tugas pelatihan di AI Platform Training dengan Cloud TPU.
Lihat cara menggunakan TPU untuk tugas pelatihan Anda.