Built-in Amazon SageMaker Algoritma XGBoost menyediakan wadah terkelola untuk menjalankan yang populer XGBoost kerangka kerja pembelajaran mesin (ML), dengan kenyamanan tambahan untuk mendukung pelatihan lanjutan atau fitur inferensi seperti pelatihan terdistribusi, sharding kumpulan data untuk kumpulan data skala besar, Pengujian model A/B, atau inferensi multi-model titik akhir. Anda juga dapat memperluas algoritme canggih ini untuk mengakomodasi kebutuhan yang berbeda.
Pengemasan kode dan dependensi dalam satu wadah adalah pendekatan yang nyaman dan kuat untuk pemeliharaan kode jangka panjang, reproduktifitas, dan tujuan audit. Memodifikasi wadah secara langsung mengikuti wadah dasar dengan setia dan menghindari duplikasi fungsi yang sudah ada yang telah didukung oleh wadah dasar. Dalam posting ini, kami meninjau cara kerja wadah algoritme SageMaker XGBoost dan menyediakan skrip pragmatis untuk menyesuaikan wadah secara langsung.
Struktur wadah SageMaker XGBoost
Algoritme XGBoost bawaan SageMaker dikemas sebagai wadah yang berdiri sendiri, tersedia di GitHub, dan dapat diperpanjang di bawah lisensi open-source Apache 2.0 yang ramah pengembang. Kontainer mengemas algoritma XGBoost sumber terbuka dan alat bantu untuk menjalankan algoritme di lingkungan SageMaker yang terintegrasi dengan layanan AWS Cloud lainnya. Ini memungkinkan Anda untuk melatih model XGBoost di berbagai sumber data, buat prediksi batch pada data offline, atau host dan titik akhir inferensi secara real-time pipa saluran.
Wadah mendukung pelatihan dan operasi inferensi dengan titik masuk yang berbeda. Untuk mode inferensi, entri dapat ditemukan di fungsi utama di skrip penyajian.py. Untuk penyajian inferensi waktu-nyata, wadah berjalan a LabuBerbasis web server saat itu dipanggil, menerima permintaan yang disandikan HTTP yang berisi data, menerjemahkan data ke dalam XGBoost dmatrix format, memuat model, dan mengembalikan Respons yang disandikan HTTP kembali. Metode-metode ini dienkapsulasi di bawah Layanan Penilaian kelas, yang juga dapat disesuaikan melalui mode skrip untuk sebagian besar (lihat Lampiran di bawah).
Titik masuk untuk mode pelatihan (mode algoritma) adalah fungsi utama dalam pelatihan.py. Fungsi utama mengatur lingkungan pelatihan dan memanggil fungsi pekerjaan pelatihan. Ini cukup fleksibel untuk memungkinkan pelatihan terdistribusi atau single-node, atau utilitas seperti validasi silang. Inti dari proses pelatihan dapat ditemukan di kereta_pekerjaan fungsi.
File Docker yang mengemas wadah dapat ditemukan di GitHub repo. Perhatikan bahwa wadah dibuat dalam dua langkah: a mendasarkan wadah dibangun terlebih dahulu, diikuti oleh terakhir wadah di atas.
Ikhtisar solusi
Anda dapat memodifikasi dan membangun kembali wadah melalui kode sumber. Namun, ini melibatkan pengumpulan dan pembangunan kembali semua dependensi dan paket dari awal. Dalam posting ini, kami membahas pendekatan yang lebih mudah yang memodifikasi container di atas gambar container algoritma SageMaker XGBoost yang sudah dibuat dan tersedia untuk umum secara langsung.
Dalam pendekatan ini, kita menarik salinan gambar SageMaker XGBoost publik, ubah skrip atau tambahkan paket, dan bangun kembali wadah di atasnya. Wadah yang dimodifikasi dapat disimpan dalam repositori pribadi. Dengan cara ini, kami menghindari membangun kembali dependensi perantara dan sebagai gantinya membangun langsung di atas pustaka yang sudah dibangun yang dikemas dalam wadah resmi.
Gambar berikut menunjukkan gambaran umum skrip yang digunakan untuk menarik gambar dasar publik, memodifikasi dan membangun kembali gambar, dan mengunggahnya ke pribadi Registry Kontainer Elastis Amazon (Amazon ECR) repositori. Itu skrip bash dalam kode terlampir dari posting ini melakukan semua langkah alur kerja yang ditunjukkan dalam diagram. Yang menyertai buku catatan menunjukkan contoh di mana URI versi tertentu dari algoritma SageMaker XGBoost pertama kali diambil dan diteruskan ke skrip bash, yang menggantikan dua skrip Python dalam gambar, membangunnya kembali, dan mendorong gambar yang dimodifikasi ke repositori Amazon ECR pribadi. Anda dapat memodifikasi kode yang menyertainya sesuai dengan kebutuhan Anda.
Prasyarat
Grafik Repositori GitHub berisi kode yang menyertai posting ini. Anda dapat menjalankan buku catatan sampel di akun AWS Anda, atau gunakan yang disediakan Formasi AWS Cloud stack untuk menyebarkan notebook menggunakan notebook SageMaker. Anda memerlukan prasyarat berikut:
- Akun AWS.
- Izin yang diperlukan untuk menjalankan tugas pelatihan dan transformasi batch SageMaker, serta hak istimewa Amazon ECR. Template CloudFormation membuat sampel Identitas AWS dan Manajemen Akses (IAM).
Terapkan solusinya
Untuk membuat sumber daya solusi Anda menggunakan AWS CloudFormation, pilih Luncurkan Stack:
Tumpukan menyebarkan notebook SageMaker yang telah dikonfigurasikan sebelumnya untuk mengkloning repositori GitHub. Panduan buku catatan menyertakan langkah-langkah untuk menarik image SageMaker XGBoost publik untuk versi tertentu, memodifikasinya, dan mendorong container kustom ke repositori Amazon ECR pribadi. Buku catatan menggunakan publik Kumpulan data abalon sebagai sampel, latih model menggunakan mode pelatihan bawaan SageMaker XGBoost, dan gunakan kembali model ini dalam gambar kustom untuk melakukan tugas transformasi batch yang menghasilkan inferensi bersama dengan nilai SHAP.
Kesimpulan
Algoritme bawaan SageMaker menyediakan berbagai fitur dan fungsionalitas, dan dapat diperluas lebih lanjut di bawah lisensi sumber terbuka Apache 2.0. Dalam posting ini, kami meninjau cara memperluas wadah bawaan produksi untuk algoritme SageMaker XGBoost untuk memenuhi persyaratan produksi seperti kode mundur dan kompatibilitas API.
Contoh buku catatan dan pembantu script memberikan titik awal yang nyaman untuk menyesuaikan gambar wadah SageMaker XGBoost seperti yang Anda inginkan. Cobalah!
Lampiran: Mode skrip
Modus skrip menyediakan cara untuk memodifikasi banyak algoritme bawaan SageMaker dengan menyediakan antarmuka untuk menggantikan fungsi yang bertanggung jawab untuk mengubah input dan memuat model. Mode skrip tidak sefleksibel memodifikasi wadah secara langsung, tetapi menyediakan rute berbasis Python sepenuhnya untuk menyesuaikan algoritme bawaan tanpa perlu bekerja secara langsung dengan Buruh pelabuhan.
Dalam mode skrip, a user-module
disediakan untuk menyesuaikan decoding data, memuat model, dan membuat prediksi. Modul pengguna dapat mendefinisikan a transformer_fn
yang menangani semua aspek pemrosesan permintaan hingga persiapan respons. Atau alih-alih mendefinisikan transformer_fn
, Anda dapat memberikan metode khusus model_fn
, input_fn
, predict_fn
, dan output_fn
secara individual untuk menyesuaikan pemuatan model dan decoding dan menyiapkan input untuk prediksi. Untuk ikhtisar yang lebih menyeluruh tentang mode skrip, lihat Bawa Model Anda Sendiri dengan SageMaker Script Mode.
Tentang Penulis
Peyman Razaghi adalah Ilmuwan Data di AWS. Dia meraih gelar PhD dalam teori informasi dari University of Toronto dan merupakan ilmuwan penelitian pasca-doktoral di University of Southern California (USC), Los Angeles. Sebelum bergabung dengan AWS, Peyman adalah seorang insinyur sistem staf di Qualcomm yang berkontribusi pada sejumlah standar telekomunikasi internasional yang terkenal. Dia telah menulis beberapa artikel penelitian ilmiah yang ditinjau sejawat di bidang statistik dan rekayasa sistem, dan menikmati mengasuh anak dan bersepeda di luar pekerjaan.
- "
- 100
- mengakses
- menampung
- Akun
- maju
- algoritma
- algoritma
- Semua
- sudah
- Amazon
- api
- pendekatan
- DAERAH
- artikel
- AWS
- membangun
- built-in
- california
- Pilih
- kelas
- awan
- layanan cloud
- kode
- Mengumpulkan
- sama sekali
- Wadah
- mengandung
- kenyamanan
- Mudah
- menciptakan
- adat
- data
- ilmuwan data
- menyebarkan
- menyebarkan
- berbeda
- langsung
- membahas
- didistribusikan
- Buruh pelabuhan
- insinyur
- Lingkungan Hidup
- contoh
- memperpanjang
- Fitur
- Angka
- Pertama
- fleksibel
- berikut
- format
- ditemukan
- Kerangka
- fungsi
- lebih lanjut
- GitHub
- besar
- memegang
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- HTTPS
- identitas
- gambar
- informasi
- memasukkan
- terpadu
- Antarmuka
- Internasional
- IT
- Pekerjaan
- Jobs
- pengetahuan
- Lisensi
- jangka panjang
- Los Angeles
- mesin
- Mesin belajar
- MEMBUAT
- Membuat
- berhasil
- ML
- model
- model
- lebih
- buku catatan
- jumlah
- resmi
- Pengunjung
- Operasi
- Lainnya
- sendiri
- Titik
- Populer
- kuat
- ramalan
- Prediksi
- swasta
- proses
- menghasilkan
- Produksi
- memberikan
- menyediakan
- menyediakan
- publik
- tujuan
- real-time
- gudang
- permintaan
- Persyaratan
- penelitian
- Sumber
- tanggapan
- tanggung jawab
- Pengembalian
- ulasan
- Rute
- Run
- ilmuwan
- Layanan
- porsi
- sharding
- Perangkat lunak
- larutan
- kode sumber
- Selatan
- tumpukan
- standar
- statistika
- Didukung
- pendukung
- Mendukung
- sistem
- Sumber
- Melalui
- bersama
- alat
- puncak
- toronto
- Pelatihan
- kereta
- Mengubah
- mengubah
- universitas
- menggunakan
- variasi
- Wikipedia
- Kerja
- akan