Databricks レイクハウスモニタリングの概要
この記事では、Databricksレイクハウスモニタリングについて説明します。データを監視する利点について説明し、Databricksレイクハウスモニタリングのコンポーネントと使用法の概要を示します。
Databricksレイクハウスモニタリングを使用すると、アカウント内のすべてのテーブルの統計プロパティとデータの品質を監視できます。また、モデルの入力と予測を含む推論テーブルを監視することで、機械学習モデルとモデルサービングエンドポイントのパフォーマンスを追跡することもできます。この図は、Databricksのデータパイプラインと機械学習パイプラインを通るデータフローと、監視を使用してデータ品質とモデルのパフォーマンスを継続的に追跡する方法を示しています。
なぜ Databricks レイクハウスモニタリングを使用するのですか?
データから有益な知見を引き出すには、データの品質を信頼できるレベルにする必要があります。この場合、データを監視することで定量的な測定が可能になり、そのデータの質と一貫性を長期にわたって追跡し、確認していくことができます。テーブルのデータ分布や対応するモデルのパフォーマンスに変化があったことを検知した場合も、Databricksレイクハウスモニタリングで作成されたテーブルがその変化をキャプチャしてユーザーに警告するため、原因を特定しやすくなります。
Databricksレイクハウスモニタリングは、次のような質問に答えるのに役立ちます。
- データの完全性はどうなっていて、時間とともにどのように変化しているのか。たとえば、現在のデータに含まれるNULL値または0値の割合はどのくらいなのか。また増加しているのか。
- データの統計的分布はどうなっていて、時間とともにどのように変化しているのか。たとえば、ある数値列の90パーセンタイルはどこにあるのか。カテゴリー列の値の分布はどうなっていて、前日からどう変化しているのか。
- 現在のデータと既知のベースラインの間、またはデータの経時的変化の中に、ドリフトはあるのか。
- データのサブセットまたはスライスの統計的分布やドリフトはどうなっているのか。
- 機械学習モデルの入力および予測は、時間とともにどのように変化しているのか。
- モデルのパフォーマンスはどのように推移しているのか。モデルバージョンAのパフォーマンスはバージョンBよりも優れているのか。
さらに、Databricksレイクハウスモニタリングを使用すると、観測の時間粒度を制御し、カスタムメトリクスを設定できます。
必要条件
Databricksレイクハウスモニタリングを使用するには、次のものが必要です。
- ワークスペースで Unity Catalog が有効になっており、Databricks SQL にアクセスできる必要があります。
- Deltaテーブルのみが監視用にサポートされており、テーブルは以下のテーブルタイプのいずれかである必要があります:マネージドテーブル、外部テーブル、ビュー、マテリアライズドビュー、ストリーミングテーブル。
- マテリアライズドビューとストリーミングテーブル上に作成されたモニターは、インクリメンタル処理をサポートしていません。
- すべてのリージョンがサポートされているわけではありません。 リージョン別のサポートについては、表 の「AI と機械学習機能の可用性 」の列「 レイクハウス モニタリング 」を参照してください。
Databricks レイクハウスモニタリングは、ジョブにサーバレス コンピュートを使用します。 レイクハウスモニタリングの経費の追跡に関する情報については、「 レイクハウスモニタリングの経費の表示」を参照してください。
レイクハウスモニタリングがDatabricksでどのように機能するか
Databricksでテーブルを監視するには、そのテーブルに接続するモニターを作成します。機械学習モデルのパフォーマンスを監視するには、そのモデルの入力内容と対応する予測内容が入る推論テーブルにそのモニターを接続します。
Databricksレイクハウスモニタリングには、時系列、スナップショット、推論の種類の分析が用意されています。
プロファイルのタイプ | 説明 |
---|---|
時系列 | タイムスタンプ列に基づく時系列データセットを含むテーブルに使用します。モニタリングは、時系列の時間ベースのウィンドウにわたってデータ品質メトリクスを計算します。 |
推論 | モデルのリクエストログを含むテーブルに使用します。各行はリクエストで、タイムスタンプ、モデル入力、対応する予測、およびグラウンドトゥルースラベル(オプション)の列があります。モニタリングは、リクエストログの時間ベースのウィンドウにわたって、モデルのパフォーマンスとデータ品質メトリクスを比較します。 |
スナップショット | 他のすべてのタイプのテーブルに使ってください。モニタリングは、テーブル内のすべてのデータに対してデータ品質メトリクスを計算します。更新のたびにテーブル全体が処理されます。 |
このセクションでは、Databricksレイクハウスモニタリングで使用している入力テーブルと、そこから生成されるメトリクステーブルについて簡単に説明します。以下の図は、入力テーブル、メトリクステーブル、モニター、ダッシュボードの関係を示しています。
プライマリ テーブルとベースライン テーブル
「プライマリテーブル」と呼ばれる監視対象のテーブルに加えて、必要に応じて、ドリフトまたは時間の経過に伴う値の変化を測定するための参照として使用するベースラインテーブルを指定できます。ベースラインテーブルは、データがどのようになるかを示すサンプルがある場合に便利です。アイデアは、期待されるデータ値と分布と比較することでドリフトが計算されるというものです。
ベースラインテーブルには、統計分布、個々の列の分布、欠損値、およびその他の特性の観点から、入力データの予想される品質を反映するデータセットが含まれている必要があります。監視対象テーブルのスキーマと一致する必要があります。例外は、時系列プロファイルまたは推論プロファイルで使用されるテーブルのタイムスタンプ列です。主表またはベースライン表のいずれかで列が欠落している場合、モニタリングはベストエフォート型ヒューリスティックを使用して出力メトリクスを計算します。
スナップショットプロファイルを使用するモニターの場合、ベースラインテーブルにはデータのスナップショットが含まれており、この分布によって許容できる品質基準が示されています。たとえば成績分布データでは、成績が均等に分布していた以前のクラスを基準として設定することができます。
時系列プロファイルを使用するモニターの場合、ベースラインテーブルには時間枠を示すデータが含まれており、このデータの分布によって許容できる品質基準が示されています。たとえば気象データの場合、気温が予想される平年の温度に近い週、月、または年にベースラインを設定できます。
推論プロファイルを使用するモニターの場合、ベースラインに適した選択は、監視対象のモデルのトレーニングまたは検証に使用されたデータです。このようにして、モデルがトレーニングおよび検証された内容に対してデータがドリフトしたときに、ユーザーはアラートを受け取ることができます。このテーブルには、プライマリテーブルと同じ特徴列が含まれている必要があり、さらに、データが一貫して集計されるように、プライマリテーブルのInferenceLogに指定されたものと同じ model_id_col
が必要です。理想的には、モデル品質メトリクスを比較できるように、モデルの評価に用いられたテストあるいは検証用セットを用いるべきです。
メトリクス テーブルとダッシュボード
テーブルモニターは、2 つのメトリクステーブルとダッシュボードを作成します。 メトリクス値は、テーブル全体、およびモニターの作成時に指定するタイムウィンドウとデータサブセット (または「スライス」) のコンピュートです。 また、推論解析では、モデルIDごとにメトリクスをコンピュートとしています。 メトリクステーブルの詳細については、「 メトリクステーブルのモニタリング」を参照してください。
- profile メトリクス テーブルには、要約統計量が含まれています。 プロファイル メトリクス テーブル スキーマを参照してください。
- drift メトリクス テーブルには、時間の経過に伴うデータのドリフトに関連する統計が含まれています。 ベースライン テーブルが指定されている場合は、ベースライン値に対するドリフトも監視されます。 drift メトリクス テーブル スキーマを参照してください。
メトリクステーブルはDeltaテーブルで、ユーザーが指定したUnity Catalogスキーマに保存されます。Databricks UIを使用してこれらのテーブルを表示したり、Databricks SQLを使用してクエリを実行したり、それらに基づいてダッシュボードやアラートを作成したりすることができます。
Databricks は、モニターごとに、モニターの結果を視覚化して表示するのに役立つダッシュボードを自動的に作成します。 ダッシュボードは完全にカスタマイズ可能です。 「ダッシュボード」を参照してください。
Databricks でレイクハウスモニタリングの使用を開始する
始めるには以下の記事を参照してください。