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 sama dengan 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 ML manajer produk, 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 inferensi model. Insinyur data adalah bertanggung jawab atas data di seluruh proses pengembangan ML. Pipeline data yang terproduksi sepenuhnya dengan pemantauan yang diperlukan dan peringatan.
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 perannya dengan baik terwakili. 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 mendefinisikan alat, infrastruktur, dan proses yang dilalui tim akan digunakan untuk pengembangan ML. Dokumen proses yang baik membantu menyelaraskan yang baru dan terkini anggota tim. Mereka 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, pelatihan, dan evaluasi data?
  • Bagaimana cara mengubah arsitektur model untuk mengakomodasi perubahan input fitur atau label?
  • Bagaimana cara mendapatkan contoh pengujian?
  • Metrik apa yang akan kita gunakan untuk menilai kualitas model?
  • Bagaimana cara meluncurkan model dalam produksi?
  • Bagaimana kita tahu jika ada yang salah dengan model kita?
  • Sistem upstream apa yang diandalkan model kita?
  • Bagaimana cara membuat SQL saya mudah 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 dari 10 bulan lalu?

Produksi, pemantauan, dan pemeliharaan
  • Kurasa aku membuat model yang bagus. Bagaimana cara meluncurkannya ke dalam produksi?

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

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

  • Bagaimana cara mengetahui jika ada yang salah dengan model?

  • Saya mendapat tugas halaman/bug yang menyebutkan sesuatu tentang model ini. 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 inferensi model kita? Apakah ada diagram?

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

Komunikasi
  • Aku tidak dapat memahaminya. Siapa (dan bagaimana) harus saya hubungi?

Perhatikan

Yang dimaksud dengan "Praktik terbaik ML" dapat berbeda antara perusahaan, tim, dan perorangan. Sebagai contoh, beberapa anggota tim mungkin mempertimbangkan Colab eksperimental sebagai hasil kerja, sementara yang lain ingin bekerja di R. Beberapa orang mungkin memiliki minat terhadap rekayasa perangkat lunak, orang lain berpikir bahwa pemantauan adalah hal yang paling penting Namun, orang lain mengetahui praktik produksi fitur yang baik, tetapi ingin menggunakan Scala. Setiap orang "benar" dari perspektif mereka sendiri dan jika diarahkan dengan benar, perpaduannya akan menjadi kekuatan besar. Jika tidak, hasilnya bisa berantakan.

Menetapkan alat, proses, dan infrastruktur yang akan digunakan tim sebelum menulis baris kode bisa menjadi perbedaan antara proyek yang gagal setelah dua tahun atau berhasil meluncurkan seperempat lebih cepat 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 kerja, pertimbangkan bagaimana hal itu akan dievaluasi jika sebuah proyek atau pendekatan tidak berhasil. Dengan kata lain, hal itu adalah penting bahwa kinerja anggota tim tidak terkait langsung dengan keberhasilan proyek. Misalnya, tidak jarang anggota tim menghabiskan berminggu-minggu untuk menyelidiki solusi yang akhirnya gagal. Bahkan dalam bahasa ini kasus, kode berkualitas tinggi, dokumentasi yang menyeluruh, dan efektivitas kolaborasi harus berkontribusi positif terhadap evaluasi.

Memeriksa Pemahaman Anda

Apa alasan utama untuk memiliki dokumentasi proses yang sangat baik? dan menetapkan praktik umum?
Meningkatkan kecepatan proyek.
Benar. Memiliki dokumentasi proses yang baik dan menetapkan mengurangi kebingungan dan menyederhanakan proses pengembangan.
Menerapkan 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 para insinyur menyelaraskan praktik terbaik untuk meningkatkan kecepatannya.