Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Langkah 5: Menyebarkan Model ke Amazon EC2
Untuk mendapatkan prediksi, terapkan model Anda ke Amazon EC2 menggunakan Amazon. SageMaker
Topik
Menyebarkan Model ke SageMaker Layanan Hosting
Untuk meng-host model melalui Amazon EC2 menggunakan Amazon SageMaker, terapkan model yang Anda latih Membuat dan Menjalankan Training Job dengan memanggil deploy
metode estimator. xgb_model
Ketika Anda memanggil deploy
metode, Anda harus menentukan nomor dan jenis instance EC2 MLyang ingin Anda gunakan untuk hosting endpoint.
import sagemaker from sagemaker.serializers import CSVSerializer xgb_predictor=xgb_model.deploy( initial_instance_count=1, instance_type='ml.t2.medium', serializer=CSVSerializer() )
-
initial_instance_count
(int) — Jumlah instance untuk menyebarkan model. -
instance_type
(str) - Jenis instance yang ingin Anda operasikan model yang Anda gunakan. -
serializer
(int) - Serialisasi data input dari berbagai format ( NumPy array, daftar, file, atau buffer) ke string berformat CSV. Kami menggunakan ini karena algoritma XGBoost menerima file input dalam format CSV.
deploy
Metode ini membuat model deployable, mengkonfigurasi endpoint layanan SageMaker hosting, dan meluncurkan endpoint untuk meng-host model. Untuk informasi selengkapnya, lihat metode class penerapan Estimator SageMaker generikdeploy
metode, jalankan kode berikut:
xgb_predictor.endpoint_name
Ini harus mengembalikan nama titik akhir dari. xgb_predictor
Format nama endpoint adalah"sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS"
. Endpoint ini tetap aktif dalam instance ML, dan Anda dapat membuat prediksi seketika kapan saja kecuali jika Anda mematikannya nanti. Salin nama titik akhir ini dan simpan untuk digunakan kembali dan buat prediksi real-time di tempat lain di instance SageMaker Studio atau SageMaker notebook.
Tip
Untuk mempelajari lebih lanjut tentang mengompilasi dan mengoptimalkan model Anda untuk penerapan ke instans Amazon EC2 atau perangkat edge, lihat Mengompilasi dan Menerapkan Model dengan Neo.
(Opsional) Gunakan SageMaker Prediktor untuk Menggunakan Kembali Titik Akhir yang Dihosting
Setelah menerapkan model ke titik akhir, Anda dapat menyiapkan SageMaker prediktor baru dengan memasangkan titik akhir dan terus membuat prediksi waktu nyata di buku catatan lain. Kode contoh berikut menunjukkan bagaimana menggunakan kelas SageMaker Predictor untuk mengatur objek prediktor baru menggunakan titik akhir yang sama. Gunakan kembali nama endpoint yang Anda gunakan untuk. xgb_predictor
import sagemaker xgb_predictor_reuse=sagemaker.predictor.Predictor( endpoint_name="
sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS
", sagemaker_session=sagemaker.Session(), serializer=sagemaker.serializers.CSVSerializer() )
xgb_predictor_reuse
Prediktor berperilaku persis sama dengan aslinya. xgb_predictor
Untuk informasi selengkapnya, lihat kelas SageMaker Prediktor
(Opsional) Buat Prediksi dengan Batch Transform
Alih-alih menghosting titik akhir dalam produksi, Anda dapat menjalankan pekerjaan inferensi batch satu kali untuk membuat prediksi pada kumpulan data pengujian menggunakan transformasi batch. SageMaker Setelah pelatihan model Anda selesai, Anda dapat memperluas estimator ke transformer
objek, yang didasarkan pada kelas SageMakerTransformer
Untuk menjalankan pekerjaan transformasi batch
Jalankan kode berikut untuk mengonversi kolom fitur kumpulan data pengujian menjadi file CSV dan unggah ke bucket S3:
X_test.to_csv('test.csv', index=False, header=False) boto3.Session().resource('s3').Bucket(bucket).Object( os.path.join(prefix, 'test/test.csv')).upload_file('test.csv')
Tentukan URI bucket S3 dari input dan output untuk pekerjaan transformasi batch seperti yang ditunjukkan berikut:
# The location of the test dataset batch_input = 's3://{}/{}/test'.format(bucket, prefix) # The location to store the results of the batch transform job batch_output = 's3://{}/{}/batch-prediction'.format(bucket, prefix)
Buat objek transformator yang menentukan jumlah minimal parameter:
instance_count
daninstance_type
parameter untuk menjalankan pekerjaan transformasi batch, danoutput_path
untuk menyimpan data prediksi seperti yang ditunjukkan berikut:transformer = xgb_model.transformer( instance_count=1, instance_type='ml.m4.xlarge', output_path=batch_output )
Memulai pekerjaan transformasi batch dengan mengeksekusi
transform()
metodetransformer
objek seperti yang ditunjukkan berikut:transformer.transform( data=batch_input, data_type='S3Prefix', content_type='text/csv', split_type='Line' ) transformer.wait()
Saat pekerjaan transformasi batch selesai, SageMaker buat data
test.csv.out
prediksi yang disimpan dibatch_output
jalur, yang seharusnya dalam format berikut:s3://sagemaker-<region>-111122223333/demo-sagemaker-xgboost-adult-income-prediction/batch-prediction
. Jalankan yang berikut ini AWS CLI untuk mengunduh data keluaran dari pekerjaan transformasi batch:! aws s3 cp {batch_output} ./ --recursive
Ini harus membuat
test.csv.out
file di bawah direktori kerja saat ini. Anda akan dapat melihat nilai float yang diprediksi berdasarkan regresi logistik dari pekerjaan pelatihan XGBoost.