Pelatihan pada slice TPU

TPU dirancang untuk di-scale out ke Pod TPU. Pod TPU adalah kumpulan perangkat TPU yang terhubung melalui antarmuka jaringan khusus berkecepatan tinggi. Pod TPU memungkinkan Anda mendistribusikan beban pemrosesan ke beberapa TPU. Setiap papan TPU terhubung ke mesin host berbasis CPU berperforma tinggi untuk hal-hal seperti memuat dan memproses data. Untuk memanfaatkan sepenuhnya TPU dalam jumlah yang lebih besar, Anda harus menyesuaikan beberapa parameter tugas pelatihan.

Bagian berikut menjelaskan beberapa masalah umum, perubahan yang perlu Anda lakukan pada model, dan praktik terbaik untuk mengurangi atau menghindari kegagalan Pod.

Menskalakan ukuran tumpukan dan langkah pelatihan

Untuk mencapai penskalaan linear pada jenis TPU yang lebih besar, pertahankan ukuran batch per inti yang sama.

Misalnya, jika Anda menggunakan ukuran tumpukan 1024 pada v6e-8, gunakan ukuran tumpukan 4096 (4 * 1024) pada v6e-32. Hal ini akan memanfaatkan hardware TPU sepenuhnya. Anda dapat menggunakan ukuran batch yang lebih kecil, tetapi pelatihan Anda tidak akan diskalakan secara linear jika Anda melakukannya.

Beberapa model menyertakan flag train_steps dengan satu langkah yang sesuai dengan pemrosesan satu batch data. Saat Anda meningkatkan ukuran tumpukan, perkecil skala jumlah langkah pelatihan sehingga jumlah total contoh pelatihan tetap sama.

Misalnya, jika Anda memiliki ukuran tumpukan 1.000 untuk 100 langkah, 100.000 contoh akan diproses selama pelatihan. Jika Anda sekarang memiliki 4 worker dan ukuran tumpukan efektif 4.000, Anda harus menyesuaikan jumlah langkah menjadi 25 untuk memproses 100.000 contoh yang sama. Jika model Anda menggunakan flag epochs, Anda tidak perlu menskalakan jumlah langkah.

Ukuran batch yang lebih besar dapat mengubah perilaku konvergensi model, sehingga Anda mungkin juga menyesuaikan beberapa hyperparameter, seperti kecepatan pembelajaran.

Menggunakan bucket Cloud Storage regional di region yang sama dengan Pod TPU

Secara umum, praktik terbaik untuk pelatihan TPU adalah selalu menggunakan resource di region yang sama. Region resource sangat penting saat menggunakan Pod TPU karena kecepatan transfer data lebih tinggi jika bucket Cloud Storage dan TPU Anda berada di region yang sama.

Pastikan Anda menggunakan bucket Cloud Storage regional di region yang sama dengan TPU untuk set data pelatihan dan checkpoint.

Praktik terbaik alur kerja untuk pengembangan di Pod TPU

Saat mengembangkan workload TPU baru, sering kali optimal untuk memulai pengembangan pada TPU terkecil dan melakukan iterasi secara progresif ke ukuran TPU yang lebih besar. Mulailah dengan menggunakan versi TPU kecil (misalnya, v6e-8).

  • Menguji workload Anda untuk perilaku yang diharapkan
  • Menguji dan memvalidasi performa menggunakan alat performa

Setelah workload Anda berfungsi dan mencapai target performa, lakukan peningkatan skala ke jenis TPU yang lebih besar seperti v6e-32. Tingkatkan ukuran TPU secara bertahap dan berulang sambil memvalidasi skalabilitas (fungsi dan performa) hingga Anda mencapai ukuran TPU yang diinginkan.