ML プロジェクトには、ML に関連するさまざまなスキル、専門知識、責任を持つメンバーが参加するチームが必要です。一般的な ML チームで最も一般的なロールは次のとおりです。
ロール | 知識とスキル | 主な成果物 |
---|---|---|
ML プロダクト マネージャー | ML プロダクト マネージャーは、ML の長所と短所、ML 開発プロセスを深く理解しています。ML チーム、エンドユーザー、その他の関係者と直接連携して、ビジネス上の問題を ML ソリューションに適合させます。プロダクトのビジョンを策定し、ユースケースと要件を定義し、プロジェクトを計画して優先順位を付けます。 |
プロダクト要件ドキュメント(PRD)。 |
エンジニアリング マネージャー | エンジニアリング マネージャーは、チームの優先事項を設定し、伝え、達成することでビジネス目標を達成します。ML プロダクト マネージャーと同様に、ML ソリューションをビジネスの問題に合わせます。チームメンバーに明確な期待値を設定し、 パフォーマンス評価の実施、キャリア開発と 専門能力開発のためのテクノロジーです |
設計ドキュメント、プロジェクト計画、パフォーマンス評価 |
データ サイエンティスト | データ サイエンティストは、定量的分析と統計分析を使用して、データから分析情報と価値を抽出します。これらは本番環境で モデルの解釈可能性に関する支援が含まれます。 | ビジネス上の疑問に答えるレポートとデータの可視化 統計的分析によって導き出されます。 |
ML エンジニア | ML エンジニアは、ML モデルの設計、構築、本番環境への導入、管理を行います。 ML を深く理解し、優秀なソフトウェア エンジニアである ベスト プラクティスを学びました。 | ビジネス目標を達成するのに十分な予測品質を持つデプロイ済みモデル。 |
データ エンジニア | データ エンジニアは、大量のデータを保存、集約、処理するためのデータ パイプラインを構築します。元データを収集してモデルのトレーニングとサービングに役立つ形式に変換するためのインフラストラクチャとシステムを開発します。データエンジニアは データに対する責任を負います。 | 必要なモニタリングとツールを備えた、完全に運用化されたデータ パイプライン アラートです。 |
デベロッパー オペレーション(DevOps)エンジニア | DevOps エンジニアは、ML モデルのサービス提供インフラストラクチャを開発、デプロイ、スケーリング、モニタリングします。 | モデルの動作のサービング、モニタリング、テスト、アラートを自動化するプロセス。 |
成功する ML プロジェクトでは、各ロールが適切に代表されるチームがあります。小規模なチームでは 個人がタスクに対処し 責任共有について学びました。
チームのプラクティスを確立する
ML 開発ではロール、ツール、フレームワークが大きく異なるため、優れたプロセスのドキュメント化を通じて一般的なプラクティスを確立することが重要です。たとえば、あるエンジニアは、モデルのトレーニングを開始するには適切なデータを取得するだけで十分だと考えるかもしれません。一方、より責任あるエンジニアは、データセットが正しく匿名化されていることを検証し、そのメタデータと来歴を記録します。エンジニアがプロセスと設計パターンの共通の定義を共有することで、混乱を軽減し、チームの速度を向上させることができます。
プロセスのドキュメント
プロセスのドキュメントには、チームが ML 開発に使用するツール、インフラストラクチャ、プロセスを定義する必要があります。優れたプロセス ドキュメントは、新規と現行の方向性をすり合わせるのに役立つ できます。次の種類の質問に回答する必要があります。
- モデルのデータはどのように生成されますか。
- データを調査、検証、可視化する方法
- トレーニング データの入力特徴またはラベルを変更するにはどうすればよいですか?
- データ生成、トレーニング、評価のパイプラインをカスタマイズするにはどうすればよいですか?
- 入力特徴やラベルの変更に対応するようにモデル アーキテクチャを変更するにはどうすればよいですか?
- テストサンプルの入手方法
- モデルの品質を判断するために、どのような指標を使用しますか?
- モデルを本番環境でリリースするにはどうすればよいか?
- モデルに問題があるかどうかを知るにはどうすればよいでしょうか。
- モデルが依存しているアップストリーム システム
- SQL をメンテナンス可能で再利用可能にするにはどうすればよいですか?
その他の質問
モデル同じプロジェクト内で異なるデータセットでモデルをトレーニングできるか どのように使用するのでしょうか。
新しいテストデータセットをパイプラインに追加するにはどうすればよいですか?
手作りのサンプルでモデルの予測を確認するにはどうすればよいですか?
モデルで生成されたサンプルを見つけ、検証し、可視化するには どこまでミスを犯しますか?
特定の要因に最も影響を及ぼした特徴を特定するには、どうすればよいですか? どうすればよいでしょうか。
特定のサンプル内の予測に最も影響を与えている特徴を把握するにはどうすればよいですか?
選択したデータセットまたはモデルでモデルの予測を計算またはプロットする方法 サンプル?
選択したデータセットに対するモデルの予測の標準指標を計算するにはどうすればよいですか?
カスタム指標を開発して計算する方法
自分のモデルと他のモデルをオフラインで比較するにはどうすればよいですか?
1 つの開発環境で複数のモデル評価のメタ分析を実行できますか?
現在のモデルと 10 か月前のモデルを比較することはできますか?
- </ph>
私は良いモデルを作ったと思います。本番環境でリリースするにはどうすればよいですか?
新しいモデルが本番環境で正しく実行されていることを確認するにはどうすればよいですか?
時間の経過に伴うモデル評価の履歴を取得できますか?
モデルに問題があるかどうかを判断するにはどうすればよいですか?
モデルについて言及しているページ/バグが割り当てられた。 どうすればよいですか?
- </ph>
データの生成/トレーニング/評価をどのようにカスタマイズできるか どうすればよいでしょうか。
まったく新しいパイプラインを、いつ、どのように作成すればよいですか?
- </ph>
SQL を使用してデータを生成する必要があります。どこに配置すればよいですか?
モデルのサービングの仕組み図はありますか?
モデルが依存しているアップストリーム システムにはどのようなものがありますか?
わかりません。どこに、どのように連絡すればよいですか?
留意点
「ML のベスト プラクティス」の内容は、企業、チーム、個人によって異なる場合があります。たとえば、一部のチームメンバーは試験運用版の Colab を主な成果物と見なす一方で、他のチームメンバーは R で作業することを望む場合があります。ソフトウェア エンジニアリングに情熱を持っている人もいれば、モニタリングが最も重要だと考える人もいます。また、優れた機能の製品化手法を知りながら、Scala の使用を希望する人もいます。誰もが自分の視点から「正しい」判断を下します。正しい方向に導けば、その組み合わせは強力なものになります。そうでなければ、混乱する可能性があります。
コードを 1 行も記述する前に、チームが使用するツール、プロセス、インフラストラクチャを確立しておくことで、2 年後にプロジェクトが失敗するか、予定より 4 か月早くリリースに成功するかの違いが生じます。
パフォーマンスの評価
ML には曖昧さと不確実性がつきまといます。そのため、人事マネージャーは明確な期待値を設定し、成果物について早い段階で定義する必要があります。
期待値や成果物を決定する際は、それがどうなるかを考慮する プロジェクトやアプローチがうまくいかなかった場合に評価される。つまり、チームメンバーのパフォーマンスがプロジェクトの成功に直接結び付かないことが重要です。たとえば、チームメンバーが 調査を実施し、最終的にはうまくいかないソリューションを調査しました。このような場合でも、質の高いコード、徹底したドキュメント、効果的なコラボレーションは、評価にプラスに働くはずです。