Azure Machine Learning のデータの概念

Azure Machine Learning を使用すると、ローカル コンピューターまたは既存のクラウドベースのストレージ リソースからデータをインポートできます。 この記事では、Azure Machine Learning データの主要な概念について説明します。

データストア

Azure Machine Learning データストアは、"既存の" Azure ストレージ アカウントへの "参照" です。 Azure Machine Learning データストアには、次の利点があります。

  • さまざまなストレージの種類 (BLOB、ファイル、ADLS) を操作するための一般的で使いやすい API。
  • チームでの運用に役立つデータストアを簡単に検出できます。
  • 資格情報ベースのアクセス (サービス プリンシパル、SAS、キー) の場合、Azure Machine Learning データストアを使用すると接続情報がセキュリティで保護されます。 このため、その情報をスクリプトに配置する必要がありません。

既存の Azure ストレージ アカウントでデータストアを作成する場合、次の 2 つの異なる認証方法から選択できます。

  • 資格情報ベース - サービス プリンシパル、Shared Access Signature (SAS) トークン、またはアカウント キーを使用して、データ アクセスを認証します。 "閲覧者" のワークスペース アクセス権を持つユーザーは、資格情報にアクセスできます。
  • ID ベース: Microsoft Entra ID またはマネージド ID を使ってデータ アクセスを認証します。

次の表は、Azure Machine Learning データストアで作成できる Azure クラウドベースのストレージ サービスをまとめたものです。 さらに、この表には、それらのサービスにアクセスできる認証の種類がまとめられています。

サポートされているストレージ サービス 資格情報ベースの認証 ID ベースの認証
Azure BLOB コンテナー
Azure ファイル共有
Azure Data Lake Gen1
Azure Data Lake Gen2

データストアの詳細については、「データストアの作成」を参照してください。

既定のデータストア

各 Azure Machine Learning ワークスペースには、次のデータストアを含む既定のストレージ アカウント (Azure ストレージ アカウント) があります。

ヒント

ワークスペースの ID を見つけるには、Azure portal のワークスペースに移動します。 [設定] を展開し、[プロパティ] を選択します。 ワークスペース ID が表示されます。

Datastore name (データストア名) データ ストレージの種類 データ ストレージ名 説明
workspaceblobstore BLOB コンテナー azureml-blobstore-{workspace-id} データのアップロード、ジョブ コード スナップショット、パイプライン データ キャッシュを格納します。
workspaceworkingdirectory ファイル共有 code-{GUID} ノートブック、コンピューティング インスタンス、プロンプト フローのデータを格納します。
workspacefilestore ファイル共有 azureml-filestore-{workspace-id} データ アップロード用の代替コンテナー。
workspaceartifactstore BLOB コンテナー azureml メトリック、モデル、コンポーネントなどの資産のストレージ。

データ型

URI (ストレージの場所) を使用すると、ファイル、フォルダー、またはデータ テーブルを参照できます。 機械学習ジョブの入出力定義には、次の 3 種類のデータのいずれかが必要です。

Type V2 API V1 API 標準シナリオ V2/V1 API の違い
[最近使ったファイル]
1 つのファイルを参照します
uri_file FileDataset 1 つのファイルを読み取る、または書き込む - ファイルには任意の形式を指定できます。 V2 API での新しい種類。 V1 API では、ファイルが常にコンピューティング先ファイルシステム上のフォルダーにマップされるため、このマッピングでは os.path.join が必要でした。 V2 API では、1 つのファイルがマップされます。 この方法により、コード内でその場所を参照できます。
フォルダー
1 つのフォルダーを参照する
uri_folder FileDataset Parquet または CSV ファイルのフォルダーを Pandas または Spark に読み込む、あるいは書き込む必要があります。

フォルダー内にある画像、テキスト、オーディオ、動画のファイルを使用したディープ ラーニング。
V1 API では、FileDataset に、フォルダーからファイルのサンプルを取得できる関連エンジンがありました。 V2 API では、フォルダーはコンピューティング先ファイルシステムへの単純なマッピングとなります。
Table
データ テーブルを参照する
mltable TabularDataset 頻繁に変更される複雑なスキーマがあるか、大きな表形式データのサブセットが必要です。

テーブルを使用した AutoML。
V1 API では、Azure Machine Learning バックエンドにデータ具体化のブループリントが格納されていました。 その結果、TabularDataset は Azure Machine Learning ワークスペースがある場合にのみ機能しました。 mltable では、データ具体化のブループリントを "ご使用の" ストレージに格納します。 この保存場所は、"AzureML から切断された状態"(ローカル、オンプレミスなど) で使用できることを意味します。 V2 API では、ローカルからリモートのジョブへの移行が簡単になります。 詳細については、「Azure Machine Learning でのテーブルの操作」を参照してください。

URI

URI (Uniform Resource Identifier) は、ローカル コンピューター上のストレージの場所、Azure ストレージ、または公開されている http(s) の場所を表します。 次の例は、さまざまなストレージ オプションの URI を示しています。

保存先 URI の例
Azure Machine Learning データストア azureml://datastores/<data_store_name>/paths/<folder1>/<folder2>/<folder3>/<file>.parquet
ローカル コンピューター ./home/username/data/my_data
公開されている http(s) サーバー https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv
BLOB ストレージ wasbs://<containername>@<accountname>.blob.core.windows.net/<folder>/
Azure Data Lake (gen2) abfss://<file_system>@<account_name>.dfs.core.windows.net/<folder>/<file>.csv
Azure Data Lake (gen1) adl://<accountname>.azuredatalakestore.net/<folder1>/<folder2>

URI は Azure Machine Learning ジョブによってコンピューティング先ファイルシステムにマップされます。 このマッピングは、URI を使用または生成するコマンドにおいて、その URI がファイルやフォルダーのように機能することを意味します。 URI では、Microsoft Entra ID (既定) またはマネージド ID のいずれかを使ってストレージ サービスに接続するための ID ベースの認証を使います。 Azure Machine Learning データストアの URI では、ID ベースの認証か、シークレットが公開されない資格情報ベース (サービス プリンシパル、SAS トークン、アカウント キーなど) を適用できます。

URI は、Azure Machine Learning ジョブへの "入力" または "出力" として機能し、4 つの異なる "モード" オプションのいずれかを使用してコンピューティング先ファイルシステムにマップできます。

  • 読み取り "専用" マウント (ro_mount): URI は、コンピューティング先ファイルシステムに "マウント" されるストレージの場所を表します。 マウントされたデータの場所では、読み取り専用の出力のみがサポートされます。
  • 読み取り/"書き込み" マウント (rw_mount): URI は、コンピューティング先ファイルシステムに "マウント" されるストレージの場所を表します。 マウントされたデータの場所に対して、出力の読み取り "および" データ書き込みの両方がサポートされます。
  • ダウンロード (download): URI は、コンピューティング先ファイルシステムに "ダウンロードされる" データを含むストレージの場所を表します。
  • アップロード (upload): コンピューティング先の場所に書き込まれるすべてのデータは、URI で表されるストレージの場所に "アップロード" されます。

さらに、直接モードでジョブ入力文字列として URI を渡すことができます。 次の表は、入力と出力に使用できるモードの組み合わせをまとめたものです。

ジョブ
入力または出力
upload download ro_mount rw_mount direct
入力
出力

詳細については、「ジョブでのデータへのアクセス」を参照してください。

データ ランタイム機能

Azure Machine Learning では、次の 3 つの目的のいずれかに独自の "データ ランタイム"を使用します。

  • マウント/アップロード/ダウンロードのため
  • ストレージ URI をコンピューティング ターゲット ファイルシステムにマップするため
  • Azure Machine Learning テーブル (mltable) を使用して表形式データを pandas/spark に具体化するため

Azure Machine Learning データ ランタイムは、機械学習タスクの "高速と高効率"を実現するように設計されています。 次の利点があります。

  • Rust 言語アーキテクチャ。 Rust 言語は、高速で、メモリ効率が高いことで知られています。
  • 軽量。Azure ML データ ランタイムには、JVM などの他のテクノロジへの依存関係が "ない" ため、ランタイムはコンピューティング先にすばやくインストールされます。
  • マルチプロセス (並列) データ読み込み。
  • CPU のバックグラウンド タスクとして動作するデータの事前フェッチにより、ディープ ラーニング操作での GPU の使用率を高めます。
  • クラウド ストレージに対するシームレスな認証。

データ資産

Azure Machine Learning データ資産は、Web ブラウザーのブックマーク (お気に入り) に似ています。 最も頻繁に使用されるデータを指す長いストレージ パス (URI) を覚える代わりに、データ資産を作成し、フレンドリ名を使ってその資産にアクセスできます。

データ資産を作成すると、データ ソースの場所への ''参照'' とそのメタデータのコピーも作成されます。 データは既存の場所に残るため、追加のストレージ コストは発生せず、データ ソースの整合性を損ないません。 データ資産は、Azure Machine Learning データストア、Azure Storage、パブリック URL、またはローカル ファイルから作成できます。

データ資産の詳細については、データ資産の作成に関する記事を参照してください。

次のステップ