機械学習資産にソース管理を使用する

完了

Proseware 糖尿病分類モデルは、1 台のノート PC 上の Jupyter ノートブックで開始されました。 データ サイエンティスト、ML エンジニア、レビュー担当者など、チームが成長すると、そのアプローチは分解されます。 すべてのユーザーが同じコードから作業し、お互いの変更を確認し、すべてのモデルを生成したコードまでトレースできる場所が必要です。

Git に属するもの

Git リポジトリは、モデルとそのトレーニング プロセスを定義する資産に適したホームです。

  • トレーニングスクリプトと前処理スクリプト - データ準備とモデルトレーニングを実行するPythonファイル
  • ジョブとコンポーネントの定義 — Azure Machine Learning のコマンド ジョブとパイプライン コンポーネントを記述する YAML ファイル
  • 環境ファイルと依存関係ファイル - requirements.txtconda.yml、またはAzure Machine Learning環境の定義
  • 構成ファイル — ワークスペース名、リソース グループ名、コンピューティング名、およびオートメーションで使用されるその他の参照

Git に属していないもの

一部の資産は、リポジトリではなく、専用のサービスに属しています。

  • データセットと生データ - Azure Machine Learningデータ資産またはAzure Data Lake Storageを使用します。データ ファイルは大きく、コードとは別にバージョン管理されます
  • トレーニング済みのモデル成果物 — 名前付きモデルアセットとバージョン管理されたモデルアセットをAzure Machine Learningに登録します
  • トレーニング実行の出力とログ — Azure Machine Learningはジョブと共にこれらを格納します
  • シークレットと資格情報 - GitHubシークレットまたはAzure Key Vaultを使用します。リポジトリに資格情報を配置すると、読み取りアクセス権を持つすべてのユーザーに公開されます

Tip

便利なテスト: ファイルがテキスト ベースで、モデルの生成 方法 を定義している場合は、Git に属します。 大きなバイナリまたは機密性の高い値の場合は、専用のストアに属します。

機械学習にソース管理が重要な理由

各トレーニング定義が Git に存在する場合、チームは同じバージョンのコードから作業します。 レビュー担当者は、実行の間に何が変更されたかを正確に確認します。 変更によってモデルのパフォーマンスが低下した場合は、前のコミットに戻ることができます。 記録されたコードと環境の定義は、トレーニングの実行を再現するのにも役立ちます。

この追跡可能性は、ブランチ ベースの開発、自動検証、およびすべてのモデル バージョンを、それを生成した変更に接続する監査証跡など、その後のすべての基盤となります。

Tip

1 つのプロジェクト アセットを選択します。 Git、Azure Machine Learning、シークレット ストアに格納しますか? 理由を説明します。