Menyusun tim ML
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
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
Model
Dapatkah 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?
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 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?
Productionization, pemantauan, dan pemeliharaan
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?
Pipelines
SQL
Infrastruktur
Komunikasi
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.
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.
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 praktik
umum akan 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 kumpulan praktik terbaik mereka sendiri untuk bekerja
secara efektif dan meningkatkan kecepatannya.
Pastikan 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.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[null,null,["Terakhir diperbarui pada 2025-07-27 UTC."],[[["\u003cp\u003eMachine learning projects necessitate diverse teams with specialized roles like ML product managers, data scientists, and ML engineers, to address various aspects of development and deployment.\u003c/p\u003e\n"],["\u003cp\u003eComprehensive process documentation is crucial for ML teams to establish common practices, ensure smooth collaboration, and enhance project velocity by reducing confusion and streamlining workflows.\u003c/p\u003e\n"],["\u003cp\u003eProcess documentation should cover key questions regarding data handling, model development, training, evaluation, and productionization to guide the team's approach and decision-making.\u003c/p\u003e\n"],["\u003cp\u003eEstablishing clear expectations, deliverables, and evaluation criteria for team members is essential, emphasizing contributions beyond project success due to the inherent uncertainties in ML development.\u003c/p\u003e\n"],["\u003cp\u003eSuccessful ML teams foster a collaborative environment where diverse perspectives and expertise are valued, enabling efficient problem-solving and innovative solutions.\u003c/p\u003e\n"]]],[],null,["# Assembling an ML team\n\nML projects require teams with members who have a range of skills, expertise,\nand responsibilities related to machine learning. These are the most common\nroles found on typical ML teams:\n\n| Role | Knowledge and skills | Main deliverable |\n|----------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|\n| ML product manager | ML product managers have a deep understanding of ML strengths and weaknesses and the ML development process. They align business problems to ML solutions by working directly with the ML team, end-users, and other stakeholders. They create the product vision, define use cases and requirements, and plan and prioritize projects. | Product requirements document (PRD). |\n| Engineering manager | Engineering managers achieve business goals by setting, communicating, and achieving team priorities. Like ML product managers, they align ML solutions to business problems. They set clear expectations for team members, conduct performance evaluations, and assist with career and professional development. | Design docs, project plans, and performance evaluations. |\n| Data scientist | Data scientists use quantitative and statistical analysis to extract insights and value from data. They help to identify and test features, prototype models, and help with model interpretability. | Reports and data visualizations that answer business questions through statistical analysis. |\n| ML engineer | ML engineers design, build, productionize, and manage ML models. They are strong software engineers with a deep understanding of ML technologies and best practices. | Deployed model with sufficient prediction quality to meet business goals. |\n| Data engineer | Data engineers build data pipelines for storing, aggregating, and processing large amounts of data. They develop the infrastructure and systems for collecting and transforming raw data into useful formats for model training and serving. Data engineers are responsible for the data across the entire ML development process. | Fully productionized data pipelines with the necessary monitoring and alerting. |\n| Developer operations (DevOps) engineer | DevOps engineers develop, deploy, scale, and monitor the serving infrastructure for ML models. | An automated process for serving, monitoring, testing, and alerting on a model's behavior. |\n\nSuccessful ML projects have teams with each role well\nrepresented. In smaller teams, individuals will need to handle the\nresponsibilities for multiple roles.\n\n\nEstablish team practices\n------------------------\n\nBecause the roles, tools, and frameworks vary widely in ML\ndevelopment, it's critical to establish common practices through\nexcellent process documentation. For example, one engineer might\nthink that just getting the right data is sufficient to begin training a model,\nwhile a more responsible engineer will validate that the dataset is anonymized\ncorrectly and document its metadata and provenance. Making sure engineers share\ncommon definitions for processes and design patterns reduces confusion and\nincreases the team's velocity.\n\n### Process documentation\n\nProcess docs should define the tools, infrastructure, and processes the team\nwill use for ML development. Good process docs help align new and current\nteam members. They should answer the following types of questions:\n\n- How is the data generated for the model?\n- How do we examine, validate, and visualize the data?\n- How do we modify an input feature or label in the training data?\n- How do we customize the data generation, training, and evaluation pipeline?\n- How do I change the model architecture to accommodate changes in input features or labels?\n- How do we obtain testing examples?\n- What metrics will we use to judge model quality?\n- How do we launch our models in production?\n- How will we know if something is wrong with our model?\n- What upstream systems do our models depend on?\n- How do I make my SQL maintainable and reusable?\n\n#### More potential questions\n\n**Model**\n\n-\n Can I train models on different datasets in the same\n pipeline, like for fine-tuning?\n\n-\n How do I add a new test dataset to my pipeline?\n\n**Training**\n\n-\n How do I check the model's prediction on a hand-crafted example?\n\n-\n How do I find, examine, and visualize examples where the model made\n mistakes?\n\n-\n How do I determine which feature was most responsible for a given\n prediction?\n\n-\n How do I understand which features have the most impact on\n predictions within a given sample?\n\n-\n How do I compute or plot model predictions on a chosen dataset or\n sample?\n\n-\n How do I compute standard metrics for my model's predictions on a\n chosen dataset?\n\n-\n How do I develop and compute custom metrics?\n\n-\n How do I compare my model with other models offline?\n\n-\n Can I perform meta-analysis for multiple model evaluations in a single\n development environment?\n\n-\n Can I compare the current model with the one from 10 months ago?\n\n**Productionization, monitoring, and maintenance**\n\n-\n I think I created a good model. How can I launch it in production?\n\n-\n How do I verify that my new model is running in production correctly?\n\n-\n Can I get the history of model evaluations over time?\n\n-\n How will I know when something is wrong with the model?\n\n-\n I got assigned a page/bug mentioning something about the model.\n What should I do?\n\n**Pipelines**\n\n-\n How could I customize the data generation/training/evaluation\n pipeline?\n\n-\n When and how should I create a completely new pipeline?\n\n**SQL**\n\n-\n I need SQL to generate some data. Where should I put it?\n\n**Infrastructure**\n\n-\n How does our model serving work? Is there a diagram?\n\n-\n What upstream systems does my model depend on that I should be\n aware of?\n\n**Communication**\n\n-\n I can't figure something out. Who (and how) should I contact?\n\n### Keep in mind\n\nWhat constitutes \"ML best practices\" can differ between companies, teams, and\nindividuals. For\nexample, some team members might consider experimental Colabs as the main\ndeliverable, while others will want to work in R. Some might have a passion for\nsoftware engineering, someone else thinks monitoring is the most important\nthing, yet someone else is aware of good feature productionization practices but\nwants to use Scala. Everyone is \"right\" from their own perspective and if\nsteered correctly, the mix will be a powerhouse. If not, it can be a mess.\n\nEstablishing the tools, processes, and infrastructure the team will use before\nwriting a line of code can be the difference between the project failing after\ntwo years or successfully launching a quarter ahead of schedule.\n\nPerformance evaluations\n-----------------------\n\nDue to the ambiguity and uncertainty inherent in ML, people managers need to set\nclear expectations and define deliverables early.\n\nWhen determining expectations and deliverables, consider how they'll be\nevaluated if a project or approach isn't successful. In other words, it's\nimportant that a team member's performance isn't directly connected to the\nsuccess of the project. For example, it's not uncommon for team members to spend\nweeks investigating solutions that are ultimately unsuccessful. Even in these\ncases, their high-quality code, thorough documentation, and effective\ncollaboration should contribute positively toward their evaluation.\n\n### Check Your Understanding\n\nWhat is the primary reason for having excellent process documentation and establishing common practices? \nIncrease project velocity. \nCorrect. Having good process documentation and establishing common practices reduces confusion and streamlines the development process. \nEstablish best practices across a company. \nBecause ML development varies from project to project, teams typically establish their own sets of best practices to work effectively and increase their velocity. \nEnsure all engineers on the team have the same level of expertise. \nML teams typically have engineers with a variety of skills and knowledge. Process documentation helps engineers align on best practices to increase their velocity."]]