Project ML memerlukan tim dengan anggota yang memiliki berbagai keterampilan, keahlian, dan tanggung jawab terkait machine learning. Berikut adalah peran yang paling umum ditemukan di tim ML standar:
Peran | Pengetahuan dan keterampilan | Hasil 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 dengan bekerja langsung dengan tim ML, pengguna akhir, dan pemangku kepentingan lainnya. Mereka membuat visi produk, menentukan kasus penggunaan dan persyaratan, serta merencanakan dan memprioritaskan project. |
Dokumen persyaratan produk (PRD). |
Engineering manager | Manajer engineer mencapai sasaran bisnis dengan menetapkan, mengomunikasikan, dan mencapai prioritas tim. Seperti manajer produk ML, mereka menyelaraskan solusi ML dengan masalah bisnis. Mereka menetapkan ekspektasi yang jelas bagi anggota tim, melakukan evaluasi performa, dan membantu pengembangan karier dan profesional. |
Dokumen desain, rencana project, dan evaluasi performa. |
Ilmuwan data | Ilmuwan data menggunakan analisis kuantitatif dan statistik untuk mengekstrak insight dan nilai dari data. Alat ini membantu mengidentifikasi dan menguji fitur, membuat prototipe model, dan membantu interpretasi model. | Laporan dan visualisasi data yang menjawab pertanyaan bisnis melalui analisis statistik. |
ML engineer | ML engineer mendesain, mem-build, memproduksi, dan mengelola model ML. Mereka adalah engineer software yang andal dengan pemahaman mendalam tentang teknologi ML dan praktik terbaik. | Men-deploy model dengan kualitas prediksi yang memadai untuk memenuhi sasaran bisnis. |
Data engineer | Data engineer membuat 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 penayangan 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 penayangan untuk model ML. | Proses otomatis untuk menayangkan, memantau, menguji, dan memberikan pemberitahuan tentang perilaku model. |
Project ML yang sukses memiliki tim dengan setiap peran yang diwakili dengan baik. Dalam tim yang lebih kecil, setiap individu harus menangani tanggung jawab untuk beberapa peran.
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 hanya mendapatkan data yang tepat sudah cukup untuk mulai melatih model, sedangkan engineer yang lebih bertanggung jawab akan memvalidasi bahwa set data disamarkan dengan benar dan mendokumentasikan metadata dan asalnya. Memastikan engineer memiliki definisi umum untuk proses dan pola desain akan mengurangi kebingungan dan meningkatkan kecepatan tim.
Dokumentasi proses
Dokumen proses harus menentukan alat, infrastruktur, dan proses yang akan digunakan tim untuk pengembangan ML. Dokumen proses yang baik membantu menyelaraskan anggota tim baru dan saat ini. Pertanyaan tersebut harus menjawab jenis pertanyaan berikut:
- Bagaimana data dihasilkan untuk model?
- Bagaimana cara memeriksa, memvalidasi, dan memvisualisasikan data?
- Bagaimana cara memodifikasi fitur atau label input dalam data pelatihan?
- Bagaimana cara menyesuaikan pipeline pembuatan data, pelatihan, dan evaluasi?
- Bagaimana cara mengubah arsitektur model untuk mengakomodasi perubahan fitur atau label 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 apakah ada yang salah dengan model kita?
- Sistem upstream apa yang menjadi dependensi model kami?
- Bagaimana cara membuat SQL saya dapat dikelola dan digunakan kembali?
Pertanyaan potensial lainnya
ModelDapatkah saya melatih model pada set data yang berbeda dalam pipeline yang sama, seperti untuk penyesuaian?
Bagaimana cara menambahkan set data pengujian baru ke pipeline saya?
Bagaimana cara memeriksa prediksi model pada contoh buatan tangan?
Bagaimana cara menemukan, memeriksa, dan memvisualisasikan contoh saat model membuat kesalahan?
Bagaimana cara menentukan fitur mana yang paling bertanggung jawab atas prediksi tertentu?
Bagaimana cara memahami fitur mana yang paling memengaruhi 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 dari 10 bulan lalu?
Saya rasa saya telah membuat model yang bagus. Bagaimana cara meluncurkannya dalam produksi?
Bagaimana cara memverifikasi bahwa model baru saya berjalan dengan benar dalam produksi?
Dapatkah saya mendapatkan histori evaluasi model dari waktu ke waktu?
Bagaimana cara mengetahui jika ada masalah dengan model?
Saya diberi tugas untuk memeriksa halaman/bug yang menyebutkan sesuatu tentang model. Apa yang harus saya lakukan?
Bagaimana cara menyesuaikan pipeline pembuatan/pelatihan/evaluasi data?
Kapan dan bagaimana cara membuat pipeline yang benar-benar baru?
Saya memerlukan SQL untuk membuat beberapa data. Di mana saya harus meletakkannya?
Bagaimana cara kerja penayangan model kami? Apakah ada diagram?
Sistem upstream apa yang menjadi dependensi model saya yang harus saya ketahui?
Saya tidak dapat menemukan sesuatu. Siapa (dan bagaimana) saya harus menghubunginya?
Perhatikan
Yang dimaksud dengan "praktik terbaik ML" dapat berbeda-beda di antara perusahaan, tim, dan individu. Misalnya, beberapa anggota tim mungkin menganggap Colabs eksperimental sebagai hasil utama, sementara yang lain ingin bekerja di R. Beberapa orang mungkin memiliki minat pada rekayasa software, orang lain menganggap pemantauan adalah hal yang paling penting, tetapi orang lain mengetahui praktik produksi fitur yang baik, tetapi ingin menggunakan Scala. Semua orang "benar" dari perspektif mereka sendiri dan jika diarahkan dengan benar, campuran tersebut akan menjadi sumber daya yang kuat. Jika tidak, hal ini dapat 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 tiga bulan lebih awal dari jadwal.
Evaluasi performa
Karena ambiguitas dan ketidakpastian yang melekat dalam ML, pengelola SDM perlu menetapkan ekspektasi yang jelas dan menentukan hasil sejak awal.
Saat menentukan ekspektasi dan hasil, pertimbangkan bagaimana hal tersebut akan dievaluasi jika project atau pendekatan tidak berhasil. Dengan kata lain, performa anggota tim tidak boleh terhubung langsung dengan keberhasilan project. Misalnya, anggota tim sering kali menghabiskan berminggu-minggu untuk menyelidiki solusi yang pada akhirnya tidak berhasil. Bahkan dalam kasus ini, kode berkualitas tinggi, dokumentasi yang menyeluruh, dan kolaborasi yang efektif akan berkontribusi positif terhadap evaluasi mereka.