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
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
-
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 sagemakerJika 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.
-
-
Buat konfigurasi pelatihan dan atur hyperparameters untuk algoritma XGBoost.
Buat
ModelTrainermenggunakansagemaker.train.ModelTrainerkelas 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 AI
ModelTrainer, 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— ObjekComputekonfigurasi yang menentukan jenis dan jumlah instans komputasi Amazon EC2 ML yang akan digunakan untuk pelatihan model. Untuk latihan ini, Anda menggunakan satuml.m4.xlargeinstans, 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.
-
-
Konfigurasikan input data untuk pelatihan.
Gunakan
InputDatakelas untuk mengkonfigurasi aliran input data untuk pelatihan. Kode contoh berikut menunjukkan cara mengonfigurasiInputDataobjek untuk menggunakan kumpulan data pelatihan dan validasi yang Anda unggah ke Amazon S3 di bagian tersebut. Pisahkan Dataset menjadi Train, Validation, dan Test Datasetsfrom 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") ) -
Mulai pelatihan model.
Untuk memulai pelatihan model, hubungi
trainmetode pelatih dengan kumpulan data pelatihan dan validasi. Secara default,trainmetode 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.
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} --recursiveUnduh laporan pelatihan dan pembuatan profil Debugger XGBoost ke ruang kerja saat ini:
! aws s3 cp {rule_output_path} ./ --recursiveJalankan 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