Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Ubah skrip pelatihan Anda untuk menetapkan grup instans
Dengan konfigurasi cluster heterogen di bagian sebelumnya, Anda telah menyiapkan lingkungan SageMaker pelatihan dan instance untuk pekerjaan pelatihan Anda. Untuk menetapkan grup instans lebih lanjut ke tugas pelatihan dan pemrosesan data tertentu, langkah selanjutnya adalah memodifikasi skrip pelatihan Anda. Secara default, pekerjaan pelatihan hanya membuat replika skrip pelatihan untuk semua node terlepas dari ukuran instans, dan ini dapat menyebabkan hilangnya kinerja.
Misalnya, jika Anda mencampur instance CPU dan instance GPU dalam cluster heterogen sambil meneruskan skrip pelatihan jaringan saraf dalam ke entry_point argumen SageMaker AI ModelTrainer, entry_point skrip direplikasi ke setiap instance. Ini berarti bahwa, tanpa penetapan tugas yang tepat, instans CPU juga menjalankan seluruh skrip dan memulai pekerjaan pelatihan yang dirancang untuk pelatihan terdistribusi pada instans GPU. Oleh karena itu, Anda harus membuat perubahan pada fungsi pemrosesan tertentu yang ingin Anda lepaskan dan jalankan pada instans CPU. Anda dapat menggunakan variabel lingkungan SageMaker AI untuk mengambil informasi cluster heterogen dan membiarkan proses tertentu berjalan sesuai dengan itu.
Saat pekerjaan pelatihan Anda dimulai, skrip pelatihan Anda membaca informasi lingkungan SageMaker pelatihan yang mencakup konfigurasi cluster heterogen. Konfigurasi berisi informasi seperti grup instance saat ini, host saat ini di setiap grup, dan di grup mana host saat ini berada.
Anda dapat menanyakan informasi grup instans selama fase inisialisasi pekerjaan pelatihan SageMaker AI dengan cara berikut.
(Direkomendasikan) Membaca informasi grup instance dengan tool SageMaker kit pelatihan
Gunakan modul Python lingkungan yang disediakan pust SageMaker aka toolkit pelatihan.
from sagemaker_training import environment env = environment.Environment()
Variabel lingkungan yang terkait dengan SageMaker pelatihan umum dan cluster heterogen:
-
env.is_hetero— Mengembalikan hasil Boolean apakah cluster heterogen dikonfigurasi atau tidak. -
env.current_host— Mengembalikan host saat ini. -
env.current_instance_type— Mengembalikan jenis instance dari host saat ini. -
env.current_instance_group— Mengembalikan nama grup instance saat ini. -
env.current_instance_group_hosts— Mengembalikan daftar host dalam grup instance saat ini. -
env.instance_groups— Mengembalikan daftar nama grup instance yang digunakan untuk pelatihan. -
env.instance_groups_dict— Mengembalikan seluruh konfigurasi cluster heterogen dari pekerjaan pelatihan. -
env.distribution_instance_groups— Mengembalikan daftar grup instance yang ditetapkan kedistributionparameter ModelTrainer kelas SageMaker AI. -
env.distribution_hosts— Mengembalikan daftar host milik grup instance yang ditetapkan kedistributionparameter ModelTrainer kelas SageMaker AI.
Misalnya, perhatikan contoh berikut dari cluster heterogen yang terdiri dari dua grup instance.
from sagemaker.instance_group import InstanceGroup instance_group_1 = InstanceGroup( "instance_group_1", "ml.c5.18xlarge", 1) instance_group_2 = InstanceGroup( "instance_group_2", "ml.p3dn.24xlarge", 2)
Output env.instance_groups_dict dari contoh cluster heterogen harus serupa dengan yang berikut ini.
{ "instance_group_1": { "hosts": [ "algo-2" ], "instance_group_name": "instance_group_1", "instance_type": "ml.c5.18xlarge" }, "instance_group_2": { "hosts": [ "algo-3", "algo-1" ], "instance_group_name": "instance_group_2", "instance_type": "ml.p3dn.24xlarge" } }
(Opsional) Membaca informasi grup instance dari file JSON konfigurasi sumber daya
Jika Anda lebih suka mengambil variabel lingkungan dalam format JSON, Anda dapat langsung menggunakan file JSON konfigurasi sumber daya. File JSON dalam instance SageMaker pelatihan terletak di secara /opt/ml/input/config/resourceconfig.json default.
file_path = '/opt/ml/input/config/resourceconfig.json' config = read_file_as_json(file_path) print(json.dumps(config, indent=4, sort_keys=True))