Azure Machine Learning のデータ (v1)

適用対象:Azure CLI ml 拡張機能 v1

適用対象:Python SDK azureml v1

Azure Machine Learning を使用すると、クラウド内のデータに簡単に接続できます。 基になるストレージ サービスに抽象レイヤーが用意されているため、ストレージの種類に固有のコードを記述しなくても、データに安全にアクセスし、操作することができます。 Azure Machine Learning には、次のデータ機能も用意されています。

  • Pandas および Spark DataFrames による相互運用性
  • データ系列のバージョン管理と追跡
  • データのラベル付け
  • データの誤差の監視

データ ワークフロー

クラウドベースのストレージ ソリューションでデータを使用できる場合は、次のデータ配信ワークフローをお勧めします。 このワークフローでは、Azure のクラウドベースのストレージ サービスに Azure ストレージアカウントとデータがあることを前提としています。

  1. 接続情報をご自身の Azure ストレージに格納するための Azure Machine Learning データストアを作成します。

  2. そのデータストアから Azure Machine Learning データセットを作成し、基になるお使いのストレージにある特定のファイルを指すように指定します。

  3. そのデータセットを機械学習の実験で使用するには、以下のいずれかを実行します

    • モデル トレーニングのために実験のコンピューティング先にマウントします。

      OR

    • 自動機械学習 (自動 ML) 実験の実行、機械学習パイプライン、または Azure Machine Learning デザイナーなどの Azure Machine Learning ソリューションで直接使用します。

  4. データ ドリフトを検出するために、モデルの出力データセット用のデータセット モニターを作成します。

  5. データ ドリフトが検出された場合は、入力データセットを更新し、それに応じてモデルを再トレーニングします。

次の図は、この推奨ワークフローの視覚的なデモンストレーションを示しています。

Azure ストレージ サービスからデータストアに遷移し、そこからデータセットに遷移することを示す図。

データストアを使用してストレージに接続する

Azure Machine Learning データストアでは、Azure のデータ ストレージへの接続情報が安全に保持されるため、ご自身のスクリプトでそのコードを書く必要はありません。 データストアを登録および作成すると、ストレージ アカウントに簡単に接続し、基になるストレージ サービスのデータにアクセスできます。

データストアとして登録可能な、Azure 内でサポートされているクラウドベースのストレージ サービスは次のとおりです。

  • Azure BLOB コンテナー
  • Azure ファイル共有
  • Azure Data Lake
  • Azure Data Lake Gen2
  • Azure SQL データベース
  • Azure Database for PostgreSQL
  • Databricks ファイル システム
  • Azure Database for MySQL

ヒント

サービス プリンシパルや Shared Access Signatures (SAS) トークンなどのストレージ サービスにアクセスするための、資格情報ベースの認証を使用して、データストアを作成できます。 これらの資格情報には、ワークスペースへの "閲覧者" アクセス権を持つユーザーがアクセスできます。

これが問題になる場合は、ID ベースのデータ アクセスを使用してストレージ サービスに接続するデータストアを作成します

データセットを使用してストレージ内のデータを参照する

Azure Machine Learning のデータセットは、データのコピーではありません。 データセットを作成すると、ストレージ サービスのデータへの参照とそのメタデータのコピーが作成されます。

データセットは遅延評価され、データは既存の場所に残るため:

  • 追加のストレージ コストは発生しません。
  • 意図せずに元のデータ ソースを変更するリスクはありません。
  • ML ワークフローのパフォーマンスが向上します。

ストレージ内のデータを操作するには、お使いのデータを、機械学習タスク用の使用可能なオブジェクトとしてパッケージ化するために、データセットを作成します。 データ インジェストが複雑になることなく、さまざまな実験でデータセットを共有して再利用できるように、データセットをワークスペースに登録します。

データセットは、ローカル ファイル、パブリック URL、Azure Open Datasets、または Azure ストレージ サービスから、データストアを介して作成できます。

データセットには、次の 2 つの種類があります。

  • FileDataset は、データストアまたはパブリック URL 内の 1 つまたは複数のファイルを参照します。 データがクレンジング済みで、トレーニング実験で使用できる状態になっている場合は、コンピューティング先に、FileDatasets によって参照されているファイルをダウンロードまたはマウントできます。

  • TabularDataset は、指定されたファイルまたはファイルのリストを解析して、データを表形式で表します。 TabularDataset を Pandas または Spark DataFrame に読み込んで、さらに操作とクレンジングを行うことができます。 TabularDatasets を作成できるデータ形式の完全な一覧については、TabularDatasetFactory クラスに関するページをご覧ください。

追加のデータセット機能については、次のドキュメントを参照してください。

データを処理する

データセットを使用すると、Azure Machine Learning 機能とのシームレスな統合を通じて、数多くの機械学習タスクを実行できます。

データ ラベル付けプロジェクトを使用してデータにラベルを付ける

大量のデータにラベルを付けることは、多くの場合、機械学習プロジェクトでは困難でした。 画像の分類やオブジェクトの検出など、Computer Vision コンポーネントを使用するそれらには、通常、何千ものイメージとそれに対応するラベルが必要です。

Azure Machine Learning を使用すると、ラベル付けプロジェクトの作成、管理、監視を一元的に行うことができます。 ラベル付けプロジェクトは、データ、ラベル、チーム メンバーの間の調整に役立ち、ラベル付けタスクをより効率的に管理できるようになります。 現在サポートされているタスクは、複数ラベルまたは多クラスでの画像分類と、境界ボックスを使用したオブジェクト識別です。

画像ラベル付けプロジェクトまたはテキスト ラベル付けプロジェクトを作成し、機械学習の実験で使用するためのデータセットを出力します。

データの誤差を使用してモデルのパフォーマンスを監視する

機械学習においてデータの誤差とは、モデルのパフォーマンスの低下につながるモデルの入力データの変更のことです。 これはモデルの精度が時間の経過と共に低下する主な理由の 1 つであるため、データ ドリフトの監視はモデルのパフォーマンスに関する問題の検出に役立ちます。

データセット内の新しいデータに対するデータ ドリフトを検出してアラートを生成する方法の詳細については、データセット モニターの作成に関する記事を参照してください。

次のステップ