再トレーニングに関する設計を行う

完了

機械学習の運用 (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 自動化パイプラインを構築してみてください