Pelatihan di Pod TPU
Ringkasan
TPU dirancang untuk diskalakan ke Pod TPU. Pod TPU adalah kumpulan perangkat TPU yang terhubung oleh antarmuka jaringan berkecepatan tinggi khusus. Pod TPU memungkinkan Anda mendistribusikan beban pemrosesan ke beberapa TPU. Setiap board 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.
Penyiapan untuk pelatihan dengan Pod TPU berbeda untuk setiap framework. Gunakan link berikut untuk melihat informasi mendetail tentang pelatihan di Pod dengan setiap framework:
Bagian berikut menjelaskan beberapa masalah umum, perubahan yang perlu Anda lakukan dalam model, dan praktik terbaik untuk mengurangi atau menghindari kegagalan Pod.
Menskalakan ukuran batch dan langkah pelatihan
Untuk mencapai penskalaan linear pada jenis TPU yang lebih besar, pertahankan ukuran batch per core yang sama.
Misalnya, jika Anda menggunakan ukuran batch 1024 di v2-8, gunakan ukuran batch 4096 (4 * 1024) di v2-32. Hal ini akan memanfaatkan hardware TPU sepenuhnya. Anda dapat menggunakan ukuran batch yang lebih kecil, tetapi pelatihan tidak akan diskalakan secara linear jika Anda melakukannya.
Beberapa model menyertakan tanda train_steps
dengan satu langkah yang sesuai dengan
pemrosesan satu batch data. Saat Anda meningkatkan ukuran batch, skalakan
jumlah langkah pelatihan sehingga jumlah total contoh pelatihan
tetap sama.
Misalnya, jika Anda memiliki ukuran batch 1.000 untuk 100 langkah,
100.000 contoh akan diproses selama pelatihan. Jika sekarang Anda memiliki 4 pekerja dan
ukuran batch efektif 4.000, Anda harus menyesuaikan jumlah langkah menjadi 25
untuk memproses 100.000 contoh yang sama. Jika model menggunakan tanda epochs
, Anda
tidak perlu menskalakan jumlah langkah.
Ukuran batch yang lebih besar dapat mengubah perilaku konvergensi model, sehingga Anda mungkin juga akan menyesuaikan beberapa hyperparameter, seperti kecepatan pembelajaran.
Menggunakan bucket Google 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 Google Cloud Storage dan TPU berada di region yang sama.
Pastikan Anda menggunakan bucket Google Cloud Storage regional di region yang sama dengan TPU untuk set data dan checkpoint pelatihan.
Praktik terbaik alur kerja untuk pengembangan di Pod TPU
Saat mengembangkan workload TPU baru, sebaiknya mulai pengembangan pada TPU terkecil dan secara bertahap lakukan iterasi ke ukuran TPU yang lebih besar. Mulailah dengan menggunakan versi TPU kecil (misalnya, v2-8 atau v3-8).
- Menguji fungsi workload
- Menguji dan memvalidasi performa menggunakan alat performa
Setelah workload berfungsi dan mencapai target performa, skalakan ke jenis TPU yang lebih besar seperti v2-32 atau v3-32. Tingkatkan ukuran TPU secara bertahap dan berulang sekaligus memvalidasi skalabilitas (fungsi dan performa) hingga Anda mencapai ukuran TPU yang diinginkan.