Penyesuaian Model Otomatis Amazon SageMaker kini mendukung Fallback Instance Pelatihan SageMaker, PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Penyesuaian Model Otomatis Amazon SageMaker sekarang mendukung Penggantian Instans Pelatihan SageMaker

Hari ini Amazon SageMaker mengumumkan dukungan fallback instance pelatihan SageMaker untuk Penyetelan Model Otomatis (AMT) Amazon SageMaker yang memungkinkan pengguna untuk menentukan konfigurasi sumber daya komputasi alternatif.

Penyetelan model otomatis SageMaker menemukan versi model terbaik dengan menjalankan banyak tugas pelatihan pada kumpulan data Anda menggunakan rentang hyperparameters yang Anda tentukan untuk algoritma Anda. Kemudian, ia memilih nilai hyperparameter yang menghasilkan model yang berkinerja terbaik, yang diukur dengan a metrik yang Anda pilih.

Sebelumnya, pengguna hanya memiliki opsi untuk menentukan konfigurasi instans tunggal. Hal ini dapat menyebabkan masalah ketika jenis instans yang ditentukan tidak tersedia karena penggunaan yang tinggi. Di masa lalu, pekerjaan pelatihan Anda akan gagal dengan InsufficientCapacityError (ICE). AMT menggunakan percobaan ulang cerdas untuk menghindari kegagalan ini dalam banyak kasus, tetapi tetap tidak berdaya menghadapi kapasitas rendah yang berkelanjutan.

Fitur baru ini berarti Anda dapat menentukan daftar konfigurasi instans dalam urutan preferensi, sehingga tugas AMT Anda akan secara otomatis mundur ke instans berikutnya dalam daftar jika kapasitas rendah.

Di bagian berikut, kami membahas langkah-langkah tingkat tinggi untuk mengatasi ICE:

  1. Tentukan Konfigurasi Pekerjaan Penyetelan HyperParameter
  2. Tentukan Parameter Pekerjaan Pelatihan
  3. Buat Pekerjaan Penyetelan Hyperparameter
  4. Jelaskan pekerjaan pelatihan

Tentukan Konfigurasi Pekerjaan Penyetelan HyperParameter

Grafik HyperParameterTuningJobConfig objek menggambarkan pekerjaan penyetelan, termasuk strategi pencarian, metrik tujuan yang digunakan untuk mengevaluasi pekerjaan pelatihan, rentang parameter untuk pencarian, dan batas sumber daya untuk pekerjaan penyetelan. Aspek ini tidak berubah dengan rilis fitur hari ini. Namun demikian, kami akan membahasnya untuk memberikan contoh lengkap.

Grafik ResourceLimits objek menentukan jumlah maksimum pekerjaan pelatihan dan pekerjaan pelatihan paralel untuk pekerjaan penyetelan ini. Dalam contoh ini, kita melakukan pencarian acak strategi dan menentukan maksimal 10 pekerjaan (MaxNumberOfTrainingJobs) dan 5 pekerjaan bersamaan (MaxParallelTrainingJobs) pada suatu waktu.

Grafik ParameterRanges objek menentukan rentang hyperparameter yang dicari oleh pekerjaan penyetelan ini. Kami menentukan nama, serta nilai minimum dan maksimum hyperparameter yang akan dicari. Dalam contoh ini, kami menentukan nilai minimum dan maksimum untuk rentang parameter Continuous dan Integer dan nama hyperparameter (โ€œetaโ€, โ€œmax_depthโ€).

AmtTuningJobConfig={
            "Strategy": "Random",
            "ResourceLimits": {
              "MaxNumberOfTrainingJobs": 10,
              "MaxParallelTrainingJobs": 5
            },
            "HyperParameterTuningJobObjective": {
              "MetricName": "validation:rmse",
              "Type": "Minimize"
            },
            "ParameterRanges": {
              "CategoricalParameterRanges": [],
              "ContinuousParameterRanges": [
                {
                    "MaxValue": "1",
                    "MinValue": "0",
                    "Name": "eta"
                }
              ],
              "IntegerParameterRanges": [
                {
                  "MaxValue": "6",
                  "MinValue": "2",
                  "Name": "max_depth"
                }
              ]
            }
          }

Tentukan Parameter Pekerjaan Pelatihan

Dalam definisi pekerjaan pelatihan, kami mendefinisikan input yang diperlukan untuk menjalankan pekerjaan pelatihan menggunakan algoritme yang kami tentukan. Setelah pelatihan selesai, SageMaker menyimpan artefak model yang dihasilkan ke Layanan Penyimpanan Sederhana Amazon (Amazon S3) lokasi yang Anda tentukan.

Sebelumnya, kami menentukan jenis instans, jumlah, dan ukuran volume di bawah ResourceConfig parameter. Saat instans di bawah parameter ini tidak tersedia, Insufficient Capacity Error (ICE) muncul.

Untuk menghindari hal ini, kita sekarang memiliki HyperParameterTuningResourceConfig parameter di bawah TrainingJobDefinition, tempat kami menentukan daftar instance untuk digunakan kembali. Format instance ini sama seperti di ResourceConfig. Pekerjaan akan melintasi daftar dari atas ke bawah untuk menemukan konfigurasi instans yang tersedia. Jika instans tidak tersedia, alih-alih Insufficient Capacity Error (ICE), instans berikutnya dalam daftar dipilih, sehingga mengatasi ICE.

TrainingJobDefinition={
            "HyperParameterTuningResourceConfig": {
      		"InstanceConfigs": [
            		{
                		"InstanceType": "ml.m4.xlarge",
                		"InstanceCount": 1,
                		"VolumeSizeInGB": 5
            		},
            		{
                		"InstanceType": "ml.m5.4xlarge",
                		"InstanceCount": 1,
                		"VolumeSizeInGB": 5
            		}
        		 ]
    		  },
            "AlgorithmSpecification": {
              "TrainingImage": "433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest",
              "TrainingInputMode": "File"
            },
            "InputDataConfig": [
              {
                "ChannelName": "train",
                "CompressionType": "None",
                "ContentType": "json",
                "DataSource": {
                  "S3DataSource": {
                    "S3DataDistributionType": "FullyReplicated",
                    "S3DataType": "S3Prefix",
                    "S3Uri": "s3://<bucket>/test/"
                  }
                },
                "RecordWrapperType": "None"
              }
            ],
            "OutputDataConfig": {
              "S3OutputPath": "s3://<bucket>/output/"
            },
            "RoleArn": "arn:aws:iam::340308762637:role/service-role/AmazonSageMaker-ExecutionRole-20201117T142856",
            "StoppingCondition": {
              "MaxRuntimeInSeconds": 259200
            },
            "StaticHyperParameters": {
              "training_script_loc": "q2bn-sagemaker-test_6"
            },
          }

Jalankan Pekerjaan Penyetelan Hyperparameter

Pada langkah ini, kita membuat dan menjalankan tugas penyetelan hyperparameter dengan konfigurasi sumber daya penyetelan hyperparameter yang ditentukan di atas.

Kami menginisialisasi klien SageMaker dan membuat pekerjaan dengan menentukan konfigurasi penyetelan, definisi pekerjaan pelatihan, dan nama pekerjaan.

import boto3
sm = boto3.client('sagemaker')     
                    
sm.create_hyper_parameter_tuning_job(
    HyperParameterTuningJobName="my-job-name",
    HyperParameterTuningJobConfig=AmtTuningJobConfig,
    TrainingJobDefinition=TrainingJobDefinition) 

Menjalankan pekerjaan AMT dengan dukungan fallback instance pelatihan SageMaker memberdayakan pengguna untuk mengatasi sendiri kapasitas yang tidak mencukupi, sehingga mengurangi kemungkinan kegagalan pekerjaan.

Jelaskan pekerjaan pelatihan

Fungsi berikut mencantumkan semua jenis instans yang digunakan selama eksperimen dan dapat digunakan untuk memverifikasi apakah instans pelatihan SageMaker secara otomatis turun kembali ke instans berikutnya dalam daftar selama alokasi sumber daya.

def list_instances(name):
    job_list = []
    instances = []
    def _get_training_jobs(name, next=None):
        if next:
            list = sm.list_training_jobs_for_hyper_parameter_tuning_job(
            HyperParameterTuningJobName=name, NextToken=next)
        else:
            list = sm.list_training_jobs_for_hyper_parameter_tuning_job(
            HyperParameterTuningJobName=name)
        for jobs in list['TrainingJobSummaries']:
            job_list.append(jobs['TrainingJobName'])
        next = list.get('NextToken', None)
        if next:
            _get_training_jobs(name, next=next)
            pass
        else:
            pass
    _get_training_jobs(name)


    for job_name in job_list:
        ec2 = sm.describe_training_job(
        TrainingJobName=job_name
        )
        instances.append(ec2['ResourceConfig'])
    return instances

list_instances("my-job-name")  

Output dari fungsi di atas menampilkan semua instance yang digunakan tugas AMT untuk menjalankan eksperimen.

Kesimpulan

Dalam posting ini, kami menunjukkan bagaimana Anda sekarang dapat menentukan kumpulan contoh di mana eksperimen AMT Anda dapat mundur dalam kasus InsufficientCapacityError. Kami melihat bagaimana menentukan konfigurasi pekerjaan penyetelan hyperparameter, serta menentukan jumlah maksimum pekerjaan pelatihan dan pekerjaan paralel maksimum. Akhirnya, kami melihat cara mengatasi InsufficientCapacityError dengan menggunakan HyperParameterTuningResourceConfig parameter, yang dapat ditentukan di bawah definisi pekerjaan pelatihan.

Untuk mempelajari lebih lanjut tentang AMT, kunjungi Penyetelan Model Otomatis Amazon SageMaker.


Tentang penulis

Penyesuaian Model Otomatis Amazon SageMaker kini mendukung Fallback Instance Pelatihan SageMaker, PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Doug Mbaya adalah arsitek Solusi Mitra Senior dengan fokus pada data dan analitik. Doug bekerja sama dengan mitra AWS, membantu mereka mengintegrasikan data dan solusi analitik di cloud.

Penyesuaian Model Otomatis Amazon SageMaker kini mendukung Fallback Instance Pelatihan SageMaker, PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Kruthi Jayasimha Rao adalah Arsitek Solusi Mitra di tim Scale-PSA. Kruthi melakukan validasi teknis untuk Mitra yang memungkinkan mereka maju di Jalur Mitra.

Penyesuaian Model Otomatis Amazon SageMaker kini mendukung Fallback Instance Pelatihan SageMaker, PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Bernard Jollans adalah Insinyur Pengembangan Perangkat Lunak untuk Penyetelan Model Otomatis Amazon SageMaker.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS