機械学習資産にソース管理を使用する
Proseware 糖尿病分類モデルは、1 台のノート PC 上の Jupyter ノートブックで開始されました。 データ サイエンティスト、ML エンジニア、レビュー担当者など、チームが成長すると、そのアプローチは分解されます。 すべてのユーザーが同じコードから作業し、お互いの変更を確認し、すべてのモデルを生成したコードまでトレースできる場所が必要です。
Git に属するもの
Git リポジトリは、モデルとそのトレーニング プロセスを定義する資産に適したホームです。
- トレーニングスクリプトと前処理スクリプト - データ準備とモデルトレーニングを実行するPythonファイル
- ジョブとコンポーネントの定義 — Azure Machine Learning のコマンド ジョブとパイプライン コンポーネントを記述する YAML ファイル
-
環境ファイルと依存関係ファイル -
requirements.txt、conda.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、シークレット ストアに格納しますか? 理由を説明します。