Menyusun tim ML

Project ML memerlukan tim dengan anggota yang memiliki berbagai keterampilan, keahlian, dan tanggung jawab terkait machine learning. Berikut ini peran yang paling umum ditemukan pada tim ML pada umumnya:

Role Pengetahuan dan keterampilan Hasil kerja utama
Product manager ML Product manager ML memiliki pemahaman mendalam tentang kekuatan dan kelemahan ML serta proses pengembangan ML. Mereka menyelaraskan masalah bisnis dengan solusi ML melalui kerja langsung dengan tim ML, pengguna akhir, dan pemangku kepentingan lainnya. Mereka menciptakan visi produk, menentukan kasus penggunaan dan persyaratan, serta merencanakan dan memprioritaskan project. Dokumen persyaratan produk (PRD).
Untuk contoh PRD deteksi anomali ML, lihat PRD Deteksi Anomali.
Manajer teknik Manajer engineering mencapai tujuan bisnis dengan menetapkan, berkomunikasi, dan mencapai prioritas tim. Seperti product manager ML, mereka menyelaraskan solusi ML dengan masalah bisnis. Mereka menetapkan ekspektasi yang jelas untuk anggota tim, melakukan evaluasi performa, serta membantu pengembangan karier dan profesional. Dokumen desain, rencana proyek, dan evaluasi kinerja.
Untuk mengetahui contoh dokumen desain ML, lihat go/ml-design-doc-example.
Ilmuwan data Data scientist menggunakan analisis kuantitatif dan statistik untuk mengekstrak insight dan nilai dari data. Fitur ini membantu mengidentifikasi dan menguji fitur, model prototipe, dan membantu penafsiran model. Laporan dan visualisasi data yang menjawab pertanyaan bisnis melalui analisis statistik.
Engineer ML ML engineer mendesain, membangun, memproduksi, dan mengelola model ML. Mereka adalah software engineer yang kuat dengan pemahaman mendalam tentang teknologi dan praktik terbaik ML. Model yang di-deploy dengan kualitas prediksi yang memadai untuk memenuhi sasaran bisnis.
Data engineer Data engineer membangun pipeline data untuk menyimpan, menggabungkan, dan memproses data dalam jumlah besar. Mereka mengembangkan infrastruktur dan sistem untuk mengumpulkan dan mengubah data mentah menjadi format yang berguna untuk pelatihan dan inferensi model. Data engineer bertanggung jawab atas data di seluruh proses pengembangan ML. Pipeline data yang sepenuhnya diproduksi dengan pemantauan dan pemberitahuan yang diperlukan.
Engineer operasi developer (DevOps) Engineer DevOps mengembangkan, men-deploy, menskalakan, dan memantau infrastruktur layanan untuk model ML. Proses otomatis untuk inferensi, pemantauan, pengujian, dan pemberitahuan perilaku model.

Project ML yang sukses memiliki tim dengan setiap peran yang terwakili dengan baik. Dalam tim yang lebih kecil, individu perlu menangani tanggung jawab untuk beberapa peran. Dalam hal ini, alat AutoML seperti Vertex AI dapat membantu mengotomatiskan tugas-tugas ML, seperti pengembangan, pemahaman, dan deployment model.

Menetapkan praktik tim

Karena peran, alat, dan framework sangat bervariasi dalam pengembangan ML, sangat penting untuk menetapkan praktik umum melalui dokumentasi proses yang sangat baik. Misalnya, seorang engineer mungkin berpikir bahwa mendapatkan data yang tepat sudah cukup untuk memulai pelatihan model, sementara engineer yang lebih bertanggung jawab akan memvalidasi bahwa set data telah dianonimkan dengan benar serta mendokumentasikan metadata dan asalnya. Memastikan engineer membagikan definisi umum untuk proses dan pola desain akan mengurangi kebingungan dan meningkatkan kecepatan tim.

Dokumentasi proses

Dokumen proses harus menjelaskan alat, infrastruktur, dan proses yang akan digunakan tim untuk pengembangan ML. Dokumen proses yang baik membantu menyelaraskan anggota tim baru dan saat ini. Mereka harus menjawab jenis pertanyaan berikut:

  • Bagaimana data dihasilkan untuk model?
  • Bagaimana cara memeriksa, memvalidasi, dan memvisualisasikan data?
  • Bagaimana cara mengubah fitur input atau label dalam data pelatihan?
  • Bagaimana cara menyesuaikan pipeline pembuatan, pelatihan, dan evaluasi data?
  • Bagaimana cara mengubah arsitektur model untuk mengakomodasi perubahan pada label atau fitur input?
  • Bagaimana cara mendapatkan contoh pengujian?
  • Metrik apa yang akan kita gunakan untuk menilai kualitas model?
  • Bagaimana cara meluncurkan model dalam produksi?
  • Bagaimana cara mengetahui jika ada yang salah dengan model kita?
  • Sistem upstream apa yang diandalkan model kita?
  • Bagaimana cara membuat SQL saya dapat dikelola dan digunakan kembali?

Dokumen Google dengan daftar pertanyaan ini tersedia di go/ml-list-of-questions.

Pertanyaan yang mungkin diajukan

Model
  • Dapatkah saya melatih model pada set data yang berbeda dalam pipeline yang sama, misalnya untuk fine-tuning?

  • Bagaimana cara menambahkan set data pengujian baru ke pipeline saya?

Pelatihan
  • Bagaimana cara memeriksa prediksi model pada contoh buatan tangan?

  • Bagaimana cara menemukan, memeriksa, dan memvisualisasikan contoh saat model membuat kesalahan?

  • Bagaimana cara menentukan fitur yang paling bertanggung jawab atas prediksi yang diberikan?

  • Bagaimana cara memahami fitur mana yang memiliki dampak terbesar terhadap prediksi dalam sampel tertentu?

  • Bagaimana cara menghitung atau memetakan prediksi model pada set data atau sampel yang dipilih?

  • Bagaimana cara menghitung metrik standar untuk prediksi model saya pada set data yang dipilih?

  • Bagaimana cara mengembangkan dan menghitung metrik kustom?

  • Bagaimana cara membandingkan model saya dengan model lain secara offline?

  • Dapatkah saya melakukan meta-analisis untuk beberapa evaluasi model dalam satu lingkungan pengembangan?

  • Dapatkah saya membandingkan model saat ini dengan model 10 bulan lalu?

Produksi, pemantauan, dan pemeliharaan
  • Saya pikir saya telah membuat model yang bagus. Bagaimana cara meluncurkannya dalam produksi?

  • Bagaimana cara memastikan bahwa model baru saya berjalan dengan benar di produksi?

  • Bisakah saya mendapatkan histori evaluasi model dari waktu ke waktu?

  • Bagaimana cara mengetahui jika ada yang salah dengan model?

  • Saya diberi tugas untuk laman/bug yang menyebutkan sesuatu tentang model. Apa yang sebaiknya saya lakukan?

Pipeline
  • Bagaimana cara menyesuaikan pipeline pembuatan/pelatihan/evaluasi data?

  • Kapan dan bagaimana cara membuat pipeline yang benar-benar baru?

SQL
  • Saya memerlukan SQL untuk menghasilkan beberapa data. Di mana aku harus meletakkannya?

Infrastruktur
  • Bagaimana cara kerja penyaluran model? Apakah ada diagram?

  • Sistem upstream apa yang bergantung pada model saya yang harus saya ketahui?

Komunikasi
  • Saya tidak tahu sesuatu. Siapa (dan bagaimana) harus saya hubungi?

Perhatikan

Apa yang dimaksud dengan "praktik terbaik ML" dapat berbeda antara perusahaan, tim, dan individu. Misalnya, beberapa anggota tim mungkin mempertimbangkan Colab eksperimental sebagai hasil utama, sementara yang lain ingin bekerja di R. Sebagian orang mungkin memiliki minat besar pada software engineering, ada orang lain yang menganggap pemantauan adalah hal yang paling penting, tetapi ada orang lain yang mengetahui praktik produksi fitur yang baik tetapi ingin menggunakan Scala. Setiap orang memiliki sudut pandang yang "benar" dan jika diarahkan dengan tepat, perpaduan akan menjadi kekuatan besar. Jika tidak, ini bisa menjadi berantakan.

Menetapkan alat, proses, dan infrastruktur yang akan digunakan tim sebelum menulis baris kode dapat menjadi perbedaan antara project yang gagal setelah dua tahun atau berhasil diluncurkan seperempat lebih cepat dari jadwal.

Evaluasi performa

Karena ambiguitas dan ketidakpastian yang melekat dalam ML, manajer personalia harus menetapkan ekspektasi yang jelas dan menentukan hasil kerja lebih awal.

Saat menentukan ekspektasi dan hasil kerja, pertimbangkan bagaimana semuanya akan dievaluasi jika sebuah proyek atau pendekatan tidak berhasil. Dengan kata lain, performa anggota tim tidak berhubungan langsung dengan keberhasilan proyek. Misalnya, anggota tim biasanya menghabiskan waktu berminggu-minggu untuk menyelidiki solusi yang pada akhirnya tidak berhasil. Bahkan dalam kasus ini, kode berkualitas tinggi, dokumentasi yang menyeluruh, dan kolaborasi yang efektif harus memberikan kontribusi positif terhadap evaluasi mereka.