Menggunakan AWS CLI perintah untuk SageMaker HyperPod APIs - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan AWS CLI perintah untuk SageMaker HyperPod APIs

Buat SageMaker HyperPod cluster pertama Anda menggunakan AWS CLI perintah untuk HyperPod.

Buat SageMaker HyperPod cluster pertama Anda dengan Slurm

Tutorial berikut menunjukkan cara membuat SageMaker HyperPod cluster baru dan mengaturnya dengan Slurm melalui AWS CLI perintah untuk SageMaker HyperPod. Mengikuti tutorial, Anda akan membuat HyperPod cluster dengan tiga node Slurm,, my-controller-groupmy-login-group, dan. worker-group-1

  1. Pertama, siapkan dan unggah skrip siklus hidup ke bucket Amazon S3. Selama pembuatan cluster, HyperPod jalankan mereka di setiap grup instance. Unggah skrip siklus hidup ke Amazon S3 menggunakan perintah berikut.

    aws s3 sync \ ~/local-dir-to-lifecycle-scripts/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
    catatan

    Jalur bucket S3 harus dimulai dengan awalansagemaker-, karena IAMperan untuk SageMaker HyperPod with AmazonSageMakerClusterInstanceRolePolicy hanya mengizinkan akses ke bucket Amazon S3 yang dimulai dengan awalan tertentu.

    Jika Anda memulai dari awal, gunakan contoh skrip siklus hidup yang disediakan di repositori Pelatihan Terdistribusi Awsome. GitHub Sub-langkah berikut menunjukkan cara mengunduh, apa yang harus dimodifikasi, dan cara mengunggah skrip siklus hidup sampel ke bucket Amazon S3.

    1. Unduh salinan sampel skrip siklus hidup ke direktori di komputer lokal Anda.

      git clone https://github.com/aws-samples/awsome-distributed-training/
    2. Masuk ke direktori 1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config, di mana Anda dapat menemukan satu set skrip siklus hidup.

      cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config

      Untuk mempelajari lebih lanjut tentang contoh skrip siklus hidup, lihat. Mempersiapkan skrip siklus hidup untuk menyiapkan Slurm on SageMaker HyperPod

    3. Tulis file konfigurasi Slurm dan simpan sebagai file. provisioning_params.json Dalam file, tentukan parameter konfigurasi Slurm dasar untuk menetapkan node Slurm dengan benar ke grup instance cluster. SageMaker HyperPod Dalam tutorial ini, mengatur tiga node Slurm bernamamy-controller-group,, dan my-login-groupworker-group-1, seperti yang ditunjukkan dalam konfigurasi contoh berikut. provisioning_params.json

      { "version": "1.0.0", "workload_manager": "slurm", "controller_group": "my-controller-group", "login_group": "my-login-group", "worker_groups": [ { "instance_group_name": "worker-group-1", "partition_name": "partition-1" } ] }
    4. Unggah skrip kes3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src. Anda dapat melakukannya dengan menggunakan konsol Amazon S3, atau dengan menjalankan yang berikut AWS CLI Perintah Amazon S3.

      aws s3 sync \ ~/local-dir-to-lifecycle-scripts/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
  2. Siapkan file CreateClusterpermintaan dalam JSON format dan simpan sebagaicreate_cluster.json. Template permintaan berikut sejajar dengan konfigurasi simpul Slurm yang didefinisikan dalam Langkah 1.c. provisioning_params.json UntukExecutionRole, berikan ARN IAM peran yang Anda buat dengan yang dikelola AmazonSageMakerClusterInstanceRolePolicyPrasyarat untuk menggunakan SageMaker HyperPod.

    { // Required: Specify the name of the cluster. "ClusterName": "my-hyperpod-cluster", // Required: Configure instance groups to be launched in the cluster "InstanceGroups": [ { // Required: Specify the basic configurations to set up a controller node. "InstanceGroupName": "my-controller-group", "InstanceType": "ml.c5.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src", "OnCreate": "on_create.sh" }, "ExecutionRole": "${ROLE}", // Optional: Configure an additional storage per instance group. "InstanceStorageConfigs": [ { // Attach an additional EBS volume to each instance within the instance group. // The default mount path for the additional EBS volume is /opt/sagemaker. "EbsVolumeConfig":{ // Specify an integer between 1 and 16384 in gigabytes (GB). "VolumeSizeInGB": integer, } } ] }, { "InstanceGroupName": "my-login-group", "InstanceType": "ml.m5.4xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src", "OnCreate": "on_create.sh" }, "ExecutionRole": "${ROLE}" }, { "InstanceGroupName": "worker-group-1", "InstanceType": "ml.trn1.32xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src", "OnCreate": "on_create.sh" }, "ExecutionRole": "${ROLE}" } ] }
  3. Jalankan perintah berikut untuk membuat cluster.

    aws sagemaker create-cluster --cli-input-json file://complete/path/to/create_cluster.json

    Ini harus mengembalikan ARN cluster yang dibuat.

    Jika Anda menerima kesalahan karena batasan sumber daya, pastikan Anda mengubah jenis instans menjadi salah satu dengan kuota yang cukup di akun Anda, atau minta kuota tambahan dengan mengikuti di. SageMaker HyperPod kuota

  4. Jalankan describe-cluster untuk memeriksa status cluster.

    aws sagemaker describe-cluster --cluster-name my-hyperpod-cluster

    Setelah status cluster berubahInService, lanjutkan ke langkah berikutnya.

  5. Jalankan list-cluster-nodes untuk memeriksa detail node cluster.

    aws sagemaker list-cluster-nodes --cluster-name my-hyperpod-cluster

    Ini mengembalikan respons, dan InstanceId itulah yang dibutuhkan pengguna klaster Anda untuk logging (aws ssm) ke dalamnya. Untuk informasi selengkapnya tentang masuk ke node cluster dan menjalankan beban kerja ML, lihatJalankan pekerjaan di SageMaker HyperPod cluster.

Hapus cluster dan sumber daya bersih

Setelah Anda berhasil menguji pembuatan SageMaker HyperPod klaster, klaster terus berjalan di InService status hingga Anda menghapus klaster. Kami menyarankan Anda menghapus klaster apa pun yang dibuat menggunakan SageMaker kapasitas sesuai permintaan saat tidak digunakan untuk menghindari biaya layanan lanjutan berdasarkan harga sesuai permintaan. Dalam tutorial ini, Anda telah membuat sebuah cluster yang terdiri dari dua kelompok instance. Salah satunya menggunakan instance C5, jadi pastikan Anda menghapus cluster dengan menjalankan perintah berikut.

aws sagemaker delete-cluster --cluster-name my-hyperpod-cluster

Untuk membersihkan skrip siklus hidup dari bucket Amazon S3 yang digunakan untuk tutorial ini, buka bucket Amazon S3 yang Anda gunakan selama pembuatan cluster dan hapus file seluruhnya.

Jika Anda telah menguji menjalankan beban kerja pelatihan model apa pun di klaster, periksa juga apakah Anda telah mengunggah data apa pun atau apakah pekerjaan Anda telah menyimpan artefak apa pun ke bucket Amazon S3 atau layanan sistem file yang berbeda seperti Amazon FSx for Lustre dan Amazon Elastic File System. Untuk mencegah timbulnya biaya, hapus semua artefak dan data dari penyimpanan atau sistem file.