Autopilot Amazon SageMaker memungkinkan organisasi untuk dengan cepat membangun dan menerapkan model pembelajaran mesin (ML) end-to-end dan saluran inferensi hanya dengan beberapa baris kode atau bahkan tanpa kode apapun sama sekali dengan Studio Amazon SageMaker. Autopilot mengurangi beban berat dari konfigurasi infrastruktur dan waktu yang diperlukan untuk membangun keseluruhan pipeline, termasuk rekayasa fitur, pemilihan model, dan penyetelan hyperparameter.
Dalam posting ini, kami menunjukkan cara beralih dari data mentah ke pipeline inferensi yang kuat dan diterapkan sepenuhnya dengan Autopilot.
Ikhtisar solusi
Kami menggunakan Kumpulan data publik Lyft tentang berbagi sepeda simulasi ini untuk memprediksi apakah pengguna berpartisipasi dalam Berbagi Sepeda untuk Semua program. Ini adalah masalah klasifikasi biner sederhana.
Kami ingin menunjukkan betapa mudahnya membangun saluran inferensi otomatis dan waktu nyata untuk mengklasifikasikan pengguna berdasarkan partisipasi mereka dalam program Berbagi Sepeda untuk Semua. Untuk tujuan ini, kami mensimulasikan penyerapan data end-to-end dan saluran inferensi untuk perusahaan bikeshare imajiner yang beroperasi di San Francisco Bay Area.
Arsitektur dipecah menjadi dua bagian: pipa penyerapan dan pipa inferensi.
Kami terutama berfokus pada pipeline ML di bagian pertama postingan ini, dan meninjau pipeline penyerapan data di bagian kedua.
Prasyarat
Untuk mengikuti contoh ini, selesaikan prasyarat berikut:
- Buat instans notebook SageMaker baru.
- Buat Firehose Data Amazon Kinesis aliran pengiriman dengan AWS Lambda mengubah fungsi. Untuk petunjuk, lihat Transformasi Data Amazon Kinesis Firehose dengan AWS Lambda. Langkah ini opsional dan hanya diperlukan untuk mensimulasikan streaming data.
Eksplorasi data
Mari unduh dan visualisasikan kumpulan data, yang terletak di tempat umum Layanan Penyimpanan Sederhana Amazon Bucket (Amazon S3) dan situs web statis:
Tangkapan layar berikut menunjukkan subset data sebelum transformasi.
Kolom terakhir dari data berisi target yang ingin kita prediksi, yang merupakan variabel biner yang mengambil nilai Ya atau Tidak, yang menunjukkan apakah pengguna berpartisipasi dalam program Bike Share for All.
Mari kita lihat distribusi variabel target kita untuk ketidakseimbangan data.
Seperti yang ditunjukkan pada grafik di atas, datanya tidak seimbang, dengan lebih sedikit orang yang berpartisipasi dalam program.
Kita perlu menyeimbangkan data untuk mencegah bias representasi yang berlebihan. Langkah ini opsional karena Autopilot juga menawarkan pendekatan internal untuk menangani ketidakseimbangan kelas secara otomatis, yang defaultnya adalah metrik validasi skor F1. Selain itu, jika Anda memilih untuk menyeimbangkan data sendiri, Anda dapat menggunakan teknik yang lebih canggih untuk menangani ketidakseimbangan kelas, seperti HALUS or Gan.
Untuk postingan kali ini, kita downsample kelas mayoritas (No) sebagai teknik data balancing:
Kode berikut memperkaya data dan mengurangi sampel kelas yang direpresentasikan secara berlebihan:
Kami sengaja membiarkan fitur kategoris kami tidak dikodekan, termasuk nilai target biner kami. Ini karena Autopilot menangani encoding dan decoding data untuk kami sebagai bagian dari rekayasa fitur otomatis dan penerapan pipeline, seperti yang kita lihat di bagian berikutnya.
Tangkapan layar berikut menunjukkan contoh data kami.
Data dalam grafik berikut terlihat normal, dengan distribusi bimodal yang mewakili dua puncak untuk jam pagi dan jam sibuk sore, seperti yang Anda harapkan. Kami juga mengamati aktivitas rendah di akhir pekan dan di malam hari.
Di bagian selanjutnya, kami memasukkan data ke Autopilot sehingga dapat menjalankan eksperimen untuk kami.
Membangun model klasifikasi biner
Autopilot mengharuskan kita menentukan bucket tujuan input dan output. Ini menggunakan bucket input untuk memuat data dan bucket output untuk menyimpan artefak, seperti rekayasa fitur dan notebook Jupyter yang dihasilkan. Kami mempertahankan 5% dari kumpulan data untuk mengevaluasi dan memvalidasi kinerja model setelah pelatihan selesai dan mengunggah 95% kumpulan data ke bucket input S3. Lihat kode berikut:
Setelah kita mengupload data ke tujuan input, saatnya untuk memulai Autopilot:
Yang kita perlukan untuk mulai bereksperimen adalah memanggil metode fit(). Autopilot membutuhkan lokasi S3 input dan output dan kolom atribut target sebagai parameter yang diperlukan. Setelah pemrosesan fitur, panggilan Autopilot Tuning model otomatis SageMaker untuk menemukan versi model terbaik dengan menjalankan banyak tugas pelatihan pada set data Anda. Kami menambahkan parameter max_candidates opsional untuk membatasi jumlah kandidat hingga 30, yang merupakan jumlah tugas pelatihan yang diluncurkan Autopilot dengan berbagai kombinasi algoritme dan hyperparameter untuk menemukan model terbaik. Jika Anda tidak menentukan parameter ini, defaultnya adalah 250.
Kita dapat mengamati perkembangan Autopilot dengan kode berikut:
Pelatihan membutuhkan waktu untuk menyelesaikannya. Saat sedang berjalan, mari kita lihat alur kerja Autopilot.
Untuk menemukan kandidat terbaik, gunakan kode berikut:
Tangkapan layar berikut menunjukkan keluaran kami.
Model kami mencapai akurasi validasi 96%, jadi kami akan menerapkannya. Kita dapat menambahkan kondisi sedemikian rupa sehingga kita hanya menggunakan model jika akurasinya di atas tingkat tertentu.
Pipa inferensi
Sebelum kita menerapkan model kita, mari kita periksa kandidat terbaik kita dan apa yang terjadi di jalur kita. Lihat kode berikut:
Diagram berikut menunjukkan output kami.
Autopilot telah membangun model dan mengemasnya dalam tiga wadah berbeda, masing-masing secara berurutan menjalankan tugas tertentu: transformasi, prediksi, dan transformasi balik. Inferensi multi-langkah ini dimungkinkan dengan Pipa inferensi SageMaker.
Inferensi multi-langkah juga dapat menghubungkan beberapa model inferensi. Misalnya, satu wadah dapat melakukan analisis komponen utama sebelum meneruskan data ke wadah XGBoost.
Terapkan pipa inferensi ke titik akhir
Proses penyebaran hanya melibatkan beberapa baris kode:
Mari konfigurasikan titik akhir kita untuk prediksi dengan prediktor:
Sekarang setelah titik akhir dan prediktor kami siap, saatnya menggunakan data pengujian yang kami sisihkan dan menguji keakuratan model kami. Kami mulai dengan mendefinisikan fungsi utilitas yang mengirimkan data satu baris pada satu waktu ke titik akhir inferensi kami dan mendapatkan prediksi sebagai balasannya. Karena kami memiliki XGBoost model, kami menjatuhkan variabel target sebelum mengirim garis CSV ke titik akhir. Selain itu, kami menghapus header dari CSV pengujian sebelum mengulang file, yang juga merupakan persyaratan lain untuk XGBoost di SageMaker. Lihat kode berikut:
Tangkapan layar berikut menunjukkan keluaran kami.
Sekarang mari kita hitung akurasi model kita.
Lihat kode berikut:
Kami mendapatkan akurasi 92%. Ini sedikit lebih rendah dari 96% yang diperoleh selama langkah validasi, tetapi masih cukup tinggi. Kami tidak mengharapkan akurasi yang sama persis karena pengujian dilakukan dengan dataset baru.
Penyerapan data
Kami mengunduh data secara langsung dan mengonfigurasinya untuk pelatihan. Dalam kehidupan nyata, Anda mungkin harus mengirim data langsung dari perangkat edge ke data lake dan meminta SageMaker memuatnya langsung dari data lake ke notebook.
Kinesis Data Firehose adalah opsi yang baik dan cara paling mudah untuk memuat data streaming secara andal ke dalam data lake, penyimpanan data, dan alat analitik. Itu dapat menangkap, mengubah, dan memuat data streaming ke Amazon S3 dan penyimpanan data AWS lainnya.
Untuk kasus penggunaan kami, kami membuat aliran pengiriman Kinesis Data Firehose dengan fungsi transformasi Lambda untuk melakukan pembersihan data ringan saat melintasi aliran. Lihat kode berikut:
Fungsi Lambda ini melakukan transformasi ringan dari data yang dialirkan dari perangkat ke data lake. Ia mengharapkan file data berformat CSV.
Untuk langkah penyerapan, kami mengunduh data dan mensimulasikan aliran data ke Kinesis Data Firehose dengan fungsi transformasi Lambda dan menjadi data lake S3 kami.
Mari simulasikan streaming beberapa baris:
Membersihkan
Sangat penting untuk menghapus semua sumber daya yang digunakan dalam latihan ini untuk meminimalkan biaya. Kode berikut menghapus titik akhir inferensi SageMaker yang kami buat serta data pelatihan dan pengujian yang kami unggah:
Kesimpulan
Insinyur ML, ilmuwan data, dan pengembang perangkat lunak dapat menggunakan Autopilot untuk membangun dan menerapkan saluran inferensi dengan sedikit atau tanpa pengalaman pemrograman ML. Autopilot menghemat waktu dan sumber daya, menggunakan ilmu data dan praktik terbaik ML. Organisasi besar sekarang dapat mengalihkan sumber daya teknik dari konfigurasi infrastruktur ke peningkatan model dan penyelesaian kasus penggunaan bisnis. Startup dan organisasi yang lebih kecil dapat memulai pembelajaran mesin dengan sedikit atau tanpa keahlian ML.
Untuk memulai SageMaker Autopilot, lihat halaman produk atau akses SageMaker Autopilot dalam SageMaker Studio.
Kami juga merekomendasikan untuk mempelajari lebih lanjut tentang fitur penting lainnya yang ditawarkan SageMaker, seperti Toko Fitur Amazon SageMaker, yang terintegrasi dengan Pipa Amazon SageMaker untuk membuat, menambahkan pencarian dan penemuan fitur, dan menggunakan kembali alur kerja ML otomatis. Anda dapat menjalankan beberapa simulasi Autopilot dengan fitur atau varian target yang berbeda dalam kumpulan data Anda. Anda juga bisa mendekati ini sebagai masalah alokasi kendaraan dinamis di mana model Anda mencoba untuk memprediksi permintaan kendaraan berdasarkan waktu (seperti waktu hari atau hari dalam seminggu) atau lokasi, atau kombinasi keduanya.
Tentang Penulis
Doug Mbaya adalah arsitek Solusi Senior dengan fokus pada data dan analitik. Doug bekerja sama dengan mitra AWS, membantu mereka mengintegrasikan data dan solusi analitik di cloud. Pengalaman Doug sebelumnya termasuk mendukung pelanggan AWS di segmen berbagi perjalanan dan pengiriman makanan.
Valerio Perron adalah Manajer Sains Terapan yang bekerja di Penyetelan Model Otomatis dan Autopilot Amazon SageMaker.
- Coinsmart. Pertukaran Bitcoin dan Crypto Terbaik Eropa.
- Platoblockchain. Intelijen Metaverse Web3. Pengetahuan Diperkuat. AKSES GRATIS.
- CryptoHawk. Radar Altcoin. Uji Coba Gratis.
- Sumber: https://aws.amazon.com/blogs/machine-learning/automate-a-shared-bikes-and-scooters-classification-model-with-amazon-sagemaker-autopilot/
- '
- "
- &
- 100
- Tentang Kami
- mengakses
- dicapai
- kegiatan
- maju
- algoritma
- Semua
- alokasi
- Amazon
- analisis
- Lain
- api
- pendekatan
- arsitektur
- DAERAH
- argumen
- Otomatis
- AWS
- Teluk
- TERBAIK
- Praktik Terbaik
- membangun
- bisnis
- panggilan
- Bisa Dapatkan
- yang
- kasus
- perubahan
- pilihan
- klasifikasi
- Pembersihan
- awan
- kode
- Kolom
- kombinasi
- kombinasi
- perusahaan
- komponen
- kondisi
- konfigurasi
- Wadah
- Wadah
- mengandung
- bisa
- pelanggan
- data
- pengolahan data
- ilmu data
- hari
- pengiriman
- Permintaan
- menyebarkan
- penyebaran
- pengembang
- alat
- Devices
- berbeda
- penemuan
- Display
- distribusi
- turun
- Menjatuhkan
- dinamis
- Tepi
- enkripsi
- Titik akhir
- Teknik
- Insinyur
- Acara
- contoh
- Kecuali
- Latihan
- mengharapkan
- pengalaman
- eksperimen
- keahlian
- Fitur
- Fitur
- Pertama
- Fokus
- mengikuti
- berikut
- makanan
- Francisco
- fungsi
- mendapatkan
- akan
- baik
- Penanganan
- di sini
- High
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- HTTPS
- penting
- Termasuk
- Infrastruktur
- mengintegrasikan
- IT
- Pekerjaan
- Jobs
- besar
- meluncurkan
- pengetahuan
- Tingkat
- Perpustakaan
- cahaya
- ringan
- baris
- sedikit
- memuat
- lokal
- tempat
- mesin
- Mesin belajar
- Mayoritas
- Membuat
- manajer
- ML
- model
- model
- paling
- buku catatan
- menawarkan
- Penawaran
- operasi
- pilihan
- urutan
- organisasi
- Lainnya
- jika tidak
- partisipasi
- rekan
- Konsultan Ahli
- prestasi
- mungkin
- ramalan
- Masalah
- proses
- program
- Pemrograman
- memberikan
- publik
- segera
- Mentah
- real-time
- sarankan
- catatan
- arsip
- wajib
- Sumber
- Pengembalian
- ulasan
- aturan
- Run
- berjalan
- buru-buru
- San
- San Fransisco
- penghematan
- Ilmu
- ilmuwan
- Pencarian
- terpilih
- Seri
- set
- Share
- berbagi
- bergeser
- Sederhana
- simulasi
- Ukuran
- tidur
- So
- Perangkat lunak
- membagi
- awal
- mulai
- Startups
- penyimpanan
- toko
- aliran
- streaming
- Streaming
- studio
- target
- teknik
- uji
- pengujian
- Melalui
- waktu
- hari ini
- alat
- Pelatihan
- Mengubah
- Transformasi
- us
- menggunakan
- Pengguna
- kegunaan
- nilai
- kendaraan
- Situs Web
- minggu
- apakah
- Wikipedia
- dalam
- kerja
- bekerja