Menyusun tim ML

Project ML membutuhkan tim dengan anggota yang memiliki berbagai keterampilan, keahlian, dan tanggung jawab yang terkait dengan {i>machine learning<i}. Ini adalah skrip yang paling umum peran yang ditemukan di tim ML standar:

Peran Pengetahuan dan keterampilan Hasil utama
Product manager ML Product manager ML memiliki pemahaman mendalam tentang kekuatan ML dan kelemahan dan proses pengembangan ML. Mereka menyelaraskan masalah bisnis ke solusi ML dengan bekerja secara langsung bersama tim ML, pengguna akhir, dan pemangku kepentingan lainnya. Mereka menyusun visi produk, menentukan kasus penggunaan, persyaratan, dan merencanakan dan memprioritaskan proyek. Dokumen persyaratan produk (PRD).
Manajer teknik Manajer teknik mencapai tujuan bisnis dengan cara pengaturan, komunikasi, dan mencapai prioritas tim. Seperti manajer produk ML, mereka menyelaraskan solusi ML dengan masalah bisnis. Mereka menetapkan ekspektasi yang jelas untuk anggota tim, melakukan evaluasi kinerja, dan membantu karier dan pengembangan profesional. Dokumen desain, rencana project, dan evaluasi performa.
Ilmuwan data Ilmuwan data menggunakan analisis kuantitatif dan statistik untuk mengekstrak wawasan dan nilai dari data. Mereka membantu mengidentifikasi dan menguji fitur, model prototipe, dan bantuan penafsiran model. Laporan dan visualisasi data yang menjawab pertanyaan bisnis melalui analisis statistik.
Engineer ML Engineer ML merancang, membangun, memproduksi, dan mengelola model ML. Mereka adalah software engineer yang kuat dengan pemahaman mendalam tentang ML teknologi dan praktik terbaik. Model yang di-deploy dengan kualitas prediksi yang memadai untuk memenuhi kebutuhan bisnis tujuan tersebut.
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 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 inferensi untuk model ML. Proses otomatis untuk menyalurkan, memantau, menguji, dan memberi tahu tentang yang merupakan perilaku model.

Project ML yang sukses memiliki tim dengan setiap peran yang diwakili dengan baik. Dalam tim yang lebih kecil, individu perlu menangani tanggung jawab untuk berbagai peran.

Membangun praktik tim

Karena peran, alat, dan framework sangat bervariasi di ML sangat penting untuk menetapkan praktik umum melalui dokumentasi proses yang sangat baik. Misalnya, seorang insinyur mungkin berpikir bahwa mendapatkan data yang tepat sudah cukup untuk mulai melatih model, sementara insinyur yang lebih bertanggung jawab akan memvalidasi bahwa {i>dataset<i} dianonimkan dengan benar dan mendokumentasikan metadata dan asalnya. Memastikan para insinyur menyampaikan definisi umum untuk proses dan pola desain 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 tersebut?
  • Bagaimana kita memeriksa, memvalidasi, dan memvisualisasikan data?
  • Bagaimana cara mengubah 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

Model
  • Dapatkah saya melatih model pada {i>dataset<i} yang berbeda dengan cara yang sama pipeline, seperti untuk fine-tuning?

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

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

  • Cara menemukan, memeriksa, dan memvisualisasikan contoh tempat model dibuat kesalahan?

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

  • Bagaimana cara memahami fitur mana yang memiliki dampak paling besar prediksi dalam sampel tertentu?

  • Bagaimana cara menghitung atau memetakan prediksi model pada {i>dataset<i} yang dipilih atau sampel?

  • 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 analisis meta untuk beberapa evaluasi model dalam satu lingkungan pengembangan?

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

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

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

  • 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?

Pipeline
  • Bagaimana cara menyesuaikan pembuatan/pelatihan/evaluasi data {i>pipelines<i}?

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

SQL
  • Saya perlu SQL untuk menghasilkan beberapa data. Di mana saya harus meletakkannya?

Infrastruktur
  • Bagaimana cara kerja penayangan model kami? Apakah ada diagram?

  • Sistem upstream apa yang digunakan model saya untuk menjadi sadari?

Komunikasi
  • 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, manajer personalia perlu menetapkan ekspektasi yang jelas dan menentukan hasil kerja lebih awal.

Saat menentukan ekspektasi dan hasil, pertimbangkan bagaimana hal tersebut akan dievaluasi jika project atau pendekatan tidak berhasil. Dengan kata lain, hal itu adalah penting bahwa kinerja anggota tim tidak terkait langsung dengan keberhasilan proyek. 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.

Memeriksa Pemahaman Anda

Apa alasan utama untuk memiliki dokumentasi proses yang sangat baik dan menetapkan praktik umum?
Meningkatkan kecepatan project.
Benar. Memiliki dokumentasi proses yang baik dan menetapkan mengurangi kebingungan dan menyederhanakan proses pengembangan.
Menetapkan praktik terbaik di seluruh perusahaan.
Karena pengembangan ML bervariasi dari satu project ke project lainnya, tim biasanya menetapkan praktik terbaik untuk bekerja secara efektif dan meningkatkan kecepatannya.
Memastikan semua engineer dalam tim memiliki tingkat keahlian yang sama.
Tim ML biasanya memiliki engineer dengan berbagai keterampilan dan pengetahuan. Dokumentasi proses membantu engineer menyelaraskan praktik terbaik untuk meningkatkan kecepatan mereka.