MLOps

Survei Siklus Hidup Machine Learning

Evolusi siklus hidup ML dari penambangan data batch dengan sumber daya terbatas menjadi MLOps pada skala cloud

Semua orang telah membicarakan MLOps selama lebih dari setahun sekarang. Saya melihat sekeliling untuk mengetahui bagaimana siklus hidup dan proses telah berkembang.

Disiplin mencari wawasan dari data telah ada selama 25 tahun. Saat itu, ini dikenal sebagai data mining. Dalam artikel ini, saya menyajikan survei tentang proses siklus hidup ML dan menyimpulkan pendapat saya mengenai hal tersebut. Jadi jika Anda sedang terburu-buru, lompat ke bagian terakhir untuk TL;DR.

Langkah-langkah umum dalam penambangan data/sains kurang lebih sama:

  1. Pahami masalah domain atau bisnis
  2. Kumpulkan data yang diperlukan dari berbagai sumber
  3. Kurasi data, bersihkan dan beri label
  4. Transformasi data, harmoniskan, dan bentuk
  5. Jelajahi dan visualisasikan datanya
  6. Latih model, validasi, dan sesuaikan hyper-parameter
  7. Gunakan atau terapkan model

Namun sifat data, pemrosesan, dan aplikasi telah berubah secara signifikan:

  • Skala: Jumlah data yang dianalisis telah meningkat berkali-kali lipat.
  • Penggunaan Meluas: Aplikasi yang didukung ML adalah bagian dari kehidupan kita sehari-hari dan kami sangat bergantung padanya.
  • Batch vs. Online: Model ini sebelumnya digunakan dalam mode batch untuk mendapatkan wawasan dan memandu keputusan bisnis. Kini lebih banyak model yang diterapkan untuk melayani inferensi dalam skala besar.

Evolusi secara kasar dapat dibagi menjadi 3 era (garis waktu saling tumpang tindih):

  • Era Batch: Saluran pipa ETL membawa data dari sistem operasional ke gudang data dan data mart, dan data ditambang setelahnya.
  • Era Big Data: Data menjadi terlalu besar untuk gudang pada saat itu. Data dialirkan di data lake, yang sering kali berubah menjadi rawa. Hanya sedikit organisasi yang menerapkan model online.
  • Era MLOps: Memudahkan semua orang untuk menerapkan model online secara terus-menerus.

ToC

Era Batch

Anda bisa menyebutnya zaman kuno. Internet masih dalam tahap awal. Sebagian besar aplikasi perusahaan menghasilkan dan memproses data secara batch.

Aplikasi dan data disimpan di berbagai departemen dalam suatu organisasi. Tantangannya adalah untuk menyatukan semuanya sehingga keseluruhannya lebih besar daripada jumlah bagian-bagiannya.

Pemodelan data “Schema-on-Write” sangat penting. Pipeline data ETL batch membawa data ke Gudang Data terpusat. Itu dikumpulkan dan disimpan di data mart, masing-masing untuk lini bisnis, departemen, atau bidang subjek tertentu.

Datanya tidak terlalu besar. RDBMS dengan indeks berorientasi kolom berguna dan OLAP Cubes menguasainya.

Penambangan data sebagian besar merupakan operasi ruang belakang. Perannya adalah untuk mengekstraksi wawasan yang diperlukan untuk membuat keputusan bisnis. Jadi proses waktu mencerminkan mode batch data mining ini.

KDD: Penemuan Pengetahuan di Database

Mengekstraksi wawasan dari data sudah ada sebelum Big Data. Proses KDD (“Penemuan Pengetahuan dan Penambangan Data: Menuju Kerangka Pemersatu” oleh Fayyad et. al., 1996) adalah salah satu yang pertama mendefinisikan kerangka kerja untuk penambangan data dalam database. Proses KDD memiliki 5 tahapan dengan umpan balik:

  1. Seleksi: Memilih kumpulan data, subkumpulan variabel, atau sampel data
  2. Pra-pemrosesan: Membersihkan data, menangani nilai yang hilang, dll.
  3. Transformasi: Pemilihan fitur dan proyeksi dimensi untuk mengurangi jumlah variabel efektif.
  4. Penambangan Data: Menerapkan metode penambangan tertentu, misalnya peringkasan, klasifikasi, regresi, pengelompokan.
  5. Interpretasi & Evaluasi: Ekstrak pola/model, laporkan bersama dengan visualisasi data.

“Pipa data” modern memiliki langkah-langkah yang hampir sama.

CRISP-DM: Proses Standar Lintas Industri untuk Penambangan Data

Kemudian muncullah proses CRISP-DM (“The CRISP-DM Model: The New Blueprint for Data Mining” oleh Colin Shearer, 2000), yang masih berpengaruh hingga saat ini (“CRISP-ML(Q)”). Ini menjelaskan bagaimana “analis data” harus memulai dari kebutuhan bisnis, menambang data, dan “menerapkan” model. Ini membagi proses penambangan data menjadi enam fase utama:

  1. Pemahaman Bisnis: Menentukan tujuan bisnis. Menilai sumber daya, persyaratan, kendala, risiko, dan kontinjensi. Tentukan tujuan penambangan data dan buat rencana proyek.
  2. Pemahaman Data: Kumpulkan data awal, jelajahi data, dan verifikasi kualitas data.
  3. Persiapan Data: Pilih dan bersihkan data. Tambahkan atribut turunan dan catatan yang dihasilkan. Gabungkan data, dan bentuk sesuai skema yang diinginkan.
  4. Pemodelan: Buat model dan nilai kualitasnya.
  5. Evaluasi: Tinjau konstruksi model untuk memastikan bahwa model tersebut mencapai tujuan bisnis yang ditetapkan.
  6. Penerapan: Membuat laporan, atau menerapkan proses penambangan data berulang di seluruh perusahaan. Merencanakan pemantauan hasil penambangan data, dan pemeliharaan proses pengaturan waktu data.

“Penempatan” adalah hal yang lebih maju dari masanya. Tidak ada cara untuk menerapkan model sebagai fungsi inferensi. Dinyatakan (pelanggan di sini mengacu pada pelanggan analis, yaitu organisasi/manajer bisnis):

Pengetahuan yang diperoleh harus diorganisir dan disajikan sedemikian rupa sehingga pelanggan dapat menggunakannya, yang sering kali melibatkan penerapan model “langsung” dalam proses pengambilan keputusan organisasi, seperti personalisasi halaman Web secara real-time atau penilaian berulang pada database pemasaran. .

Tergantung pada kebutuhannya, fase penerapan bisa sesederhana membuat laporan atau rumit seperti menerapkan proses penambangan data berulang di seluruh perusahaan. Meskipun sering kali pelangganlah, bukan analis data, yang melakukan langkah-langkah penerapan, penting bagi pelanggan untuk memahami terlebih dahulu tindakan apa yang harus diambil agar benar-benar memanfaatkan model yang dibuat.

SEMMA: Mencontoh, Mengeksplorasi, Memodifikasi, Memodelkan, dan Menilai

“SEMMA” adalah singkatan dari Sample, Explore, Modify, Model, dan Assess. Ini adalah daftar langkah berurutan yang dikembangkan oleh SAS Institute untuk memandu implementasi aplikasi data mining.

  1. Sampel: Ambil sampel dan pilih data untuk pemodelan.
  2. Jelajahi: Visualisasikan data untuk menemukan hubungan yang diantisipasi dan tidak diantisipasi antara variabel data dan mengidentifikasi anomali.
  3. Modifikasi: Pilih dan ubah variabel data untuk menyiapkan data untuk pemodelan.
  4. Model: Menerapkan berbagai teknik pemodelan untuk menyiapkan data.
  5. Menilai: Mengevaluasi dan membandingkan efektivitas model.

Tahapan SEMMA tampaknya berada di antara KDD dan CRISP-DM.

Era Data Besar

Data memiliki kemampuan luar biasa untuk melampaui teknologi penyimpanan dan pemrosesan apa pun. Big Data telah hadir dan Gudang Data tidak cukup untuk memproses tumpukan data yang dihasilkan oleh bisnis. Jadi, kami menciptakan Data Lake (repositori blob) untuk menyimpan file data mentah pada skala apa pun. Hal ini menyebabkan pergeseran dari “skema-saat-tulis” menjadi “skema-saat-baca”.

Segera, semua orang mulai membuang data apa pun yang mereka inginkan ke dalam data lake dalam format/skema apa pun yang mereka inginkan. Data Lakes berubah menjadi Data Swamp. Kelimpahan data terjadi bersamaan dengan kelangkaan data yang dapat digunakan. Pembersihan Data menjadi suatu hal.

Anda bisa menyebutnya abad pertengahan. Skala analisis data dan Business Intelligence tumbuh berlipat ganda. Ilmuwan Data menjadi pekerjaan terseksi.

Pengumpulan data dan saluran pipa dilakukan secara otomatis dan sebagian besar dijalankan dengan kecepatan harian. Seringkali, dasbor analisis data diperbarui secara real-time dengan menggabungkan pemrosesan data batch dan streaming. Namun sebagian besar organisasi menggunakan model prediktif dalam mode batch untuk memandu keputusan bisnis dan produk mereka, dan hanya sedikit yang menerapkan model ML dalam produksi untuk inferensi online real-time.

Siklus hidup dan proses diadaptasi untuk menyertakan langkah-langkah eksplisit untuk saluran data, pelatihan model, validasi, dan bahkan penerapan (manual).

OSEMN: Obtain, Scrub, Explore, Model, dan INmenafsirkan

Hilary Mason dan Chris Wiggins menjelaskan proses OSEMN dalam postingan blog “A Taxonomy of Data Science” (tertanggal 25 Sep 2010). Ini memiliki 5 langkah: Obtain, Scrub, Explore, Model, dan I Nmenafsirkan.

  1. Dapatkan: Menunjuk dan mengklik tidak berskala.
    Merayapi atau menggunakan API untuk mengotomatiskan pengumpulan data.
  2. Scrub: Dunia adalah tempat yang berantakan.
    Model Anda juga akan berantakan kecuali Anda membersihkan dan mengkanonikalisasi datanya.
  3. Jelajahi: Anda dapat melihat banyak hal dengan melihatnya.
    Inilah yang kami lakukan dalam Analisis Data Eksplorasi (EDA).
  4. Model: Selalu buruk, terkadang jelek.
    Optimalkan fungsi kerugian yang dipilih, dan pilih yang terbaik melalui validasi silang.
  5. Interpretasikan: Tujuan komputasi adalah wawasan, bukan angka.
    Tidak seperti aritmatika, hasil statistik memerlukan interpretasi yang berbeda.

Blog tersebut sekarang sudah tidak ada lagi, namun Anda dapat membacanya di Arsip Web. Seperti yang Anda lihat, ini masih sangat mirip dengan KDD/CRISP-DM tetapi penjelasan langkah-langkahnya mencerminkan realitas data besar skala web.

TDSP: Siklus Hidup Proses Ilmu Data Tim Microsoft

Siklus Hidup Proses Ilmu Data Tim (TDSP) Microsoft memiliki empat tahap:

  1. Pemahaman Bisnis
  2. Akuisisi dan Pemahaman Data
  3. Pemodelan
  4. Penyebaran

Tahapan “Akuisisi dan Pemahaman Data” dan “Pemodelan” dipecah lagi menjadi langkah-langkah yang lebih rinci. Hal ini dibayangkan sebagai model air terjun yang diakhiri dengan Penerimaan Pelanggan, namun tidak memerlukan banyak imajinasi untuk mengembangkannya menjadi interaktif.

Ini adalah hal yang saat ini diikuti oleh sebagian besar perusahaan, baik disadari maupun tidak.

Dalam makalah di konferensi ICSE-SEIP 2019, Saleema Amershi, dkk. dari Microsoft Research jelaskan 9 tahapan alur kerja pembelajaran mesin yang berbeda dari TDSP:

Beberapa tahapan berorientasi pada data (misalnya pengumpulan, pembersihan, dan pelabelan) dan tahapan lainnya berorientasi pada model (misalnya persyaratan model, rekayasa fitur, pelatihan, evaluasi, penerapan, dan pemantauan). Ada banyak putaran umpan balik dalam alur kerja. Panah umpan balik yang lebih besar menunjukkan bahwa evaluasi dan pemantauan model dapat kembali ke tahap sebelumnya. Panah umpan balik yang lebih kecil menggambarkan bahwa pelatihan model dapat kembali ke rekayasa fitur (misalnya, dalam pembelajaran representasi).

Era MLOps

Munculnya DevOps menjadi ciri era modern. Ketika organisasi secara teratur menerapkan model ML dalam produksi sebagai bagian dari aplikasi/produk perangkat lunak mereka, mereka memerlukan proses ilmu data yang sesuai dengan praktik terbaik DevOps dari Continous Integration dan Continous Delivery (CI/CD). Hal inilah yang memicu hype MLOps.

Sebagian besar perusahaan belum ada dan saya berani mengatakan membutuhkannya saat ini. Hanya perusahaan besar seperti FAANG yang saat ini memiliki bisnis yang perlu menerapkan ribuan model setiap jam untuk melayani jutaan pengguna akhir. Namun seiring dengan semakin banyaknya penerapan ML, perusahaan akan mulai mengadopsi proses tersebut melalui pelatihan, integrasi, dan penerapan model ML yang berkelanjutan.

ML Bertemu DevOps: 3 Loop

Cara yang jelas untuk memadukan ML ke dalam DevOps adalah dengan membuat "MLOps loop" dengan menambahkan ML ke loop tak terbatas DevOps dan mengadaptasi Dev dan Ops agar sesuai dengan ilmu data.

Perhatikan bagaimana loop ini memiliki Data dan Model sebagai langkah tunggal yang mencirikan pemrosesan data dan pembuatan model. Di sisi lain, proses-proses yang dibahas sejauh ini justru hanya membahas dua langkah tersebut. IMO, dominasi Ops dalam suatu proses merupakan sebuah langkah mundur.

Ada juga upaya lain pada loop MLOps 3 lingkaran. Misalnya, berikut ini mencakup 3 fase besar Proses MLOps Iteratif-Inkremental memiliki tiga fase luas (yang masih merupakan IMO kasar):

Loop Data-ML-Pengembangan-Ops

Sebuah postingan blog oleh Danny Farah menjelaskan “4 loop siklus hidup MLOps, masing-masing satu untuk Data, ML, Dev, dan Ops”. Saya menyukainya karena dua alasan:

  • Ini mempertahankan detail data dan langkah-langkah ML
  • Rasanya lebih familiar w.r.t. putaran tak terbatas DevOps.

Mirip dengan DevOps, namun tetap terasa berbeda. Ini adalah kesempatan yang terlewatkan untuk menyatukan pengembang, insinyur data, dan ilmuwan data. 3 pelajaran saya untuk meningkatkan tingkat keberhasilan proyek ML adalah “mengkonsolidasikan kepemilikan, mengintegrasikan lebih awal, dan sering melakukan iterasi”. Penting untuk memiliki satu proses siklus hidup yang memberikan fleksibilitas pada ketiga proses tersebut untuk dijalankan pada irama yang berbeda. Visibilitas keseluruhan kepada seluruh pemangku kepentingan mengurangi kejutan dan karenanya meningkatkan keberhasilan.

Google Awan

Diskusi tentang MLOps tidak akan lengkap tanpa membahas Tiga Besar penyedia cloud dengan tumpukan layanan ML yang sangat besar.

Google bisa dibilang merupakan toko pembelajaran mesin paling awal dan terbesar dengan platform MLOps Vertex AI. Ini menerbitkan whitepaper berjudul Panduan Praktisi untuk MLOps pada Mei 2021. Saya mengutip bagian Siklus Hidup MLOps dari whitepaper yang menjelaskan bagian-bagian berikut:

  • Pengembangan ML: Mengeksperimen dan mengembangkan prosedur pelatihan model yang kuat dan dapat direproduksi (kode pipeline pelatihan), yang terdiri dari beberapa tugas mulai dari persiapan dan transformasi data hingga pelatihan dan evaluasi model.
  • Operasionalisasi Pelatihan: Mengotomatiskan proses pengemasan, pengujian, dan penerapan alur pelatihan yang berulang dan andal.
  • Pelatihan Berkelanjutan: Mengeksekusi alur pelatihan berulang kali sebagai respons terhadap data baru, perubahan kode, atau sesuai jadwal, kemungkinan dengan setelan pelatihan baru.
  • Penerapan Model: Mengemas, menguji, dan menerapkan model ke lingkungan penyajian untuk eksperimen online dan penyajian produksi.
  • Pelayanan Prediksi: Melayani model yang diterapkan dalam produksi untuk inferensi.
  • Pemantauan Berkelanjutan: Memantau efektivitas dan efisiensi model yang diterapkan.
  • Manajemen Data dan Model: Fungsi sentral dan lintas sektoral untuk mengatur artefak ML guna mendukung kemampuan audit, kemampuan penelusuran, dan kepatuhan

Layanan Web Amazon

Amazon adalah yang pertama menawarkan platform MLOps ujung ke ujung: SageMaker. Mereka menerbitkan Whitepaper “MLOps: Emerging Trends in Data, Code,
and Infrastructure, AWS Whitepaper
” pada bulan Juni 2022, yang mendefinisikan siklus hidup yang jauh lebih sederhana. Ini sangat sederhana sehingga cukup jelas. Tampaknya lebih mirip KDD dan CRISP-DM daripada loop DevOps.

MicrosoftAzure

Microsoft juga menerbitkan whitepaper MLOps “MLOps dengan Azure Machine Learning” pada Agustus 2021, yang menjelaskan siklus hidup ML dan alur kerja MLOps. Ini mirip dengan AWS: sederhana dan cukup jelas.

Pendapat saya tentang Siklus Hidup ML

Artikel ini ternyata lebih panjang dari yang saya bayangkan. Jadi terima kasih atas kesabaran Anda dalam membacanya. Jika melompat ke sini untuk TL;DR, terima kasih juga telah bersedia membaca pendapat saya.

Pertama, apa saja karakteristik utama siklus hidup ML di era MLOps?

  • Evolusioner, dan bukan revolusioner. Hal ini seharusnya sudah tidak asing lagi bagi data scientist yang sejauh ini mengikuti CRISP-DM, OSEMN, atau TDSP. Ini juga seharusnya terasa familier bagi para insinyur yang mengikuti loop tak terbatas DevOps.
  • Dioptimalkan untuk mengingat, bukan presisi. Proses yang mudah diingat lebih mungkin diikuti dan menjadi bagian dari kosakata tim. Misalnya, loop tak terbatas DevOps tidak tepat. Setiap langkah memiliki beberapa panah kembali implisit ke langkah sebelumnya. Tidak semua hal setelah Ujian mengarah pada Pelepasan. Kegagalan kembali ke langkah Kode atau bahkan Rencana.
  • Memfasilitasi penerapan model ML ke produksi. Hal ini akan meningkatkan visibilitas dan kolaborasi di seluruh tim pengembang, ilmuwan data, dan teknisi data, terutama filosofi saya tentang mengkonsolidasikan kepemilikan, berintegrasi sejak dini, dan sering melakukan iterasi.
  • Fleksibel. Ini harus memungkinkan bagian dari tim untuk memilih ritme mereka. Ilmu Data dan pengembangan perangkat lunak pada dasarnya berbeda. Ilmuwan Data tidak dapat memberikan hasil tambahan setiap hari. Tujuan dari siklus hidup dan proses adalah visibilitas dan kohesi, bukan perlombaan tiga kaki.

Lingkaran Pengembangan Model

Jika Anda mengabaikan penerapan, Pengembangan Model memiliki perulangan tak terbatas seperti perulangan DevOps.

Bayangkan CRISP-DM yang dibentuk menjadi loop tak terbatas. Langkah-langkah dalam loop Pengembangan Model adalah:

  • Merumuskan masalah bisnis dalam istilah ML.
  • Kumpulkan data yang diperlukan dari aplikasi internal serta sumber eksternal.
  • Kurasi datanya. Bersihkan, hapus duplikat, isi nilai yang hilang, beri label, dll., dan terakhir buat katalog dan simpan.
  • Transformasi data. Hitung fitur tambahan, ubah struktur, dll.
  • Validasi data. Menerapkan pemeriksaan kualitas, distribusi data log, dll.
  • Jelajahi datanya. Analisis data eksplorasi, rekayasa fitur, dll. Kemungkinan besar akan mengarah pada penambahan lebih banyak transformasi dan pemeriksaan validasi data.
  • Latih seorang model. Jalankan eksperimen, bandingkan kinerja model, sesuaikan hyperparameter, dll.
  • Evaluasi karakteristik model terhadap tujuan bisnis. Masukan apa pun dapat mengakibatkan penyesuaian dan rumusan masalah ML secara berbeda.

Menyatukan Semuanya

Ilmu data dan pengembangan perangkat lunak dimaksudkan untuk mencapai tujuan bisnis. Dalam aplikasi yang didukung ML, desain model harus mempertimbangkan dampaknya terhadap pengalaman pengguna dan batasan lingkungan produksi. Demikian pula, desain perangkat lunak harus mencakup pengumpulan umpan balik pengguna yang penting untuk peningkatan model.

Dalam produk yang dibantu ML, desain model dan desain perangkat lunak memiliki hubungan simbiosis. Desain produk, langkah Rencana, harus mempertimbangkan keduanya secara holistik, dan itu adalah langkah pemersatu untuk menggabungkan kedua putaran ini.

Satu putaran “MLOps Lifecycle” memberikan visibilitas kepada seluruh konstituen, bukan pengembang yang menganggap model sebagai kotak hitam yang entah bagaimana dilatih dan dibuang oleh data scientist, dan data scientist yang mengembangkan model yang tidak sesuai dengan tujuan bisnis yang diharapkan dalam produksi.

Loop data, ML, Data-ML, dan DevOps dapat berjalan dalam irama yang berbeda. Saya selalu mencoba membangun aplikasi end-to-end terlebih dahulu dengan model berbasis aturan atau model tiruan, memutus loop Data-ML sepenuhnya. Ini berfungsi sebagai dasar, membantu mengumpulkan data, dan juga memberikan konteks bagi ilmuwan data untuk mengetahui bagaimana model mereka akan digunakan.

Ringkasan

Artikel ini menjelaskan evolusi siklus hidup ML di era Data Warehouse, Big Data Lakes, dan MLOps. Hal ini juga menjelaskan bagaimana hal tersebut dapat dimodifikasi dengan menggabungkan pengembangan model dan loop DevOps, serta keuntungan dari hal tersebut.

Referensi

Jika Anda menikmatinya, silakan:

Awalnya diterbitkan di ML4Devs.com.