Kebutuhan akan MLOps

Proses pengembangan aplikasi perangkat lunak tidak hanya berakhir dengan penulisan kode dan pengujiannya. Ada sejumlah langkah yang harus diikuti agar aplikasi siap sepenuhnya untuk produksi.

Setelah aplikasi perangkat lunak diuji secara menyeluruh, aplikasi tersebut pertama-tama dikemas atau dimasukkan ke dalam container. Aplikasi ini kemudian diuji bebannya untuk memahami berapa banyak throughput yang dapat ditanganinya. Ini kemudian disebarkan dalam sebuah cluster dengan penskalaan otomatis yang dikonfigurasi untuk menskalakan aplikasi setiap kali beban meningkat. Ini dipantau untuk memeriksa apakah berfungsi dengan baik, waktu respons berada di bawah batas atas yang diinginkan, dan aplikasi memberikan keluaran yang diinginkan. Log aplikasi kemudian disimpan dan diputar. Ketika versi baru aplikasi dirilis, aplikasi tersebut diluncurkan ke pengguna dengan memastikan tidak ada waktu henti.

Jika CI/CD diikuti dengan benar maka segera setelah perubahan dilakukan pada basis kode, aplikasi akan diterapkan dalam lingkungan pementasan yang akan segera diuji. Jika ada masalah maka masalah tersebut akan segera ditandai dan diperbaiki. Perbaikan segera diterapkan dan versi aplikasi yang ditingkatkan diuji kembali.

Bagaimana dengan model ML?

Sama seperti cara kita mengikuti irama untuk membangun, memelihara, dan menskalakan aplikasi perangkat lunak, kita juga harus mengikuti irama untuk model ML. Itulah inti dari MLOps.

MLOps di NeuralSpace

Di NeuralSpace kami mengikuti prinsip yang sama seperti aplikasi perangkat lunak untuk model ML. Kami juga telah merancang platform kami sehingga Anda dapat melatih, menerapkan, menguji, dan mengulangi model NLP lebih cepat dan menerapkan model terbaik tanpa downtime. Anda juga dapat menangani throughput apa pun yang Anda inginkan hanya dengan beberapa klik.

Mari kita uraikan keseluruhan prosesnya untuk Anda:

Katakanlah Anda memiliki platform media sosial dan Anda menggunakan model ML untuk memoderasi konten teks dengan mengelompokkannya ke dalam dua kategori (abusif atau tidak kasar). Anda melatih model dan mengujinya pada set pengujian yang mewakili konten buatan pengguna Anda. Setelah model Anda memberikan hasil yang baik, Anda berencana untuk menerapkannya sebagai layanan mikro. Setelah Anda selesai melakukannya, Anda menyadari bahwa pada jam sibuk layanan Anda kelebihan beban. Untuk mengatasinya, Anda menskalakan layanan mikro model Anda dan menerapkan beberapa replika untuk menangani lebih banyak beban. Sekarang Anda ingin memantau semua yang telah melewati model Anda. Misalnya, semua prediksi model. Jadi, Anda menyiapkan beberapa mekanisme logging dan membuat UI untuk melihat dan memperbaiki prediksi model. Sekarang Anda memperbaiki kesalahan yang dibuat model dan menambahkan lebih banyak data ke set pelatihan dan pengujian Anda. Anda melakukan ini agar Anda dapat melatih kembali model Anda nanti dan menguji apakah model tersebut sudah membaik atau belum. Anda sekarang melatih ulang model tersebut dan melihat bahwa model tersebut telah meningkat dibandingkan model sebelumnya. Jadi, sekarang saatnya memperbarui model dalam produksi. Tapi karena Anda tidak bisa mempunyai waktu senggang. Anda perlu mengemas/memasang model Anda lagi, membuat versinya, meluncurkan versi baru menggunakan teknik DevOps standar untuk mempertahankan waktu aktif 100%.

Tunggu, kamu belum selesai. Anda harus mengulangi semua ini dari waktu ke waktu untuk memastikan model Anda mutakhir dan beradaptasi dengan perubahan data (perilaku pengguna).

Sekarang beberapa pertanyaan untuk dipikirkan:

  • Bagaimana Anda dapat membuat proses ini lebih terstruktur dengan mengikuti praktik terbaik?
  • Bisakah Anda menggunakan pengembangan perangkat lunak dan prinsip CI/CD untuk melatih dan menerapkan model dengan cara yang “Agile”?

Tentu saja jawabannya adalah ya!

Bagaimana membangun proses MLOps yang solid

Langkah-langkah untuk membangun proses MLOps yang solid

Berikut adalah beberapa langkah yang dapat Anda ikuti untuk membangun proses MLOps yang solid.

Langkah 1: Otomatiskan alur pelatihan model Anda

Ada banyak solusi AutoML yang tersedia di luar sana. Untuk NLP Anda dapat menggunakan NeuralSpace. Google AutoML, Huggingface, dll. adalah beberapa penyedia lainnya.

Langkah 2: Kelola Data Anda

Kelola data Anda di penyimpanan cloud jika belum disediakan oleh penyedia AutoML. NeuralSpace memiliki Data Studio untuk membuat, memperbarui, dan mengelola data Anda untuk berbagai tugas NLP.

Versi kumpulan data Anda. Ada banyak cara untuk melakukannya sendiri jika belum dilakukan oleh penyedia AutoML Anda. Anda dapat melakukannya dengan melakukan hashing pada seluruh kumpulan data untuk menghasilkan versi unik secara otomatis atau menggunakan DB untuk menyimpan metadata tentang kumpulan data dan file sebenarnya di penyimpanan cloud.

Langkah 3: Integrasi Berkelanjutan

Gunakan pipeline CI untuk memicu pelatihan dan benchmarking dengan versi set data tertentu. Jika anggaran menjadi perhatian, pilihlah “Azure ACI”, “OVH Cloud”, atau penyedia cloud lainnya yang menyediakan opsi sesuai permintaan untuk instans GPU spot. Anda juga dapat menjalankan pencarian hyperparameter setiap saat, tetapi bergantung pada seberapa banyak Anda bersedia mengeluarkan uang. Jika Anda sudah menemukan arsitektur model terbaik maka Anda bisa menggunakan konfigurasi yang sama.

Langkah 4: Pantau Performa Model

Pantau kinerja model secara terus menerus. Di NeuralSpace Anda mendapatkan metrik model setiap kali Anda menjalankan AutoNLP. Jika tidak, Anda dapat menggunakan platform seperti Bobot dan Bias untuk mencatat metrik model dan informasi meta guna melacak proses pelatihan.

Langkah 5: Penerapan Berkelanjutan

Terapkan model baru secara otomatis sehingga Anda dapat membandingkannya dengan model dalam produksi. Gunakan saluran CD untuk mengotomatiskan proses penerapan.

Gunakan mekanisme api dan lupakan untuk mengevaluasi model baru Anda pada data dunia nyata. Ini memberi Anda gambaran nyata tentang kinerja model baru dalam skenario dunia nyata. Anda mungkin harus menambahkan logika khusus Anda sendiri untuk melakukan ini. Pastikan untuk memiliki ini dalam desain.

Uji A/B model baru Anda dengan meningkatkan lalu lintas pada model baru secara bertahap. Misalnya, 10% lalu 20% lalu 30% dan akhirnya 100%

Langkah 6: Irama adalah Kuncinya

  • Buat daftar periksa evaluasi dan perbaikan model dengan beberapa atau semua langkah yang disebutkan di atas.
  • Pastikan Anda selalu memperbarui model Anda
  • Setiap kali model baru yang canggih keluar, ikuti daftar periksa Anda dan lakukan benchmark terhadap model yang sudah ada. Anda akan terkejut betapa efisiennya model/solusi yang sederhana namun elegan. Jangan memilih model baru hanya karena keren. Gunakan karena ini berfungsi paling baik dengan data dan kasus penggunaan Anda.

AutoMLOps di NeuralSpace

Sekarang pertanyaannya adalah bagaimana kita dapat men-deploy model tersebut sehingga dapat melayani ribuan permintaan API setiap menitnya?

AutoMLOps adalah jawabannya.

Setelah model di-deploy, model tersebut dikemas ke dalam infrastruktur siap produksi oleh AutoMLOps yang memungkinkan model Anda memproses permintaan dalam jumlah besar per detik dengan peningkatan linear pada infrastruktur Anda.

Singkatnya, AutoMLOps memberikan skalabilitas dan ketersediaan pada model Anda dan mengelola semua operasi dengan lancar mulai dari alokasi sumber daya komputasi hingga penskalaan model.

Ada beberapa hal yang perlu Anda miliki untuk menerapkan model dalam produksi. Untuk aplikasi perangkat lunak apa pun, biasanya meng-host beberapa instance (atau replika) dari algoritma yang sama sehingga aplikasi tersebut dapat menangani beban lalu lintas yang tinggi dan mengurangi tingkat kegagalan. AutoMLOps NeuralSpace memastikan bahwa model Anda tersedia 25/7/365 dan dapat memproses permintaan API dalam jumlah besar per detik. Saat menerapkan, pengembang memiliki opsi untuk memilih beberapa replika, yang secara bersama-sama memiliki latensi rendah setiap kali model Anda diminta oleh pengguna akhir. Selain itu, dalam kasus yang jarang terjadi ketika satu replika gagal, pengembang memiliki replika lain untuk digunakan kembali. Hal ini dicapai dengan menyajikan replika model Anda di lingkungan penskalaan otomatis. Replika model juga menggunakan model inti kami yang telah dilatih sebelumnya, sehingga jika permintaan pada replika Anda meningkat pesat, layanan backend kami secara otomatis memulai penskalaan otomatis. Replika disebarkan sebagai model independen dengan manajer layanan independen. Jadi, saat parsing, replikanya langsung dipanggil oleh middleware kami sehingga latensinya selalu minimum. Jika replika gagal atau mogok dalam kejadian yang sangat jarang terjadi, kami telah menyertakan pemutaran otomatis replika pengganti, yang aktif dalam waktu kurang dari sepuluh detik.

Lihat video penjelasan cepat ini untuk mempelajari lebih lanjut tentang AutoMLOps.

Bergabunglah dengan “Komunitas Slack” NeuralSpace untuk terhubung dengan kami. Selain itu, terima pembaruan dan diskusikan topik dalam NLP untuk bahasa dengan sumber daya rendah dengan sesama pengembang dan peneliti.

Lihat Dokumentasi kami untuk membaca lebih lanjut tentang Platform NeuralSpace dan berbagai Aplikasinya.

Daftar di Platform NeuralSpace.

Selamat NLP!