Cara menskalakan inferensi pembelajaran mesin untuk kasus penggunaan SaaS multi-penyewa, PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Cara menskalakan inferensi pembelajaran mesin untuk kasus penggunaan SaaS multi-penyewa

Posting ini ditulis bersama dengan Sowmya Manusani, Sr. Staff Machine Learning Engineer di Zendesk

Zendesk adalah perusahaan SaaS yang membangun perangkat lunak dukungan, penjualan, dan keterlibatan pelanggan untuk semua orang, dengan kesederhanaan sebagai dasarnya. Ini berkembang pesat dalam membuat lebih dari 170,000 perusahaan di seluruh dunia melayani ratusan juta pelanggan mereka secara efisien. Tim Machine Learning di Zendcaesk bertanggung jawab untuk meningkatkan tim Pengalaman Pelanggan untuk mencapai yang terbaik. Dengan menggabungkan kekuatan data dan manusia, Zendesk menghadirkan produk cerdas yang membuat pelanggan mereka lebih produktif dengan mengotomatiskan pekerjaan manual.

Zendesk telah membangun produk ML sejak 2015, termasuk Bot Jawaban, Prediksi Kepuasan, Isyarat Konten, Makro yang Disarankan, dan masih banyak lagi. Dalam beberapa tahun terakhir, dengan pertumbuhan pembelajaran mendalam, terutama di NLP, mereka melihat banyak peluang untuk mengotomatisasi alur kerja dan membantu agen dalam mendukung pelanggan mereka dengan solusi Zendesk. Zendesk saat ini menggunakan TensorFlow dan PyTorch untuk membangun model pembelajaran yang mendalam.

Pelanggan seperti Zendesk telah membangun bisnis perangkat lunak sebagai layanan (SaaS) skala tinggi yang sukses di Amazon Web Services (AWS). Penggerak utama untuk model bisnis SaaS yang sukses adalah kemampuan untuk menerapkan multi-tenancy dalam aplikasi dan infrastruktur. Hal ini memungkinkan efisiensi biaya dan operasional karena aplikasi hanya perlu dibangun sekali, tetapi dapat digunakan berkali-kali dan infrastruktur dapat digunakan bersama. Kami melihat banyak pelanggan membangun sistem multi-penyewa yang aman, hemat biaya, di AWS di semua lapisan, mulai dari komputasi, penyimpanan, database, hingga jaringan, dan sekarang kami melihat pelanggan perlu menerapkannya ke pembelajaran mesin (ML ).

Membuat tradeoff yang sulit antara penggunaan kembali model dan hiper-personalisasi

Multi-tenancy untuk bisnis SaaS biasanya berarti bahwa satu aplikasi digunakan kembali di antara banyak pengguna (pelanggan SaaS). Ini menciptakan efisiensi biaya dan menurunkan overhead operasional. Namun, model pembelajaran mesin terkadang perlu dipersonalisasi ke tingkat kekhususan yang tinggi (hyper-personalized) untuk membuat prediksi yang akurat. Ini berarti paradigma SaaS "bangun sekali, gunakan berkali-kali" tidak selalu dapat diterapkan ke ML jika model memiliki kekhususan. Ambil contoh kasus penggunaan platform dukungan pelanggan. Bahasa yang disertakan pengguna dalam tiket dukungan bervariasi tergantung pada apakah itu masalah berbagi tumpangan (โ€œperjalanan memakan waktu terlalu lamaโ€) atau masalah pembelian pakaian (โ€œperubahan warna saat dicuciโ€). Dalam kasus penggunaan ini, meningkatkan akurasi memprediksi tindakan remediasi terbaik mungkin memerlukan pelatihan model pemrosesan bahasa alami (NLP) pada kumpulan data khusus untuk domain bisnis atau vertikal industri. Zendesk menghadapi tantangan ini saat mencoba memanfaatkan ML dalam solusi mereka. Mereka perlu membuat ribuan model ML yang sangat disesuaikan, masing-masing disesuaikan untuk pelanggan tertentu. Untuk mengatasi tantangan penerapan ribuan model ini, dengan biaya yang efektif, Zendesk beralih ke Amazon SageMaker.

Dalam posting ini, kami menunjukkan cara menggunakan beberapa fitur terbaru dari Amazon SageMaker, layanan machine learning yang terkelola sepenuhnya, untuk membangun kemampuan inferensi ML multi-tenant. Kami juga membagikan contoh nyata tentang bagaimana Zendesk berhasil mencapai hasil yang sama dengan menerapkan media yang menyenangkan antara dapat mendukung hiper-personalisasi dalam model ML mereka dan penggunaan infrastruktur bersama yang hemat biaya menggunakan titik akhir multi-model SageMaker ( MME).

Titik akhir multi-model SageMaker

Titik akhir multi-model SageMaker memungkinkan Anda menerapkan beberapa model di belakang titik akhir inferensi tunggal yang mungkin berisi satu atau beberapa instans. Setiap instans dirancang untuk memuat dan melayani beberapa model hingga kapasitas memori dan CPU-nya. Dengan arsitektur ini, bisnis SaaS dapat mematahkan peningkatan biaya hosting beberapa model secara linear dan mencapai penggunaan kembali infrastruktur yang konsisten dengan model multi-penyewaan yang diterapkan di tempat lain dalam tumpukan aplikasi.

Diagram berikut mengilustrasikan arsitektur titik akhir multi-model SageMaker.

Cara menskalakan inferensi pembelajaran mesin untuk kasus penggunaan SaaS multi-penyewa, PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Titik akhir multi-model SageMaker secara dinamis memuat model dari Layanan Penyimpanan Sederhana Amazon (Amazon S3) saat dipanggil, alih-alih mengunduh semua model saat titik akhir pertama kali dibuat. Akibatnya, pemanggilan awal ke model mungkin melihat latensi inferensi yang lebih tinggi daripada inferensi berikutnya, yang dilengkapi dengan latensi rendah. Jika model sudah dimuat pada wadah saat dipanggil, maka langkah pengunduhan dilewati dan model mengembalikan inferensi dengan latensi rendah. Misalnya, asumsikan Anda memiliki model yang hanya digunakan beberapa kali sehari. Itu dimuat secara otomatis sesuai permintaan, sementara model yang sering diakses disimpan dalam memori dan dipanggil dengan latensi rendah yang konsisten.

Mari kita lihat lebih dekat bagaimana Zendesk menggunakan SageMaker MME untuk mencapai penerapan ML skala besar yang hemat biaya dengan fitur ML Makro yang Disarankan.

Mengapa Zendesk membuat model yang sangat dipersonalisasi

Pelanggan Zendesk tersebar secara global di vertikal industri yang berbeda dengan semantik tiket dukungan yang berbeda. Oleh karena itu, untuk melayani pelanggan dengan sebaik-baiknya, mereka sering kali harus membuat model yang dipersonalisasi yang dilatih tentang data tiket dukungan khusus pelanggan untuk mengidentifikasi maksud, makro, dan lainnya dengan benar.

Pada Oktober 2021, mereka merilis fitur NLP ML baru, Makro yang Disarankan, yang merekomendasikan makro (tindakan yang telah ditentukan sebelumnya) berdasarkan ribuan prediksi model khusus pelanggan. Tim ML Zendesk membuat model pengklasifikasi NLP berbasis TensorFlow yang dilatih dari riwayat konten tiket dan makro per pelanggan sebelumnya. Dengan tersedianya model ini, prediksi makro direkomendasikan setiap kali agen melihat tiket (seperti yang ditunjukkan pada tangkapan layar berikut), yang membantu agen dalam melayani pelanggan dengan cepat. Karena makro khusus untuk pelanggan, Zendesk membutuhkan model khusus pelanggan untuk menyajikan prediksi yang akurat.

Cara menskalakan inferensi pembelajaran mesin untuk kasus penggunaan SaaS multi-penyewa, PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Di bawah tenda Macro yang Disarankan Zendesk

Model Macro yang disarankan adalah jaringan saraf berbasis NLP yang berukuran sekitar 7โ€“15 MB. Tantangan utamanya adalah menempatkan ribuan model ini dalam produksi dengan solusi hemat biaya, andal, dan skalabel.

Setiap model memiliki pola lalu lintas yang berbeda, dengan minimal dua permintaan per detik dan puncak ratusan permintaan per detik, menyajikan jutaan prediksi per hari dengan latensi model sekitar 100 milidetik saat model tersedia di memori. Titik akhir SageMaker diterapkan di beberapa Wilayah AWS, melayani ribuan permintaan per menit per titik akhir.

Dengan kemampuannya untuk meng-host beberapa model pada satu titik akhir, SageMaker membantu Zendesk mengurangi overhead penerapan dan menciptakan solusi hemat biaya jika dibandingkan dengan menerapkan titik akhir model tunggal per pelanggan. Tradeoff di sini adalah kontrol yang lebih sedikit pada manajemen per model; namun, ini adalah area di mana Zendesk berkolaborasi dengan AWS untuk meningkatkan titik akhir multi-model.

Salah satu fitur multi-model SageMaker adalah pemuatan model yang lambat, yaitu model dimuat ke dalam memori saat dipanggil untuk pertama kalinya. Ini untuk mengoptimalkan pemanfaatan memori; namun, ini menyebabkan lonjakan waktu respons pada pemuatan pertama, yang dapat dilihat sebagai masalah awal yang dingin. Untuk Makro yang Disarankan, ini merupakan tantangan; namun, Zendesk mengatasinya dengan menerapkan fungsionalitas pramuat di atas penyediaan titik akhir SageMaker untuk memuat model ke dalam memori sebelum melayani lalu lintas produksi. Kedua, MME membongkar model yang jarang digunakan dari memori, jadi untuk mencapai latensi rendah yang konsisten pada semua model dan menghindari "tetangga berisik" yang memengaruhi model lain yang kurang aktif, Zendesk berkolaborasi dengan AWS untuk menambahkan fitur baru, yang dibahas nanti di postingan, untuk mengaktifkan manajemen per model yang lebih eksplisit. Selain itu, sebagai solusi sementara, Zendesk memiliki ukuran armada MME yang tepat untuk meminimalkan terlalu banyak model yang dibongkar. Dengan ini, Zendesk mampu menyajikan prediksi kepada semua pelanggan mereka dengan latensi rendah, sekitar 100 milidetik, dan masih mencapai penghematan biaya 90% jika dibandingkan dengan titik akhir khusus.

Pada MME dengan ukuran yang tepat, Zendesk mengamati selama pengujian beban bahwa memiliki lebih banyak instans yang lebih kecil (bias pada penskalaan horizontal) di belakang MME adalah pilihan yang lebih baik daripada memiliki lebih sedikit instans memori yang lebih besar (penskalaan vertikal). Zendesk mengamati bahwa bin yang mengemas terlalu banyak model (di luar 500 model TensorFlow dalam kasusnya) pada satu instans memori besar tidak berfungsi dengan baik karena memori bukan satu-satunya sumber daya pada instans yang dapat menjadi hambatan. Lebih khusus lagi, mereka mengamati bahwa TensorFlow menghasilkan banyak utas (3 x total vCPU instans) per model, sehingga memuat lebih dari 500 model pada satu instans menyebabkan batas level kernel dilanggar pada jumlah maksimal utas yang dapat dihasilkan pada sebuah instans. Masalah lain dengan menggunakan lebih sedikit, contoh yang lebih besar terjadi ketika Zendesk mengalami pelambatan (sebagai mekanisme keamanan) pada beberapa contoh di belakang MME karena permintaan model unik per detik melebihi apa yang Server Multi Model (MMS) pada satu instans dapat dengan aman menangani tanpa membuat instans menjadi cokelat. Ini adalah masalah lain yang diselesaikan dengan penggunaan instance yang lebih banyak dan lebih kecil.

Dari perspektif observabilitas, yang merupakan komponen penting dari setiap aplikasi produksi, amazoncloudwatch metrik seperti pemanggilan, CPU, penggunaan memori, dan metrik khusus model multi seperti model yang dimuat dalam memori, waktu pemuatan model, waktu tunggu pemuatan model, dan cache hit model bersifat informatif. Secara khusus, perincian latensi model membantu Zendesk memahami masalah cold start dan dampaknya.

Di bawah kap penskalaan otomatis MME

Di belakang setiap titik akhir multi-model, ada contoh hosting model, seperti yang digambarkan dalam diagram berikut. Instance ini memuat dan mengeluarkan beberapa model ke dan dari memori berdasarkan pola lalu lintas ke model.

Cara menskalakan inferensi pembelajaran mesin untuk kasus penggunaan SaaS multi-penyewa, PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

SageMaker terus merutekan permintaan inferensi untuk model ke instance di mana model sudah dimuat sedemikian rupa sehingga permintaan dilayani dari salinan model yang di-cache (lihat diagram berikut, yang menunjukkan jalur permintaan untuk permintaan prediksi pertama vs. permintaan prediksi yang di-cache jalur). Namun, jika model menerima banyak permintaan pemanggilan, dan ada instans tambahan untuk titik akhir multimodel, SageMaker merutekan beberapa permintaan ke instans lain untuk mengakomodasi peningkatan tersebut. Untuk memanfaatkan penskalaan model otomatis di SageMaker, pastikan Anda memiliki contoh pengaturan penskalaan otomatis untuk menyediakan kapasitas instans tambahan. Siapkan kebijakan penskalaan tingkat titik akhir Anda dengan parameter khusus atau permintaan per menit (disarankan) untuk menambahkan lebih banyak instans ke armada titik akhir.

Cara menskalakan inferensi pembelajaran mesin untuk kasus penggunaan SaaS multi-penyewa, PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Gunakan case yang paling cocok untuk MME

Titik akhir multi-model SageMaker sangat cocok untuk menampung sejumlah besar model serupa yang dapat Anda layani melalui wadah penyajian bersama dan tidak perlu mengakses semua model secara bersamaan. MME paling cocok untuk model yang serupa dalam ukuran dan latensi pemanggilan. Beberapa variasi dalam ukuran model dapat diterima; misalnya, model Zendesk berkisar antara 10โ€“50 Mb, yang berfungsi dengan baik, tetapi variasi ukuran yang merupakan faktor 10, 50, atau 100 kali lebih besar tidak cocok. Model yang lebih besar dapat menyebabkan jumlah pemuatan dan pembongkaran yang lebih tinggi dari model yang lebih kecil untuk mengakomodasi ruang memori yang cukup, yang dapat menghasilkan latensi tambahan pada titik akhir. Perbedaan karakteristik kinerja model yang lebih besar juga dapat menghabiskan sumber daya seperti CPU secara tidak merata, yang dapat memengaruhi model lain pada instans.

MME juga dirancang untuk model co-hosting yang menggunakan kerangka kerja ML yang sama karena mereka menggunakan wadah bersama untuk memuat beberapa model. Oleh karena itu, jika Anda memiliki campuran kerangka kerja ML dalam armada model Anda (seperti PyTorch dan TensorFlow), titik akhir khusus SageMaker atau hosting multi-kontainer adalah pilihan yang lebih baik. Terakhir, MME cocok untuk aplikasi yang dapat mentolerir hukuman latensi cold start sesekali karena model yang jarang digunakan dapat diturunkan muatannya demi model yang sering dipanggil. Jika Anda memiliki banyak model yang jarang diakses, titik akhir multi-model dapat melayani lalu lintas ini secara efisien dan memungkinkan penghematan biaya yang signifikan.

Kesimpulan

Dalam postingan ini, Anda mempelajari bagaimana SaaS dan multi-tenancy berhubungan dengan ML dan bagaimana endpoint multi-model SageMaker mengaktifkan multi-tenancy dan efisiensi biaya untuk inferensi ML. Anda telah mempelajari tentang kasus penggunaan multi-penyewa Zendesk untuk model ML per pelanggan dan bagaimana mereka menghosting ribuan model ML di SageMaker MME untuk fitur Makro yang Disarankan dan mencapai penghematan biaya 90% pada inferensi jika dibandingkan dengan titik akhir khusus. Kasus penggunaan hiper-personalisasi dapat memerlukan ribuan model ML, dan MME adalah pilihan hemat biaya untuk kasus penggunaan ini. Kami akan terus melakukan penyempurnaan di MME untuk memungkinkan Anda menghosting model dengan latensi rendah dan dengan kontrol yang lebih terperinci untuk setiap model yang dipersonalisasi. Untuk memulai dengan MME, lihat Host beberapa model dalam satu wadah di belakang satu titik akhir.


Tentang Penulis

Cara menskalakan inferensi pembelajaran mesin untuk kasus penggunaan SaaS multi-penyewa, PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Syed Jafry adalah Arsitek Sr. Solutions dengan AWS. Dia bekerja dengan berbagai perusahaan mulai dari organisasi menengah hingga perusahaan besar, layanan keuangan hingga ISV, dalam membantu mereka membangun dan mengoperasikan aplikasi yang aman, tangguh, skalabel, dan berkinerja tinggi di cloud.

Cara menskalakan inferensi pembelajaran mesin untuk kasus penggunaan SaaS multi-penyewa, PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Sowmya Manusani adalah Insinyur Pembelajaran Mesin Staf Senior di Zendesk. Dia bekerja untuk memproduksi fitur Pembelajaran Mesin berbasis NLP yang berfokus pada peningkatan produktivitas Agen untuk ribuan pelanggan Zendesk Enterprise. Dia memiliki pengalaman dalam membangun jalur pelatihan otomatis untuk ribuan model yang dipersonalisasi dan menyajikannya menggunakan aplikasi yang aman, tangguh, skalabel, dan berkinerja tinggi. Di waktu luangnya, dia suka memecahkan teka-teki dan mencoba melukis.

Cara menskalakan inferensi pembelajaran mesin untuk kasus penggunaan SaaS multi-penyewa, PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai. Saurabh Trikande adalah Manajer Produk Senior untuk Inferensi Amazon SageMaker. Dia bersemangat bekerja dengan pelanggan dan membuat pembelajaran mesin lebih mudah diakses. Di waktu luangnya, Saurabh menikmati hiking, belajar tentang teknologi inovatif, mengikuti TechCrunch, dan menghabiskan waktu bersama keluarganya.

Cara menskalakan inferensi pembelajaran mesin untuk kasus penggunaan SaaS multi-penyewa, PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Deepti Ragha adalah Insinyur Pengembangan Perangkat Lunak di tim Amazon SageMaker. Pekerjaannya saat ini berfokus pada pembuatan fitur untuk menghosting model pembelajaran mesin secara efisien. Di waktu senggangnya, dia suka jalan-jalan, mendaki gunung, dan menanam tanaman.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS