適用対象:Azure Machine Learning SDK v1 for Python
重要
この記事では、Azure Machine Learning SDK v1 の使用に関する情報を提供します。 SDK v1 は 2025 年 3 月 31 日の時点で非推奨となり、サポートは 2026 年 6 月 30 日に終了します。 SDK v1 は、その日付までインストールして使用できます。
2026 年 6 月 30 日より前に SDK v2 に移行することをお勧めします。 SDK v2 の詳細については、「 Azure Machine Learning Python SDK v2 と SDK v2 リファレンスとは」を参照してください。
この記事では、ストレージ制限エラーを回避し、待機時間を実験するために、実験で入力ファイルをどこに保存し、出力ファイルをどこに書き込むかについて説明します。
コンピューティング先でトレーニング ジョブを実行すると、それらが外部環境から分離されます。 この設計の目的は、実行の再現性と移植性を確保することです。 同一または別のコンピューティング ターゲットで、同じスクリプトを 2 回実行すると、同じ結果が得られます。 この設計により、コンピューティング先を、それぞれ完了後に実行されているジョブとのアフィニティがないステートレスな評価リソースとして扱うことができます。
入力ファイルを保存する場所
コンピューティング先またはローカル コンピューターで実験を開始する前に、必要なファイルがそのコンピューティング先で使用可能なことを確認する必要があります。 たとえば、コードで実行する必要がある依存関係ファイルとデータ ファイルなどです。
Azure Machine Learning では、ソース ディレクトリ全体をコピーすることで、トレーニング スクリプトが実行されます。 アップロードしたくない機密データがある場合は、.ignore ファイルを使用するか、ソース ディレクトリに含めないようにします。 代わりに、データストアを使用してデータにアクセスしてください。
実験スナップショットのストレージ制限は、300 MB または 2,000 ファイル (あるいはその両方) です。
このため、次のことをお勧めします。
Azure Machine Learning のデータセットにファイルを格納します。 データセットを使用すると、実験の待ち時間の問題を防止して、リモート コンピューティング先からデータにアクセスできるという利点があります。 Azure Machine Learning では、データセットの認証とマウントを処理します。 データセットを入力データ ソースとしてトレーニング スクリプトに指定する方法については、データセットを使用したトレーニングに関する記事を参照してください。
数個のデータ ファイルと依存関係スクリプトのみが必要であり、データストアを使用できない場合は、 トレーニング スクリプトと同じフォルダー ディレクトリにファイルを配置します。 このフォルダーを
source_directory
ディレクトリとして、トレーニング スクリプトで直接指定するか、またはトレーニング スクリプトを呼び出すコードで指定します。
実験スナップショットのストレージ制限
実験では、Azure Machine Learning により、ジョブを構成するときに提案したディレクトリに基づいてコードの実験スナップショットが自動的に作成されます。 パイプラインの場合、ディレクトリはステップごとに構成されます。
これには、合計 300 MB または 2,000 ファイル (あるいはその両方) の制限があります。 この制限を超えると、次のエラーが表示されます。
While attempting to take snapshot of .
Your total snapshot size exceeds the limit of 300.0 MB
このエラーを解決するには、実験ファイルをデータストアに格納します。 データストアを使用できない場合は、以下の表に可能な代替解決策を示します。
ファイルを書き込む場所
トレーニング実験は分離されているため、ジョブで行われたファイルへの変更が必ずしも環境の外部で保持されるとは限りません。 スクリプトでコンピューティングに対してローカルなファイルが変更された場合、その変更は次回の実験ジョブでは保持されず、クライアント マシンに自動的に反映されることもありません。 したがって、1 回目の実験ジョブで行われた変更が 2 回目に影響を与えることはなく、また与えるべきではありません。
変更を書き込むときは、OutputFileDatasetConfig オブジェクトを使用して、Azure Machine Learning データセットを介してストレージにファイルを書き込むことをお勧めします。 OutputFileDatasetConfig の作成方法に関する記事を参照してください。
それ以外の場合は、./outputs
や ./logs
フォルダーにファイルを書き込みます。
重要
outputs と logs の 2 つのフォルダーは、Azure Machine Learning によって特別に扱われます。 トレーニング中に ./outputs
フォルダーと ./logs
フォルダーにファイルを書き込んだ場合は、それらのファイルがジョブ履歴に自動的にアップロードされるので、ジョブが完了するとそれらのファイルにアクセスできるようになります。
状態メッセージやスコアリングの結果などの出力の場合は、ファイルを
./outputs
フォルダーに書き込むことで、それらがジョブ履歴に成果物として保持されます。 このフォルダーに書き込むファイルの数とサイズに注意してください。内容がジョブ履歴にアップロードされるときに待ち時間が発生する可能性があります。 待機時間が心配な場合は、データストアにファイルを書き込むことをお勧めします。書き込まれたファイルをジョブ履歴にログとして保存するには、ファイルを
./logs
フォルダーに書き込みます。 この方法は、ログがリアルタイムでアップロードされるため、リモート ジョブからのライブ更新ストリーミングに適しています。
次のステップ
ストレージからデータへのアクセス方法について説明します。
詳細については、モデルのトレーニングとデプロイのためのコンピューティング先の作成に関するページを参照してください。