Baru-baru ini Google mengumumkan Vertex AI, platform pembelajaran mesin terpadu baru yang membantu Anda menerapkan model lebih cepat dengan memanfaatkan alat AI Google.

Sekilas, Vertex adalah perubahan merek dari platform AI Google yang sudah ada ditambah beberapa tambahan, dan menyasar pesaing seperti Amazon SageMaker. Ia juga menjanjikan MLO yang tepat, hal trendi yang dibicarakan semua orang saat ini.

Kami ingin melihat apa yang sebenarnya bisa dilakukan Vertex, jadi kami naik kereta ini.

Tapi pertama-tama, apa itu MLOps?

Saat ini kita semakin jarang berbicara tentang manfaat AI bagi bisnis, dan lebih banyak membahas tentang cara menerapkannya secara efektif. Bagaimana kita berpindah dari ide ke produksi secepat mungkin?

MLOps adalah pendekatan pembelajaran mesin yang mengurangi kesulitan dalam memproduksi model, mendapatkan manfaat maksimal dari pembelajaran mesin secepat mungkin sekaligus mengurangi risiko.

Ada banyak alat untuk model pelatihan, tapi itu tidak cukup; modelnya hanyalah permulaan. Bagi kami, kunci sukses dalam pembelajaran mesin adalah:

  • Kolaborasi — orang-orang dengan spesialisasi berbeda diberdayakan untuk bekerja sama secara efektif.
  • Asalnya — untuk model apa pun, kami dapat melacak versi kode, versi data, dan parameter yang digunakan untuk membuat model tersebut.
  • Reproduksibilitas — model eksperimental dan produksi dapat direproduksi dengan mudah sesuai permintaan.
  • Kontinuitas — kita dapat membangun, menguji, dan menerapkan model serta infrastruktur terkait secara otomatis dan konsisten.

Diagram di bawah menyoroti nilai-nilai ini, serta 5 fase yang dilalui project ML, mulai dari eksperimen hingga pelatihan berkelanjutan secara penuh. Sebentar lagi, kita akan melihat seperti apa masing-masing fase ini di Vertex.

Dengan mengingat hal tersebut, mari selami ulasan tentang Vertex AI.

Blog ini adalah ikhtisar tingkat tinggi, dan di blog mendatang kita akan melihat aspek-aspek tertentu dari Vertex AI secara mendalam. Kesimpulan kami didasarkan pada perbandingan pengalaman kami bekerja dengan Platform AI asli, dan platform serupa termasuk AWS SageMaker.

hal. Jika Anda sedang terburu-buru, cukup gulir ke akhir untuk melihat kesimpulan kami.

Naik kereta itu

Bereksperimen

Setiap proyek ML dimulai dengan eksperimen. Biasanya banyak sekali, masing-masing dengan metode, konfigurasi, dan kumpulan data yang berbeda. Pelacakan eksperimen sangat penting untuk mempertahankan kolaborasi pada tahap ini.

Di Vertex kita dapat membuat kumpulan data terkelola. Ini sangat berguna; memiliki lokasi terpusat untuk data berarti hanya ada satu sumber kebenaran. Satu-satunya fitur yang hilang (untuk saat ini) adalah pembuatan versi data, yang penting jika kita menginginkan asal model yang lengkap. Kumpulan data tersedia dalam berbagai jenis; gambar, tabel, teks dan video.

Sedangkan untuk pelacakan eksperimen, Vertex menjanjikan pelacakan parameter dan kinerja terpusat, melalui TensorBoard. Sayangnya kami juga mengalami masalah di sini karena, meskipun TensorBoard sendiri berfungsi dengan baik saat dijalankan secara lokal, kami tidak dapat mengunggah log ke Vertex, yang berarti Anda tidak dapat dengan mudah berbagi eksperimen di antara tim, sehingga mengganggu objek pelacakan eksperimen.

Secara keseluruhan kami menemukan bahwa peralatan pada fase ini memerlukan beberapa perbaikan. Untuk saat ini, kami lebih memilih menggunakan sistem pembuatan versi data khusus dan pelacak eksperimen.

Pelatihan

Jadi, Anda memiliki model yang Anda sukai. Anda telah melatih dan mengujinya secara lokal sebagai bagian dari eksperimen Anda, dan sekarang Anda ingin memproduksinya. Vertex menawarkan dua hal: pekerjaan pelatihan dan saluran pipa.

Pertama, mari kita lihat opsi pelatihan. Sebelumnya, Google menawarkan dua produk 'AutoML', Cloud Vision dan Cloud Language. Ini memungkinkan untuk mengunggah kumpulan data dan melatih model tanpa menulis kode apa pun.

Ini semua sudah terintegrasi ke dalam Vertex sekarang, jadi Anda memiliki dua opsi:

  1. Gunakan AutoML. Dalam hal ini, Anda memberi Vertex anggaran komputasi dan membiarkannya melatih model terbaik sesuai anggaran tersebut. Anggaran minimumnya adalah 1 jam, dan kami menghabiskan £14 untuk satu jam pelatihan.
  2. Gunakan kode pelatihan Anda sendiri. Ini lebih banyak pekerjaan, tetapi memberi Anda lebih banyak kendali. Penting jika Anda melakukan sesuatu di luar kemampuan pelatih AutoML.

Setelah Anda membuat keputusan itu, hal berikutnya yang harus dibangun adalah jalur pelatihan. Alur berisi semua langkah yang diperlukan untuk melatih model, lalu menyimpan model tersebut ke dalam registri model untuk digunakan nanti.

Pipelines adalah fitur platform AI Google yang sudah lama ada, dan tidak mengherankan jika pipeline masih berfungsi dengan baik di Vertex. Saluran pengujian kami memiliki 3 langkah:

  1. Buat set data, yang bersumber dari bucket Cloud Storage.
  2. Buat tugas pelatihan dengan AutoML.
  3. Terapkan model (lihat fase selanjutnya!).

Pipeline di Vertex sebenarnya adalah pipeline KubeFlow. Bagi mereka yang belum terbiasa, Kubeflow adalah kerangka pembelajaran mesin yang berjalan di atas Kubernetes.

Yang penting adalah dengan Vertex Anda mendapatkan kekuatan KubeFlow tanpa menjalankan infrastruktur Anda sendiri, yang jika tidak, akan merepotkan. Di sisi lain, dapat dikatakan bahwa KubeFlow memang mempunyai pencela. Argumen di komentar.

Penyebaran

Model tidak banyak berguna kecuali diterapkan di suatu tempat. Pipeline di atas melatih dan men-deploy model ke Vertex, namun sebenarnya kita memiliki beberapa opsi untuk melakukan hal tersebut di Vertex:

  1. Jalankan model dalam wadah Vertex yang telah dibuat sebelumnya. Pilihan paling sederhana. Ada container siap pakai untuk banyak framework ML.
  2. Jalankan model di wadah Anda sendiri. Lebih banyak fleksibilitas, misalnya jika Anda memiliki beberapa persyaratan perpustakaan khusus untuk menjalankan model Anda.

Model hosting adalah fitur platform AI yang sudah ada dan, seperti halnya pipeline, fitur ini berfungsi dengan sangat baik. Selain menghosting model dan artefak terkait, kami juga dapat melampirkan metadata ke model. Jadi jika Anda mau, Anda bisa menambahkan sesuatu seperti hash Git commit sehingga Anda bisa melacak asal modelnya.

Perhatikan bahwa model itu sendiri tidak diekspos sebagai layanan web. Penerapan model berarti menempatkannya ke dalam registri model Vertex. Setelah itu, Anda masih perlu membuat apa yang disebut Vertex sebagai titik akhir. Tanpa ini, tidak ada cara untuk mendapatkan model dari luar.

Model hosting adalah fitur matang yang kami rekomendasikan untuk penggunaan produksi.

Pemantauan

Prospek pemantauan model di Vertex cukup menarik. Menurut dokumentasinya, ini dapat memantau model yang Anda terapkan untuk mencari masukan yang mencurigakan. Secara khusus, ini berfungsi dalam salah satu dari dua mode:

  1. Cari masukan yang berada di luar jangkauan data pelatihan.
  2. Carilah perubahan signifikan pada suatu masukan dengan membandingkan masukan tersebut dengan nilai historis.

Hal semacam ini memberi Anda wawasan penting tentang perilaku model dalam jangka panjang. Sebuah model yang berfungsi dengan baik saat ini mungkin tidak akan berfungsi dengan baik di masa depan, terutama jika jenis masukan yang diterimanya perlahan-lahan berubah.

Sayangnya, meskipun kami dapat mengatur pemantauan — menggunakan alat baris perintah gcloud, karena hal tersebut tampaknya tidak dapat dilakukan melalui UI saat ini — kami tidak dapat memperoleh peringatan apa pun darinya.

Bahkan jika kami berhasil menjalankannya, kurangnya UI masih akan menjadi dampak negatif yang serius. Kesimpulan kami adalah meskipun hal ini terlihat sangat berguna untuk dimiliki, namun hal ini belum siap.

Pelatihan Berkelanjutan

Tidak ada yang benar-benar selesai. Kami selalu perlu melatih ulang model kami, baik berdasarkan keputusan manual atau otomatisasi. Pelatihan berkelanjutan adalah tentang memungkinkan tim untuk dengan cepat melatih kembali dan menerapkan model versi baru.

Pipeline Vertex tidak hanya menawarkan otomatisasi untuk pelatihan dan penerapan, namun juga tampilan historis dari proses pipeline yang lalu. Hal ini membantu membuat pelatihan menjadi kolaboratif, dengan memberikan visibilitas kepada semua orang tentang sejarah ini.

Untuk pelatihan berkelanjutan, kami juga ingin mengetahui opsi kami untuk memicu saluran pipa. Mungkin kita ingin melatih ulang model setiap kali sistem pemantauan mendeteksi adanya penyimpangan pada keluaran model, atau kita mungkin ingin melatih ulang model sesuai jadwal untuk memasukkan data baru sehingga model tetap up-to-date. -tanggal.

Sayangnya ini bukan opsi di Vertex saat ini, jadi Anda perlu menggunakan peralatan lain untuk mendapatkan fungsionalitas semacam ini. Kami pikir diperlukan lebih banyak lagi di atas Vertex untuk benar-benar mencapai pelatihan berkelanjutan.

Kesimpulan

Jadi, apakah Vertex memenuhi ekspektasi tersebut? Mungkin belum. Meskipun platform ini berpotensi menarik, banyak alatnya yang ditandai sebagai dalam pratinjau di platform dan dalam dokumentasi.

Kami telah melihat alat MLOps yang lebih baik dari luar ekosistem Google dan, saat ini, kami merasa bahwa Vertex saja tidak akan memberikan semua yang Anda butuhkan dalam hal kolaborasi, asal usul, reproduktifitas, dan kontinuitas. Kemungkinan besar beberapa alat open source akan muncul untuk mengisi beberapa kesenjangan.

Pelatihan dan penerapan bekerja dengan sangat baik, dan manfaat terbesarnya adalah kemampuan untuk memiliki sumber daya komputasi sesuai permintaan untuk pelatihan, hanya membayar sesuai penggunaan, yang bisa lebih murah dan sederhana dibandingkan menghosting semua infrastruktur untuk melakukan hal ini sendiri. apakah itu melalui Kubernetes atau lainnya.

Ini sangat berharga bagi banyak orang. Mengelola infrastruktur Anda sendiri memerlukan keterampilan yang sangat berbeda dengan keterampilan yang dibutuhkan untuk melatih model pembelajaran mesin. Untuk mengelola infrastruktur, Anda perlu mengetahui tentang komputasi awan, infrastruktur sebagai kode, devops, sedangkan dengan platform seperti Vertex Anda dapat fokus pada model pelatihan tanpa mengkhawatirkan infrastruktur.

Kami belum memberikan pandangan mendalam tentang biaya dalam ulasan ini, namun kami akan membahasnya kembali di blog selanjutnya. Namun, sebagai indikasi, kami menghabiskan £60 selama 10 hari untuk menghosting model, dan £14 untuk satu jam pelatihan AutoML.

Untuk menyusun tinjauan ini, kami menguji berbagai komponen Vertex dengan contoh mainan, yang melatih model untuk memprediksi kualitas anggur dari kumpulan data sifat kimia anggur. Jika Anda ingin mencobanya, berikut kodenya: https://github.com/fuzzylabs/mlops-gcp/tree/master/examples/sklearn-wine-vertex.