Bagikan melalui


Konsep - Operasi pembelajaran mesin (MLOps) untuk AI dan alur kerja pembelajaran mesin

Dalam artikel ini, Anda mempelajari tentang operasi pembelajaran mesin (MLOps), termasuk jenis praktik dan alat apa yang terlibat, dan bagaimana hal itu dapat menyederhanakan dan mempercepat alur kerja AI dan pembelajaran mesin Anda di Azure Kubernetes Service (AKS).

Apa itu MLOps?

Operasi pembelajaran mesin (MLOps) mencakup praktik yang memfasilitasi kolaborasi antara ilmuwan data, operasi TI, dan pemangku kepentingan bisnis, memastikan bahwa model pembelajaran mesin dikembangkan, disebarkan, dan dipertahankan secara efisien. MLOps menerapkan prinsip DevOps untuk proyek pembelajaran mesin, yang bertujuan untuk mengotomatiskan dan menyederhanakan siklus hidup pembelajaran mesin end-to-end. Siklus hidup ini mencakup pelatihan, pengemasan, validasi, penyebaran, pemantauan, dan pelatihan ulang model.

MLOps memerlukan beberapa peran dan alat untuk bekerja sama secara efektif. Ilmuwan data berfokus pada tugas yang terkait dengan pelatihan model, yang disebut sebagai perulangan dalam. Teknisi pembelajaran mesin dan tim operasi TI menangani perulangan luar, di mana mereka menerapkan praktik DevOps untuk mengemas, memvalidasi, menyebarkan, dan memantau model. Ketika model membutuhkan penyempurnaan atau pelatihan ulang, proses akan mengulang kembali ke perulangan dalam.

Alur MLOps

Alur MLOps Anda dapat memanfaatkan berbagai alat dan layanan mikro yang disebarkan secara berurutan atau paralel. Di bawah ini adalah contoh komponen utama dalam alur Anda yang mendapat manfaat dari penerapan praktik terbaik berikut untuk mengurangi overhead dan memungkinkan perulangan yang lebih cepat:

  • Penyimpanan data yang tidak terstruktur untuk data baru yang mengalir ke aplikasi Anda
  • Database vektor untuk menyimpan dan mengkueri data terstruktur dan telah diproses sebelumnya
  • Kerangka kerja penyerapan dan pengindeksan data
  • Penyerapan vektor dan/atau alur kerja pelatihan ulang model
  • Alat pengumpulan dan pemberitahuan metrik (performa model pelacakan, volume data yang diserap, dll.)
  • Alat manajemen siklus hidup

DevOps dan MLOps

DevOps adalah kombinasi alat dan praktik yang memungkinkan Anda membuat aplikasi yang kuat dan dapat direproduksi. Tujuan penggunaan DevOps adalah untuk memberikan nilai dengan cepat kepada pengguna akhir Anda. Membuat, menyebarkan, dan memantau model yang kuat dan dapat direproduksi untuk memberikan nilai kepada pengguna akhir adalah tujuan utama MLOps.

Ada tiga proses yang penting untuk MLOps:

  • Beban kerja pembelajaran mesin tempat ilmuwan data bertanggung jawab, termasuk analisis data eksploratif (EDA), rekayasa fitur, dan pelatihan dan penyetelan model.
  • Praktik pengembangan perangkat lunak termasuk merencanakan, mengembangkan, menguji, dan mengemas model untuk penyebaran.
  • Aspek operasional penyebaran dan pemeliharaan model dalam produksi, termasuk merilis, mengonfigurasi sumber daya, dan memantau model.

Prinsip DevOps yang berlaku untuk MLOps

MLOps memanfaatkan beberapa prinsip dari DevOps untuk meningkatkan siklus hidup pembelajaran mesin, seperti otomatisasi, integrasi dan pengiriman berkelanjutan (CI/CD), kontrol sumber, Perencanaan tangkas, dan infrastruktur sebagai kode (IaC).

Automation

Dengan mengotomatiskan tugas, Anda dapat mengurangi kesalahan manual, meningkatkan efisiensi, dan memastikan konsistensi di seluruh siklus hidup ML. Otomatisasi dapat diterapkan ke berbagai tahap, termasuk pengumpulan data, pelatihan model, penyebaran, dan pemantauan. Melalui otomatisasi, Anda juga dapat menerapkan langkah-langkah proaktif dalam alur AI untuk memastikan kepatuhan data terhadap kebijakan organisasi Anda.

Misalnya, alur Anda dapat mengotomatiskan:

  • Penyetelan/pelatihan ulang model pada interval waktu reguler atau ketika sejumlah data baru dikumpulkan dalam aplikasi Anda.
  • Deteksi penurunan performa untuk memulai penyempurnaan atau pelatihan ulang pada subset data yang berbeda.
  • Pemindaian kerentanan dan paparan umum (CVE) pada gambar kontainer dasar yang ditarik dari registri kontainer eksternal untuk memastikan praktik keamanan yang aman.

Integrasi berkelanjutan (CI)

Integrasi berkelanjutan mencakup aspek pembuatan dan verifikasi proses pengembangan model. Tujuan CI adalah untuk membuat kode dan memverifikasi kualitas kode dan model sebelum penyebaran. Ini termasuk pengujian pada berbagai himpunan data sampel untuk memastikan bahwa model berfungsi seperti yang diharapkan dan memenuhi standar kualitas.

Di MLOps, CI mungkin melibatkan:

  • Melakukan refaktor ulang kode eksplorasi di buku catatan Jupyter menjadi skrip Python atau R.
  • Memvalidasi data input baru untuk nilai yang hilang atau kesalahan.
  • Pengujian unit dan pengujian integrasi di alur end-to-end.

Untuk melakukan pengujian linting dan unit, Anda dapat menggunakan alat otomatisasi seperti Azure Pipelines di Azure DevOps atau GitHub Actions.

Pengiriman berkelanjutan (CD)

Pengiriman berkelanjutan melibatkan langkah-langkah yang diperlukan untuk menyebarkan model dalam produksi dengan aman. Langkah pertama adalah mengemas dan menyebarkan model di lingkungan pra-produksi, seperti lingkungan pengembangan dan pengujian. Portabilitas parameter, hiperparameter, dan artefak model lainnya adalah aspek penting untuk dipertahankan saat Anda mempromosikan kode melalui lingkungan ini. Portabilitas ini sangat penting dalam hal model bahasa besar (LLM) dan model diffusion yang stabil. Setelah model lulus pengujian unit dan pengujian jaminan kualitas (QA), Anda dapat menyetujuinya untuk penyebaran di lingkungan produksi.

Kontrol sumber

Kontrol sumber, atau kontrol versi, sangat penting untuk mengelola perubahan pada kode dan model. Dalam sistem ML, ini mengacu pada penerapan versi data, penerapan versi kode, dan penerapan versi model, yang memungkinkan tim lintas fungsi berkolaborasi secara efektif dan melacak perubahan dari waktu ke waktu. Menggunakan sistem kontrol sumber berbasis Git, seperti Azure Repos di Azure DevOps atau repositori GitHub, memungkinkan Anda mempertahankan riwayat perubahan secara terprogram, kembali ke versi sebelumnya, dan mengelola cabang untuk eksperimen yang berbeda.

Perencanaan agile

Perencanaan tangkas melibatkan mengisolasi pekerjaan menjadi sprint, yang merupakan jangka waktu singkat untuk menyelesaikan tugas tertentu. Pendekatan ini memungkinkan tim untuk beradaptasi dengan perubahan dengan cepat dan memberikan peningkatan bertahap pada model. Pelatihan model dapat menjadi proses yang sedang berlangsung, dan Perencanaan tangkas dapat membantu mencakup proyek dan memungkinkan penyelarasan tim yang lebih baik.

Anda dapat menggunakan alat seperti Azure Boards di Azure DevOps atau masalah GitHub untuk mengelola perencanaan Agile Anda.

Infrastruktur sebagai Kode (IaC)

Anda menggunakan infrastruktur sebagai kode untuk mengulangi dan mengotomatiskan infrastruktur yang diperlukan untuk melatih, menyebarkan, dan melayani model Anda. Dalam sistem ML, IaC membantu menyederhanakan dan menentukan sumber daya Azure yang sesuai yang diperlukan untuk jenis pekerjaan tertentu dalam kode, dan kode dipertahankan dalam repositori. Ini memungkinkan Anda untuk mengontrol infrastruktur Anda secara versi dan membuat perubahan untuk pengoptimalan sumber daya, efektivitas biaya, dll. sesuai kebutuhan.

Langkah berikutnya

Lihat artikel berikut untuk mempelajari praktik terbaik untuk MLOps di aplikasi cerdas Anda di AKS: