再トレーニング用の設計
機械学習操作 (MLOps) ソリューションで運用環境用にモデルを準備する場合は、再トレーニング用に設計する必要があります。
一般に、モデルを再トレーニングする場合は、2 つの方法があります。
- スケジュールに基づいて:常に最新バージョンのモデルが必要であることがわかっている場合は、スケジュールに基づいて、毎週、または毎月、モデルを再トレーニングすることを決定できます。
- メトリックに基づいて:必要に応じてモデルの再トレーニングのみを行う場合は、モデルのパフォーマンスとデータの誤差を監視して、モデルを再トレーニングする必要があるタイミングを決定できます。
どちらの場合も、再トレーニングに関して設計する必要があります。 モデルを簡単に再トレーニングするには、自動化に備えてコードを準備する必要があります。
コードを準備する
理想的には、ノートブックではなくスクリプトを使用してモデル を トレーニングする必要があります。 スクリプトの方が自動化に適しています。 スクリプトにパラメーターを追加し、トレーニング データやハイパーパラメーター値などの入力パラメーターを変更できます。 スクリプトをパラメーター化すると、必要に応じて新しいデータでモデルを簡単に再トレーニングできます。
コードの準備に関するもう 1 つの重要な点は、中央リポジトリでコードをホストすることです。 リポジトリとは、プロジェクトに関連するすべてのファイルを保存できる場所のことです。 機械学習プロジェクトでは、Git ベースのリポジトリは ソース管理を実現するのに最適です。
プロジェクトにソース管理を適用すると、プロジェクトで簡単に共同作業できます。 コードを更新することでモデルを改善するユーザーを割り当てることができます。 過去の変更を確認でき、変更がメイン リポジトリにコミットされる前に確認できます。
コードを自動化する
コードを自動的に実行したい場合は、スクリプトを実行するように Azure Machine Learning ジョブを構成できます。 Azure Machine Learning では、パイプラインを作成してスクリプトの実行をスケジュールすることもできます。
Azure Machine Learning の外部で発生するトリガーまたはイベントに基づいてスクリプトを実行する場合は、別のツールから Azure Machine Learning ジョブをトリガーできます。
MLOps プロジェクトでよく使われる 2 つのツールは、Azure DevOps と GitHub (Actions) です。 どちらのツールでも、自動化パイプラインを作成して、Azure Machine Learning パイプラインをトリガーできます。
データ サイエンティストは、Azure Machine Learning Python SDK を使用することをお勧めします。 ただし、Azure DevOps や GitHub などのツールを使用する場合は、代わりに Azure Machine Learning CLI 拡張機能を使用して必要なリソースとジョブを構成することをお勧めします。 Azure CLI はタスクを自動化するために設計されており、Azure DevOps と GitHub で使用する方が簡単な場合があります。
ヒント
MLOps の詳細については、機械学習操作 (MLOps) の概要を調べるか、GitHub Actions を使用して最初の MLOps 自動化パイプラインを構築してみてください