Ikhtisar Penerapan – Menuju AI

A part of the flowchart highlighting the deployment part of the ML lifecycle.

Author(s): Akhil Theerthala

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda membuat produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

Halo semuanya! Selamat datang kembali di seri MLOps. Di sini saya akan terus mengunggah catatan saya untuk Teknik Pembelajaran Mesin untuk Spesialisasi Produksi yang ditawarkan oleh DeepLearning.AI di Coursera. Saat ini kami berada di kursus pertama, Pengantar Pembelajaran Mesin dalam Produksi, yang diajarkan oleh sang legenda, Andrew Ng sendiri, di mana kami mendapatkan ikhtisar dari setiap langkah yang terlibat dalam lingkungan produksi.

Artikel ini membahas ikhtisar Penempatan dalam produksi, seperti yang disebutkan dalam artikel saya sebelumnya. Jika Anda belum membaca artikel sebelumnya, maka saya sarankan Anda untuk memeriksanya di sini, karena mungkin ada beberapa referensi untuk artikel sebelumnya.

Bagian dari diagram alur yang menyoroti bagian penerapan siklus hidup ML.Langkah penerapan dalam Siklus Proses Pembelajaran Mesin. Sumber: Deeplearning.ai, berlisensi di bawah lisensi Creative Commons Attribution-ShareAlike 2.0.

Pertama, mari kita lihat beberapa masalah paling umum yang muncul selama penerapan.

Ada dua jenis masalah utama yang muncul selama proses. Satu jenis adalah masalah terkait model atau masalah Statistik, dan jenis lainnya adalah masalah terkait perangkat lunak.

Pergeseran Konsep/ Pergeseran Data: (Masalah statistik)

Ini diamati ketika distribusi data yang melekat dari lalu lintas berubah dari distribusi data yang digunakan untuk melatih dan menguji model. Mungkin karena banyak alasan, seperti waktu, petir yang berbeda, perubahan dialek, dll., Perubahan ini bisa berupa kejutan bertahap atau tiba-tiba.

Masalah Rekayasa Perangkat Lunak: (Berikut adalah beberapa pertanyaan atau poin yang biasanya kami tanyakan untuk mendefinisikan layanan produksi)

Apakah sistem tersebut merupakan sistem prediksi Real-time, atau merupakan proses batch yang berjalan dalam semalam? Apakah dijalankan di cloud atau perangkat Edge? Berapa banyak sumber daya yang digunakan layanan lengkap? Berapa latensi dan throughput (QPS) layanan? Logging untuk analisis dan ulasan. Masalah keamanan dan privasi.

Ingat, kami telah mendefinisikan 2 bagian penerapan yang berbeda; satu menulis kode untuk perangkat lunak, dan yang lainnya memelihara sistem.

Pola Penerapan

Bergantung pada kasus penggunaan, kami memiliki pola yang berbeda untuk berbagai tahap penerapan. Beberapa skenario penyebaran adalah,

Jika kami menawarkan produk/layanan baru, biasanya kami mulai dengan menyediakannya ke sejumlah kecil lalu lintas dan membukanya secara bertahap. Jika kami mengotomatiskan/membantu tugas manual, kami melihat bahwa penyebaran mode bayangan adalah pendekatan yang lebih baik. Jika sudah ada versi sebelumnya yang diganti, disarankan pola Biru-hijau.

Namun, dalam semua kasus, kami melihat gagasan kunci berikut di bawahnya,

Tingkatkan lalu lintas secara bertahap dengan pemantauan setelah mendapatkan bukti bahwa sistem berfungsi. (Canary) Memungkinkan Rollback ke versi sebelumnya.

Beberapa pola penyebaran umum:

Mode bayangan: Pertama-tama kami membuat sistem ML berjalan paralel bersama dengan model, di mana kami hanya menganggap interpretasi Manusia sebagai hasil akhir, lalu, setelah memantau dan membuktikan bahwa ia membuat keputusan yang baik, kami mengganti manusia.

Contoh dengan keluaran dari model dan Manusia, untuk menguji sistem dalam mode bayangan.Penerapan mode bayangan. Sumber: Deeplearning.ai, berlisensi di bawah lisensi Creative Commons Attribution-ShareAlike 2.0. Pola penerapan tipikal, dalam hal ini, disebut penerapan Canary, di mana kami awalnya meluncurkan sebagian kecil (5%) lalu lintas dan meningkatkan lalu lintas secara bertahap. Jenis lain dari pola penyebaran disebut sistem penyebaran Biru-Hijau, di mana kami secara paralel menggunakan versi lama dan versi baru dari model dan meminta router beralih dari versi lama ke versi terbaru. Ini membuat Rollback sangat mudah.

Ilustrasi sistem penyebaran Biru-Hijau untuk MLOps.Pola Penyebaran Biru-Hijau. Sumber: Deeplearning.ai, berlisensi di bawah lisensi Creative Commons Attribution-ShareAlike 2.0.

Disarankan juga untuk mempertimbangkan penyebaran dalam hal Derajat Otomasi. Di mana sistem secara bertahap berubah dari

Hanya manusia → Mode Bayangan → Bantuan AI untuk Manusia → Otomasi Parsial (Berdasarkan kepercayaan model) → Otomasi Lengkap

Banyak aplikasi melewati tahap ini, dan beberapa berhenti pada tahap seperti bantuan AI atau Otomatisasi parsial, secara kolektif disebut sistem Human-in-the-loop.

Memantau sistem ML

Cara paling umum untuk memantau sistem adalah dengan menggunakan dasbor Pemantauan. Di mana kami memiliki bagan waktu nyata, masing-masing dengan aspek berbeda seperti beban server, sebagian kecil dari keluaran non-nol, sebagian kecil dari nilai yang hilang, dll.,

Contoh dasbor pemantauan untuk sistem yang diterapkanContoh dasbor proyek. Sumber: Deeplearning.ai, berlisensi di bawah lisensi Creative Commons Attribution-ShareAlike 2.0.

Memutuskan apa yang harus diperhatikan dan apa yang harus dibiarkan bergantung pada proyek, dan tim harus melakukan brainstorming semua hal yang bisa salah dan memberikan beberapa metrik untuk mendeteksi masalah. Tidak masalah untuk menggunakan banyak metrik pada awalnya dan menghapus metrik yang tidak berguna dari waktu ke waktu.

Saat memantau, kami juga menyetel alarm dengan menyetel ambang batas tertentu untuk setiap metrik agar segera mengambil tindakan masing-masing. Ambang batas ini tidak tetap dan perlu diadaptasi untuk setiap sistem.

Ada 3 kategori utama di mana metrik diklasifikasikan secara umum.

Metrik Perangkat Lunak: Metrik yang mengukur kinerja perangkat lunak layanan, seperti,

Memori menggunakan Latensi throughput Beban server dll.,

Metrik input: Metrik yang memantau input yang diberikan ke layanan untuk mencatat perubahan. Beberapa dari mereka adalah,

Rata-rata Volume masukan Rata-rata panjang input Pecahan nilai input yang hilang, dll.,

Metrik Keluaran: Metrik yang memantau keluaran yang diberikan oleh sistem, seperti,

Jumlah kali pengembalian nol Jumlah kali pengguna mengulangi pencarian Jumlah kali pengguna beralih ke mode input yang berbeda ke sistem untuk mendapatkan hasil yang lebih baik. Rasio klik-tayang (RKT)

⚠️ Catatan:
– Metrik input dan output sebagian besar spesifik untuk aplikasi.
– Serupa dengan melatih model, proses penerapan dan pemantauan juga berulang. Kami pertama-tama menerapkan dan menyiapkan dasbor pemantauan. Kami kemudian memantau kinerja pengguna, diikuti dengan analisis kinerja sistem dan membuat perubahan yang relevan sesuai dengan hasil.

Saat model perlu diperbarui, model perlu dilatih ulang secara manual atau otomatis. Saat ini di pasar, meskipun pelatihan ulang manual lebih disukai daripada pelatihan ulang otomatis, kami melihat banyak alat MLOps hadir dengan layanan canggih yang membuat keseluruhan proses menjadi lebih mudah.

Memantau Jalur Produksi

Banyak sistem AI bukan sistem tunggal melainkan saluran dari sistem yang berbeda.

Misalnya, dalam sistem transkripsi ucapan sederhana, kami melihat bahwa audio pertama kali dilewatkan melalui modul VAD yang terpasang di perangkat seluler, yang menghapus audio hanya jika ucapan terdeteksi dan memberikannya ke model pengenalan ucapan di awan. Model kemudian mengirimkan kembali transkrip pidato tersebut.

Ilustrasi model pengenalan ucapan sederhana, di mana audio diteruskan dari modul VAD ke model pengenalan ucapan di cloud.Saluran sistem transkripsi ucapan sederhana. Sumber: Deeplearning.ai, berlisensi di bawah lisensi Creative Commons Attribution-ShareAlike 2.0.

Jadi, input ke sistem pengenalan suara bergantung pada kinerja modul VAD.

Demikian pula, dalam sistem yang lebih kompleks, input dilewatkan melalui modul yang berbeda, masing-masing dengan metode pemrosesan tersendiri dan kerugian kecil. Kesalahan kecil ini bertambah dan membesar pada saat hasilnya ditentukan. Oleh karena itu, kami perlu memastikan bahwa kami memantau setiap modul secara independen, bersama dengan hasil dari keseluruhan pipeline.

Metrik untuk dipantau:

Untuk jenis sistem yang berbeda ini, kami memerlukan metrik untuk mengevaluasi kinerja sistem ini. Ini juga diklasifikasikan ke dalam 3 kategori yang disebutkan di atas, yaitu metrik perangkat lunak, metrik input, dan metrik output.

Seberapa cepat metrik ini berubah?

Pertanyaan ini bergantung pada aplikasi. Misalnya, dalam pipa pengenalan wajah, wajah orang berubah secara bertahap, sehingga metriknya tidak berubah dengan cepat. Namun, dalam contoh lain dari sistem deteksi cacat, metrik berubah dengan cepat tergantung pada kondisi pencahayaan, waktu, dll.

Ini menyimpulkan ikhtisar bagian penerapan sistem. Selanjutnya, kita akan mundur satu langkah lagi dan mendapatkan gambaran tentang tantangan dalam mengembangkan model untuk produksi. Karena saya menemukan bahwa artikel menjadi lebih panjang, dari yang berikutnya, saya memutuskan untuk membuat satu catatan menjadi bagian yang bermakna sehingga membacanya menjadi lebih mudah. Jadi pantau terus artikel-artikel yang akan datang!

Sementara itu, jika Anda ingin membaca catatan saya di CNN, Anda dapat membacanya di sini, atau jika Anda masih belum membaca catatan MLOps bagian pertama, Anda dapat menemukannya di sini. Anda juga dapat melihat salah satu proyek analitik data lama saya di halaman media saya. Ikuti saya untuk pembaruan konstan pada artikel baru.

MLOps Notes- 2: Deployment Overview awalnya diterbitkan di Towards AI on Medium, di mana orang melanjutkan percakapan dengan menyorot dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Scott Anderson