Langkah 4: Latih Model - Amazon SageMaker

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

Langkah 4: Latih Model

Amazon SageMaker Python SDK menyediakan estimator kerangka kerja dan estimator generik untuk melatih model Anda sambil mengatur siklus hidup machine learning (ML) yang mengakses fitur SageMaker untuk pelatihan dan infrastruktur, seperti Amazon Elastic Container Registry (Amazon ECR), Amazon Elastic Compute Cloud (Amazon EC2), Amazon AWS Elastic Compute Cloud (Amazon EC2), Amazon Simple Storage Service (Amazon S3). Untuk informasi selengkapnya tentang estimator kerangka kerja SageMaker bawaan, lihat Kerangka kerja dalam dokumentasi Amazon SageMaker Python SDK. Untuk informasi selengkapnya tentang algoritma bawaan, lihatGunakan Algoritma SageMaker Bawaan Amazon atau Model Pra-terlatih.

Pilih Algoritma Pelatihan

Untuk memilih algoritme yang tepat untuk kumpulan data Anda, Anda biasanya perlu mengevaluasi model yang berbeda untuk menemukan model yang paling sesuai dengan data Anda. Untuk kesederhanaan, algoritma SageMaker Gunakan algoritma XGBoost dengan Amazon SageMaker built-in digunakan di seluruh tutorial ini tanpa pra-evaluasi model.

Tip

Jika Anda SageMaker ingin menemukan model yang sesuai untuk kumpulan data tabular Anda, gunakan Amazon SageMaker Autopilot yang mengotomatiskan solusi pembelajaran mesin. Untuk informasi selengkapnya, lihat SageMaker Autopilot.

Membuat dan Menjalankan Training Job

Setelah Anda mengetahui model mana yang akan digunakan, mulailah membuat SageMaker estimator untuk pelatihan. Tutorial ini menggunakan algoritma built-in XGBoost untuk estimator SageMaker generik.

Untuk menjalankan pekerjaan pelatihan model
  1. Impor Amazon SageMaker Python SDK dan mulai dengan mengambil informasi dasar dari sesi Anda saat ini. SageMaker

    import sagemaker region = sagemaker.Session().boto_region_name print("AWS Region: {}".format(region)) role = sagemaker.get_execution_role() print("RoleArn: {}".format(role))

    Ini mengembalikan informasi berikut:

    • region— AWS Wilayah saat ini tempat instance SageMaker notebook berjalan.

    • role— Peran IAM yang digunakan oleh instance notebook.

    catatan

    Periksa versi SageMaker Python SDK dengan menjalankan. sagemaker.__version__ Tutorial ini didasarkan padasagemaker>=2.20. Jika SDK sudah usang, instal versi terbaru dengan menjalankan perintah berikut:

    ! pip install -qU sagemaker

    Jika Anda menjalankan instalasi ini di instance SageMaker Studio atau notebook yang keluar, Anda perlu menyegarkan kernel secara manual untuk menyelesaikan penerapan pembaruan versi.

  2. Buat estimator XGBoost menggunakan kelas. sagemaker.estimator.Estimator Dalam kode contoh berikut, estimator XGBoost diberi nama. xgb_model

    from sagemaker.debugger import Rule, ProfilerRule, rule_configs from sagemaker.session import TrainingInput s3_output_location='s3://{}/{}/{}'.format(bucket, prefix, 'xgboost_model') container=sagemaker.image_uris.retrieve("xgboost", region, "1.2-1") print(container) xgb_model=sagemaker.estimator.Estimator( image_uri=container, role=role, instance_count=1, instance_type='ml.m4.xlarge', volume_size=5, output_path=s3_output_location, sagemaker_session=sagemaker.Session(), rules=[ Rule.sagemaker(rule_configs.create_xgboost_report()), ProfilerRule.sagemaker(rule_configs.ProfilerReport()) ] )

    Untuk membangun SageMaker estimator, tentukan parameter berikut:

    • image_uri— Tentukan URI gambar wadah pelatihan. Dalam contoh ini, URI wadah pelatihan SageMaker XGBoost ditentukan menggunakan. sagemaker.image_uris.retrieve

    • role— Peran AWS Identity and Access Management (IAM) yang SageMaker digunakan untuk melakukan tugas atas nama Anda (misalnya, membaca hasil pelatihan, memanggil artefak model dari Amazon S3, dan menulis hasil pelatihan ke Amazon S3).

    • instance_countdan instance_type — Jenis dan jumlah instans komputasi Amazon EC2 ML yang akan digunakan untuk pelatihan model. Untuk latihan ini, Anda menggunakan satu ml.m4.xlarge instans, yang memiliki 4 CPU, memori 16 GB, penyimpanan Amazon Elastic Block Store (Amazon EBS), dan kinerja jaringan yang tinggi. Untuk informasi selengkapnya tentang jenis instans komputasi EC2, lihat Jenis Instans Amazon EC2. Untuk informasi selengkapnya tentang penagihan, lihat SageMaker harga Amazon.

    • volume_size— Ukuran, dalam GB, volume penyimpanan EBS untuk dilampirkan ke instance pelatihan. Ini harus cukup besar untuk menyimpan data pelatihan jika Anda menggunakan File mode (Filemode aktif secara default). Jika Anda tidak menentukan parameter ini, nilainya default ke 30.

    • output_path— Jalur ke ember S3 tempat SageMaker menyimpan artefak model dan hasil pelatihan.

    • sagemaker_sessionObjek sesi yang mengelola interaksi dengan operasi SageMaker API dan AWS layanan lain yang digunakan oleh pekerjaan pelatihan.

    • rules— Tentukan daftar aturan bawaan SageMaker Debugger. Dalam contoh ini, create_xgboost_report() aturan membuat laporan XGBoost yang memberikan wawasan tentang kemajuan dan hasil pelatihan, dan ProfilerReport() aturan tersebut membuat laporan mengenai pemanfaatan sumber daya komputasi EC2. Untuk informasi selengkapnya, lihat SageMaker Laporan Pelatihan Debugger XGBoost.

    Tip

    Jika Anda ingin menjalankan pelatihan terdistribusi model pembelajaran mendalam berukuran besar, seperti model jaringan saraf konvolusional (CNN) dan pemrosesan bahasa alami (NLP), gunakan SageMaker Distributed untuk paralelisme data atau paralelisme model. Untuk informasi selengkapnya, lihat Pelatihan terdistribusi di Amazon SageMaker.

  3. Tetapkan hyperparameters untuk algoritma XGBoost dengan memanggil set_hyperparameters metode estimator. Untuk daftar lengkap hyperparameters XGBoost, lihat. Hiperparameter XGBoost

    xgb_model.set_hyperparameters( max_depth = 5, eta = 0.2, gamma = 4, min_child_weight = 6, subsample = 0.7, objective = "binary:logistic", num_round = 1000 )
    Tip

    Anda juga dapat menyetel hyperparameters menggunakan fitur optimasi SageMaker hyperparameter. Untuk informasi selengkapnya, lihat Lakukan Penyetelan Model Otomatis dengan SageMaker.

  4. Gunakan TrainingInput kelas untuk mengkonfigurasi aliran input data untuk pelatihan. Kode contoh berikut menunjukkan cara mengonfigurasi TrainingInput objek untuk menggunakan kumpulan data pelatihan dan validasi yang Anda unggah ke Amazon S3 di bagian tersebut. Pisahkan Dataset menjadi Train, Validation, dan Test Datasets

    from sagemaker.session import TrainingInput train_input = TrainingInput( "s3://{}/{}/{}".format(bucket, prefix, "data/train.csv"), content_type="csv" ) validation_input = TrainingInput( "s3://{}/{}/{}".format(bucket, prefix, "data/validation.csv"), content_type="csv" )
  5. Untuk memulai pelatihan model, hubungi fit metode estimator dengan kumpulan data pelatihan dan validasi. Dengan pengaturanwait=True, fit metode ini menampilkan log kemajuan dan menunggu hingga pelatihan selesai.

    xgb_model.fit({"train": train_input, "validation": validation_input}, wait=True)

    Untuk informasi lebih lanjut tentang pelatihan model, lihatLatih Model dengan Amazon SageMaker. Pekerjaan pelatihan tutorial ini mungkin memakan waktu hingga 10 menit.

    Setelah pekerjaan pelatihan selesai, Anda dapat mengunduh laporan pelatihan XGBoost dan laporan pembuatan profil yang dihasilkan oleh Debugger. SageMaker Laporan pelatihan XGBoost menawarkan Anda wawasan tentang kemajuan dan hasil pelatihan, seperti fungsi kerugian sehubungan dengan iterasi, kepentingan fitur, matriks kebingungan, kurva akurasi, dan hasil statistik pelatihan lainnya. Misalnya, Anda dapat menemukan kurva kerugian berikut dari laporan pelatihan XGBoost yang dengan jelas menunjukkan bahwa ada masalah overfitting.

    Jalankan kode berikut untuk menentukan URI bucket S3 tempat laporan pelatihan Debugger dibuat dan periksa apakah laporan tersebut ada.

    rule_output_path = xgb_model.output_path + "/" + xgb_model.latest_training_job.job_name + "/rule-output" ! aws s3 ls {rule_output_path} --recursive

    Unduh laporan pelatihan dan pembuatan profil Debugger XGBoost ke ruang kerja saat ini:

    ! aws s3 cp {rule_output_path} ./ --recursive

    Jalankan skrip IPython berikut untuk mendapatkan tautan file dari laporan pelatihan XGBoost:

    from IPython.display import FileLink, FileLinks display("Click link below to view the XGBoost Training report", FileLink("CreateXgboostReport/xgboost_report.html"))

    Skrip IPython berikut mengembalikan tautan file dari laporan profil Debugger yang menunjukkan ringkasan dan detail pemanfaatan sumber daya instans EC2, hasil deteksi kemacetan sistem, dan hasil pembuatan profil operasi python:

    profiler_report_name = [rule["RuleConfigurationName"] for rule in xgb_model.latest_training_job.rule_job_summary() if "Profiler" in rule["RuleConfigurationName"]][0] profiler_report_name display("Click link below to view the profiler report", FileLink(profiler_report_name+"/profiler-output/profiler-report.html"))
    Tip

    Jika laporan HTML tidak membuat plot dalam JupyterLab tampilan, Anda harus memilih Trust HTML di bagian atas laporan.

    Untuk mengidentifikasi masalah pelatihan, seperti overfitting, gradien menghilang, dan masalah lain yang mencegah model Anda konvergen, gunakan SageMaker Debugger dan lakukan tindakan otomatis saat membuat prototipe dan melatih model ML Anda. Untuk informasi selengkapnya, lihat Gunakan Amazon SageMaker Debugger untuk men-debug dan meningkatkan kinerja model. Untuk menemukan analisis lengkap parameter model, lihat buku catatan contoh Explainability with Amazon SageMaker Debugger.

Anda sekarang memiliki model XGBoost terlatih. SageMaker menyimpan artefak model di ember S3 Anda. Untuk menemukan lokasi artefak model, jalankan kode berikut untuk mencetak atribut model_data estimator: xgb_model

xgb_model.model_data
Tip

Untuk mengukur bias yang dapat terjadi selama setiap tahap siklus hidup ML (pengumpulan data, pelatihan dan penyetelan model, dan pemantauan model ML yang digunakan untuk prediksi), gunakan Clarify. SageMaker Untuk informasi selengkapnya, lihat Penjelasan Model. end-to-end Sebagai contoh, lihat contoh Keadilan dan Keterjelasan dengan SageMaker Clarify notebook.