Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan pekerjaan pelatihan dengan cluster heterogen di Amazon SageMaker AI
Bagian ini memberikan petunjuk tentang cara menjalankan tugas pelatihan menggunakan cluster heterogen yang terdiri dari beberapa jenis instance.
Perhatikan hal-hal berikut sebelum Anda mulai.
-
Semua grup instance berbagi gambar Docker dan skrip pelatihan yang sama. Oleh karena itu, skrip pelatihan Anda harus dimodifikasi untuk mendeteksi grup instance mana yang dimilikinya dan eksekusi fork yang sesuai.
-
Fitur cluster heterogen tidak kompatibel dengan mode lokal SageMaker AI.
-
Aliran CloudWatch log Amazon dari pekerjaan pelatihan cluster heterogen tidak dikelompokkan berdasarkan grup instance. Anda perlu mencari tahu dari log node mana yang berada di grup mana.
Opsi 1: Menggunakan SageMaker Python SDK
Ikuti petunjuk tentang cara mengonfigurasi grup instance untuk cluster heterogen menggunakan SageMaker Python SDK.
-
Untuk mengonfigurasi grup instance dari cluster heterogen untuk pekerjaan pelatihan, gunakan
sagemaker.instance_group.InstanceGroupkelas. Anda dapat menentukan nama kustom untuk setiap grup instans, jenis instans, dan jumlah instance untuk setiap grup instans. Untuk informasi selengkapnya, lihat sagemaker.instance_group. InstanceGroupdalam dokumentasi SageMaker AI Python SDK. catatan
Untuk informasi selengkapnya tentang jenis instans yang tersedia dan jumlah maksimum grup instans yang dapat Anda konfigurasi dalam cluster heterogen, lihat referensi InstanceGroup API.
Contoh kode berikut menunjukkan cara mengatur dua grup instance yang terdiri dari dua
ml.c5.18xlargeCPU-only instance bernamainstance_group_1dan satu instanceml.p3dn.24xlargeGPU bernamainstance_group_2, seperti yang ditunjukkan pada diagram berikut.
Diagram sebelumnya menunjukkan contoh konseptual tentang bagaimana proses pra-pelatihan, seperti prapemrosesan data, dapat ditetapkan ke grup instance CPU dan mengalirkan data yang telah diproses sebelumnya ke grup instance GPU.
from sagemaker.instance_group import InstanceGroup instance_group_1 = InstanceGroup( "instance_group_1", "ml.c5.18xlarge",2) instance_group_2 = InstanceGroup( "instance_group_2", "ml.p3dn.24xlarge",1) -
Menggunakan objek grup instance, atur saluran input pelatihan dan tetapkan grup instance ke saluran melalui
instance_group_namesargumen. Arinstance_group_namesgumen menerima daftar string nama grup instance.Contoh berikut menunjukkan cara mengatur dua saluran input pelatihan dan menetapkan grup instance yang dibuat dalam contoh langkah sebelumnya. Anda juga dapat menentukan jalur bucket Amazon S3 untuk grup instans untuk memproses data untuk tujuan penggunaan Anda.
from sagemaker.train.configs import InputData from sagemaker.core.shapes import Channel, DataSource, S3DataSource training_input_channel_1 = Channel( channel_name='training', data_source=DataSource( s3_data_source=S3DataSource( s3_data_type='S3Prefix', s3_uri='s3://your-training-data-storage/folder1', s3_data_distribution_type='FullyReplicated', # Available Options: FullyReplicated | ShardedByS3Key instance_group_names=["instance_group_1"], ) ), input_mode='File', # Available Options: File | Pipe | FastFile ) training_input_channel_2 = Channel( channel_name='dummy-input-channel', data_source=DataSource( s3_data_source=S3DataSource( s3_data_type='S3Prefix', s3_uri='s3://your-training-data-storage/folder2', s3_data_distribution_type='FullyReplicated', instance_group_names=["instance_group_2"], ) ), input_mode='File', )Untuk informasi lebih lanjut tentang argum
InputDataen, lihat tautan berikut.-
Sagemaker.train.config. InputData
kelas dalam dokumentasi SageMaker Python SDK -
S3DataSourceAPI dalam Refer SageMaker ensi API AI
-
-
Konfigurasikan objek pelatihan SageMaker AI dengan
instance_groupsargumen seperti yang ditunjukkan pada contoh kode berikut. Arinstance_groupsgumen menerima daftarInstanceGroupobjek.catatan
Fitur cluster heterogen tersedia melalui SageMaker AI PyTorch
dan TensorFlow ModelTrainer kelas. Kerangka kerja yang didukung adalah PyTorch v1.10 atau yang lebih baru dan TensorFlow v2.6 atau yang lebih baru. Untuk menemukan daftar lengkap wadah kerangka kerja yang tersedia, versi kerangka kerja, dan versi Python, lihat SageMaker AI Framework Container di GitHub repositori AWS Deep Learning Container. PyTorch
from sagemaker.trainimportModelTrainerfrom sagemaker.train.configs import SourceCode from sagemaker.core import image_uris training_image = image_uris.retrieve( framework="pytorch", region=region, version='x.y.z', # 1.10.0 or later py_version='pyxy', instance_type='ml.p3dn.24xlarge', image_scope="training" ) model_trainer =ModelTrainer( ... source_code=SourceCode(entry_script='my-training-script.py'), training_image=training_image, job_name='my-training-job-with-heterogeneous-cluster', instance_groups=[instance_group_1,instance_group_2] )TensorFlow
from sagemaker.trainimportModelTrainerfrom sagemaker.train.configs import SourceCode from sagemaker.core import image_uris training_image = image_uris.retrieve( framework="tensorflow", region=region, version='x.y.z', # 2.6.0 or later py_version='pyxy', instance_type='ml.p3dn.24xlarge', image_scope="training" ) model_trainer =ModelTrainer( ... source_code=SourceCode(entry_script='my-training-script.py'), training_image=training_image, job_name='my-training-job-with-heterogeneous-cluster', instance_groups=[instance_group_1,instance_group_2] )catatan
Pas
instance_typeanganinstance_countargumen and daninstance_groupsargumen ModelTrainer kelas SageMaker AI saling eksklusif. Untuk pelatihan cluster homogen, gunakan pasanganinstance_countargumeninstance_typedan. Untuk pelatihan cluster heterogen, gunakaninstance_groups.catatan
Untuk menemukan daftar lengkap wadah kerangka kerja yang tersedia, versi kerangka kerja, dan versi Python, lihat SageMaker AI Framework Container
di GitHub repositori AWS Deep Learning Container. -
Mulai pekerjaan pelatihan dengan saluran input pelatihan yang dikonfigurasi dengan grup instans.
model_trainer.train( inputs={ 'training':training_input_channel_1, 'dummy-input-channel':training_input_channel_2} )
Opsi 2: Menggunakan API tingkat rendah SageMaker
Jika Anda menggunakan AWS Command Line Interface atau AWS SDK for Python (Boto3) dan ingin menggunakan SageMaker API tingkat rendah untuk mengirimkan permintaan pekerjaan pelatihan dengan cluster heterogen, lihat referensi API berikut.