View a markdown version of this page

Latih Model - Amazon SageMaker AI

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

Latih Model

Pada langkah ini, Anda memilih algoritma pelatihan dan menjalankan pekerjaan pelatihan untuk model. Amazon SageMaker Python SDK menyediakan kelas untuk melatih model Anda sambil mengatur siklus hidup pembelajaran mesin (ML) yang mengakses fitur SageMaker AI untuk pelatihan dan infrastruktur, seperti Amazon Elastic Container Registry (Amazon ECR), Amazon Elastic Compute Cloud (Amazon EC2) AWS , Amazon Elastic Compute Cloud (Amazon EC2), Amazon Simple Storage Service (Amazon S3) Storage Service S3). Untuk informasi selengkapnya tentang algoritma bawaan, lihatBuilt-in algoritma dan model terlatih di Amazon SageMaker.

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 Algoritma XGBoost dengan Amazon AI SageMaker built-in SageMaker AI digunakan di seluruh tutorial ini tanpa pra-evaluasi model.

Tip

Jika Anda ingin SageMaker AI 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 membangun pekerjaan pelatihan. Tutorial ini menggunakan algoritma bawaan XGBoost.

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

    from sagemaker.core.helper.session_helper import Session, get_execution_role sagemaker_session = Session() region = sagemaker_session.boto_region_name print(f"AWS Region: {region}") role = get_execution_role() print(f"RoleArn: {role}")
    catatan

    Periksa versi SageMaker Python SDK dengan menjalankan. sagemaker.__version__ Tutorial ini didasarkan padasagemaker>=3.0. 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.

    Ini mengembalikan informasi berikut:

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

    • role— Peran IAM yang digunakan oleh instance notebook.

  2. Buat konfigurasi pelatihan dan atur hyperparameters untuk algoritma XGBoost.

    Buat ModelTrainer menggunakan sagemaker.train.ModelTrainer kelas dengan hyperparameters dilewatkan langsung di konstruktor. Dalam contoh kode berikut, ModelTrainer dinamaixgb_model_trainer.

    from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute, OutputDataConfig from sagemaker.core import image_uris s3_output_location='s3://{}/{}/{}'.format(bucket, prefix, 'xgboost_model') container = image_uris.retrieve("xgboost", region, "1.2-1") print(container) compute = Compute( instance_type='ml.m4.xlarge', instance_count=1, volume_size_in_gb=5 ) xgb_model_trainer = ModelTrainer( training_image=container, role=role, compute=compute, output_data_config=OutputDataConfig(s3_output_path=s3_output_location), hyperparameters={ "max_depth": "5", "eta": "0.2", "gamma": "4", "min_child_weight": "6", "subsample": "0.7", "objective": "binary:logistic", "num_round": "1000" } )

    Untuk membangun SageMaker AIModelTrainer, tentukan parameter berikut:

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

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

    • compute— Objek Compute konfigurasi yang menentukan 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.

    • hyperparameters— Kamus hyperparameters untuk algoritma pelatihan. Semua nilai harus berupa string.

    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 AI Distributed untuk paralelisme data atau paralelisme model. Untuk informasi selengkapnya, lihat Pelatihan terdistribusi di Amazon SageMaker AI.

    Tip

    Anda juga dapat menyetel hyperparameters menggunakan fitur pengoptimalan hyperparameter SageMaker AI. Untuk informasi selengkapnya, lihat Penyetelan model otomatis dengan SageMaker AI.

  3. Konfigurasikan input data untuk pelatihan.

    Gunakan InputData kelas untuk mengkonfigurasi aliran input data untuk pelatihan. Kode contoh berikut menunjukkan cara mengonfigurasi InputData 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.train.configs import InputData train_input = InputData( channel_name="train", data_source="s3://{}/{}/{}".format(bucket, prefix, "data/train.csv") ) validation_input = InputData( channel_name="validation", data_source="s3://{}/{}/{}".format(bucket, prefix, "data/validation.csv") )
  4. Mulai pelatihan model.

    Untuk memulai pelatihan model, hubungi train metode pelatih dengan kumpulan data pelatihan dan validasi. Secara default, train metode ini menampilkan log kemajuan dan menunggu hingga pelatihan selesai.

    xgb_model_trainer.train(input_data_config=[train_input, validation_input])

    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.

    Bagan dalam laporan pelatihan XGBoost.

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

    training_job = xgb_model_trainer._latest_training_job rule_output_path = training_job.output_data_config.s3_output_path + "/" + training_job.training_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:

    # Note: In V3, debugger rule outputs can be accessed via the SageMaker console # or the boto3 DescribeTrainingJob API (DebugRuleEvaluationStatuses field). # Example using boto3: # import boto3 # sm = boto3.client("sagemaker") # resp = sm.describe_training_job(TrainingJobName=training_job.training_job_name) # rule_statuses = resp["DebugRuleEvaluationStatuses"] profiler_report_name = "ProfilerReport-1234567890" 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 dari konvergen, gunakan SageMaker Debugger dan lakukan tindakan otomatis saat membuat prototipe dan melatih model ML Anda. Untuk informasi selengkapnya, lihat SageMaker Debugger Amazon. Untuk menemukan analisis lengkap parameter model, lihat buku catatan contoh Explainability with Amazon SageMaker Debugger.

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

xgb_model_trainer._latest_training_job.model_artifacts.s3_model_artifacts
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. Untuk contoh ujung ke ujung, lihat buku catatan contoh Keadilan dan Keterjelasan dengan Clarify. SageMaker