メインコンテンツまでスキップ

データプロファイリングによるデータおよびAI資産のモニタリング

この記事では、データプロファイリングについて説明します。データをモニタリングする利点について説明し、データプロファイリングのコンポーネントと使用法の概要を示します。

データプロファイリングを使用すると、アカウント内のすべてのテーブルにあるデータの統計的プロパティと品質をモニタリングできます。また、モデルの入力と予測を含む推論テーブルをモニタリングすることで、機械学習モデルとモデルサービングEndpointのパフォーマンスを追跡することもできます。この図は、Databricksにおけるデータおよび機械学習パイプラインを通るデータの流れと、モニタリングを使用してデータ品質とモデルのパフォーマンスを継続的に追跡する方法を示しています。

データプロファイリングを使用する理由?

データから有用な知見を引き出すには、データの品質に自信を持つ必要があります。データのモニタリングは、経時的なデータの品質と一貫性を追跡および確認するのに役立つ定量的な測定基準を提供します。テーブルのデータ分布または対応するモデルのパフォーマンスの変化を検出した場合、データプロファイリングによって作成されたテーブルは、その変化をキャプチャしてアラートを送信し、原因の特定に役立ちます。

データプロファイリングは、次のような質問に答えるのに役立ちます:

  • データの完全性はどうなっていて、時間とともにどのように変化しているのか。たとえば、現在のデータに含まれるNULL値または0値の割合はどのくらいなのか。また増加しているのか。
  • データの統計的分布はどうなっていて、時間とともにどのように変化しているのか。たとえば、ある数値列の90パーセンタイルはどこにあるのか。カテゴリー列の値の分布はどうなっていて、前日からどう変化しているのか。
  • 現在のデータと既知のベースラインの間、またはデータの経時的変化の中に、ドリフトはあるのか。
  • データのサブセットまたはスライスの統計的分布やドリフトはどうなっているのか。
  • 機械学習モデルの入力および予測は、時間とともにどのように変化しているのか。
  • モデルのパフォーマンスはどのように推移しているのか。モデルバージョンAのパフォーマンスはバージョンBよりも優れているのか。

さらに、データプロファイリングを使用すると、観測の時間粒度を制御し、カスタムメトリクスを設定できます。

Databricksでのデータプロファイリングの仕組み

Databricksでテーブルをモニタリングするには、そのテーブルに接続するモニターを作成します。機械学習モデルのパフォーマンスをモニタリングするには、そのモデルの入力と対応する予測を保持する推論テーブルにモニターをアタッチします。

データプロファイリングでは、時系列、スナップショット、推論という以下の種類の分析が提供されます。

プロファイルのタイプ

説明

時系列

タイムスタンプ列に基づく時系列データセットを含むテーブルに使用します。モニタリングは、時系列の時間ベースのウィンドウにわたってデータ品質メトリクスを計算します。

推論

モデルのリクエストログを含むテーブルに使用します。各行はリクエストで、タイムスタンプ、モデル入力、対応する予測、およびグラウンドトゥルースラベル(オプション)の列があります。モニタリングは、リクエストログの時間ベースのウィンドウにわたって、モデルのパフォーマンスとデータ品質メトリクスを比較します。

スナップショット

他のすべてのタイプのテーブルに使ってください。モニタリングは、テーブル内のすべてのデータに対してデータ品質メトリクスを計算します。更新のたびにテーブル全体が処理されます。

プロファイルのタイプ

説明

時系列

タイムスタンプ列に基づく時系列データセットを含むテーブルに使用します。モニタリングは、時系列の時間ベースのウィンドウにわたってデータ品質メトリクスを計算します。

推論

モデルのリクエストログを含むテーブルに使用します。各行はリクエストで、タイムスタンプ、モデル入力、対応する予測、およびグラウンドトゥルースラベル(オプション)の列があります。モニタリングは、リクエストログの時間ベースのウィンドウにわたって、モデルのパフォーマンスとデータ品質メトリクスを比較します。

スナップショット

他のすべてのタイプのテーブルに使ってください。モニタリングは、テーブル内のすべてのデータに対してデータ品質メトリクスを計算します。更新のたびにテーブル全体が処理されます。

このセクションでは、データプロファイリングが使用する入力テーブルと、それが生成するメトリクステーブルについて簡単に説明します。

プライマリテーブルとベースラインテーブル

「プライマリテーブル」と呼ばれる監視対象のテーブルに加えて、必要に応じて、ドリフトまたは時間の経過に伴う値の変化を測定するための参照として使用するベースラインテーブルを指定できます。ベースラインテーブルは、データがどのようになるかを示すサンプルがある場合に便利です。アイデアは、期待されるデータ値と分布と比較することでドリフトが計算されるというものです。

ベースラインテーブルには、統計分布、個々の列の分布、欠損値、およびその他の特性の観点から、入力データの予想される品質を反映するデータセットが含まれている必要があります。監視対象テーブルのスキーマと一致する必要があります。例外は、時系列プロファイルまたは推論プロファイルで使用されるテーブルのタイムスタンプ列です。主表またはベースライン表のいずれかで列が欠落している場合、モニタリングはベストエフォート型ヒューリスティックを使用して出力メトリクスを計算します。

スナップショットプロファイルを使用するモニターの場合、ベースラインテーブルにはデータのスナップショットが含まれており、この分布によって許容できる品質基準が示されています。たとえば成績分布データでは、成績が均等に分布していた以前のクラスを基準として設定することができます。

時系列プロファイルを使用するモニターの場合、ベースラインテーブルには時間枠を示すデータが含まれており、このデータの分布によって許容できる品質基準が示されています。たとえば気象データの場合、気温が予想される平年の温度に近い週、月、または年にベースラインを設定できます。

推論プロファイルを使用するモニターの場合、ベースラインに適した選択は、モニタリング対象のモデルをトレーニングするまたは検証するために使用されたデータです。このようにして、ユーザーは、モデルがトレーニングおよび検証された内容に対してデータがdriftした場合にアラートを受け取ることができます。このテーブルには、プライマリテーブルと同じ特徴列が含まれている必要があり、さらに、データが一貫して集計されるように、プライマリテーブルのInferenceLogに指定されたものと同じmodel_id_colが必要です。理想的には、モデルを評価するために使用されたテストセットまたは検証セットは、同等のモデル品質メトリクスを保証するために使用されるべきです。

メトリクステーブル

テーブルモニターは2つのメトリクステーブルを作成します。メトリクス値は、テーブル全体、およびモニター作成時に指定した時間枠とデータサブセット(または「スライス」)に対して計算されます。さらに、推論分析の場合、各モデルIDに対してメトリクスがコンピュートされます。

  • プロファイルメトリクステーブルには、サマリー統計が含まれています。
  • driftメトリクステーブルには、時間の経過に伴うデータのdriftに関する統計が含まれます。ベースラインテーブルが提供されている場合は、ベースライン値に対するdriftも監視されます。

メトリクステーブルはDeltaテーブルであり、指定されたUnity Catalogスキーマに保存されます。Databricks UIを使用してこれらのテーブルを表示したり、Databricks SQLを使用してクエリーを実行したりすることができます。

モニターを作成

Databricks UIを使用してデータモニターを作成するには、Databricks UIを使用したモニターの作成を参照してください。

Databricks SDKまたはREST APIを使用してプログラムでモニターを作成するには、Databricks APIを使用したモニターの作成を参照してください。