Share via


Azure Databricks AutoML UI を使用して ML モデルをトレーニングする

この記事では、 AutoML と Databricks Machine Learning UI を使用して機械学習モデルをトレーニングする方法について説明します。 AutoML UI では、データセットで分類、回帰、または予測モデルをトレーニングするプロセスについて順を追った説明が行われます。

UI にアクセスするには、以下の手順に従います。

  1. サイドバーで、[新しい > AutoML 実験] を選択します。

    [実験] ページから新しい AutoML 実験を作成することもできます。

    [AutoML 実験の構成] ページが表示されます。 このページでは、AutoML プロセスを構成し、データセット、問題の種類、予測するターゲットまたはラベル列、実験の実行の評価とスコア付けに使用するメトリック、停止条件を指定します。

必要条件

AutoML 実験の「要件」を参照してください。

分類または回帰の問題を設定する

分類または回帰の問題は、AutoML UI を使用して次の手順で設定できます。

  1. [コンピューティング] フィールドで、Databricks Runtime ML が実行されているクラスターを選択します。

  2. [ML 問題のタイプ] ドロップダウン メニューから、[回帰] または [分類] を選択します。 年収など、各観測結果について連続する数値の予測を試みる場合は、[回帰] を選択します。 良い信用リスクかそれとも悪い信用リスクかなど、離散的なクラス セットのいずれかへの各観測値の割り当てを試みる場合は、[分類] を選択します。

  3. [データセット] の下で、[参照] を選択します。

  4. 使用するテーブルに移動し、[選択] をクリックします。 テーブル スキーマが表示されます。

    分類と回帰の問題の場合に限っては、トレーニングに含める列を指定し、カスタムの補完方法を選択できます。

  5. [予測ターゲット] フィールドをクリックします。 スキーマに表示される列の一覧がドロップダウンに表示されます。 モデルによる予測に使用したい列を選択します。

  6. [実験名フィールド] には、既定の名前が表示されます。 変更するには、フィールドに新しい名前を入力します。

さらに、以下を実行できます。

予測の問題を設定する

AutoML UI を使用して、以下の手順で予測の問題を設定することができます。

  1. [コンピューティング] フィールドで、Databricks Runtime 10.0 ML 以降が実行されているクラスターを選択します。
  2. [ML 問題のタイプ] ドロップダウン メニューから、[予測] を選択します。
  3. [データセット] の下で、[参照] をクリックします。 使用するテーブルに移動し、[選択] をクリックします。 テーブル スキーマが表示されます。
  4. [予測ターゲット] フィールドをクリックします。 スキーマに表示される列の一覧がドロップダウン メニューに表示されます。 モデルによる予測に使用したい列を選択します。
  5. [時間列] フィールドをクリックします。 型が timestamp または date のデータセット列を示す、ドロップダウンが表示されます。 時系列の期間を含む列を選択します。
  6. 複数系列の予測の場合は、[時系列識別子] ドロップダウンから個々の時系列を識別する列を選択します。 AutoML では、これらの列ごとに異なる時系列としてデータがグループ化され、系列ごとに個別にモデルがトレーニングされます。 このフィールドを空白のままにすると、AutoML により、データセットに含まれている時系列が 1 つと判断されます。
  7. [予測期間] と [頻度] の 2 つのフィールドで、AutoML で予測値を計算する将来の期間の数を指定します。 左側のボックスに、予測する期間を整数で入力します。 右側のボックスで、単位を選択します。 .. 注意: Auto-ARIMA を使用するには、時系列の頻度が一定である必要があります (つまり、任意の 2 つのポイント間の間隔は、時系列全体で同じである必要があります)。 頻度は、API コールまたは AutoML UI で指定された頻度単位と一致する必要があります。 AutoML では、これらの値に前の値を入力して、不足している時間ステップを処理します。
  8. Databricks Runtime 11.3 LTS ML 以降では、予測結果を保存できます。 そのためには、[出力データベース] フィールドにデータベースを指定します。 [参照] をクリックし、ダイアログからデータベースを選択します。 AutoML は、このデータベース内のテーブルに予測結果を書き込みます。
  9. [実験名フィールド] には、既定の名前が表示されます。 変更するには、フィールドに新しい名前を入力します。

さらに、以下を実行できます。

Databricks Feature Store の既存の特徴テーブルを使用する

Databricks Runtime 11.3 ML LTS 以上では、Databricks Feature Store の特徴テーブルを使用して、分類と回帰の問題に対する入力トレーニング データセットを拡張できます。

Databricks Runtime 12.2 ML LTS 以上では、Databricks Feature Store の特徴テーブルを使用して、分類、回帰、予測などのすべての AutoML の問題に対する入力トレーニング データセットを拡張できます。

特徴量テーブルを作成するには、「Unity Catalog の特徴量テーブルを作成する」または「Databricks 特徴量ストアの特徴量テーブルを作成する」を参照してください。

AutoML 実験の構成が完了したら、以下の手順で特徴テーブルを選択できます。

  1. [Join features (optional)](特徴の結合 (省略可能)) をクリックします。

    [Join features] (特徴の結合) ボタンの選択

  2. [Join Additional Features](追加特徴の結合) ページで、[特徴テーブル] フィールドの特徴テーブルを選択します。

  3. 特徴テーブルの主キーごとに、対応する参照キーを選択します。 参照キーは、AutoML 実験に指定したトレーニング データセット内の列である必要があります。

  4. 時系列特徴テーブルの場合は、対応するタイムスタンプ参照キーを選択します。 同様に、タイムスタンプ参照キーは、AutoML 実験に指定したトレーニング データセット内の列である必要があります。

    主キーと参照キーの選択

  5. さらに特徴テーブルを追加するには、[Add another Table](別のテーブルを追加) をクリックし、上記の手順を繰り返します。

詳細な構成

これらのパラメーターにアクセスするには、詳細な構成 (省略可能) セクションを開きます。

  • 評価メトリックは、実行のスコア付けに使用されるプライマリ メトリックです。
  • Databricks Runtime 10.4 LTS ML 以降では、トレーニング フレームワークを考慮事項から除外できます。 既定では、AutoML では [AutoML アルゴリズム] の下に一覧表示されているフレームワークを使用してモデルがトレーニングされます。
  • 停止条件は編集できます。 既定の停止条件は次のとおりです。
    • 予測実験の場合は、120 分後に停止します。
    • Databricks Runtime 10.4 LTS ML 以下での分類と回帰の実験の場合は、60 分経過後または 200 個の試用版完了後のうち、どちらか早い方で停止します。 Databricks Runtime 11.0 ML 以上の場合は、試行回数は停止条件として使用されません。
    • Databricks Runtime 10.4 LTS ML 以降では、分類と回帰の実験のために、AutoML には早期停止が組み込まれており、検証メトリックにそれ以上の改善が見込まれなくなった場合に、モデルのトレーニングとチューニングが停止されます。
  • Databricks Runtime 10.4 LTS ML 以降では、時間列 を選択して、トレーニング、検証、テストのデータを時系列順に分割できます (分類と回帰にのみ適用されます)。
  • Databricks では、[データ ディレクトリ] フィールドには値を設定しないことをお勧めします。 それを行うと、MLflow 成果物としてデータセットを安全に格納する既定の動作がトリガーされます。 DBFS パスを指定できますが、この場合、データセットは AutoML 実験のアクセス許可を継承しません。

列の選択

注意

この機能を利用できるのは、分類と回帰の問題の場合のみです

Databricks Runtime 10.3 ML 以降では、AutoML でトレーニングに使用する列を指定できます。 列を除外するには、[含める] 列をオフにします。

予測ターゲットとして選択された列、またはデータを分割する時間列 として選択した列を削除することはできません。

既定では、すべての列が含まれます。

欠損値の補完

Databricks Runtime 10.4 LTS ML 以降では、null 値で補完する方法を指定できます。 UI で、テーブル スキーマの [次で補完] 列のドロップダウンからメソッドを選択します。

AutoML では既定で、列の型と内容に基づいて補完方法が選択されます。

注意

既定以外の補完方法を指定した場合、AutoML ではセマンティック型の検出は実行されません。

実験を実行して結果を確認する

AutoML 実験を開始するには、[AutoML の起動] をクリックします。 実験の実行が始まり、AutoML トレーニング ページが表示されます。 実行テーブルを更新するには、[最新の情報に更新] ボタンをクリックします。

このページからは、次のことを行うことができます。

  • 任意のタイミングで、実験を停止します。
  • データ探索ノートブックを開きます。
  • 実行を監視します。
  • 任意の実行の実行ページに移動します。

Databricks Runtime 10.1 ML 以降では、AutoML により、サポートされていない列の型や高カーディナリティ列など、データセットに関する潜在的な問題についての警告が表示されます。

注意

Databricks では、潜在的なエラーや問題を示すための最大限の取り組みが行われます。 ただし、これは包括的ではない場合があり、検索する可能性がある問題やエラーを捕捉しないことがあります。 必ず、独自のレビューも実施してください。

データセットについての警告を表示するには、トレーニング ページまたは実験が完了した後の実験ページの [警告] タブをクリックします。

AutoML の警告

実験が完了すると、次の操作を実行できます。

  • MLflow で、モデルのいずれかの 登録およびデプロイ を行います。
  • [最適なモデルのノートブックを表示] を選択して、最適なモデルの作成に使われたノートブックを確認および編集します。
  • [データ探索ノートブックの表示] を選択して、データ探索ノートブックを開きます。
  • 実行テーブル内の実行の検索、フィルター処理、および並べ替えを行います。
  • 次の操作により、任意の実行の詳細を参照します。
    • 生成されたノートブック (試験実行のソース コードを含む) を見つけるには、MLflow 実行をクリックします。 ノートブックは、実行ページの Artifacts セクションに保存されます。 ワークスペース管理者が成果物のダウンロードを有効にしている場合、このノートブックをダウンロードしてワークスペースにインポートできます。
    • 実行の結果を表示するには、[モデル] 列または [開始時刻] 列をクリックします。 実行ページが表示され、試用版の実行に関する情報 (パラメーター、メトリック、タグなど) と、実行によって作成された成果物 (モデルを含む) が表示されます。 このページには、モデルで予測を行うために使用できるコード スニペットも含まれています。

後でこの AutoML 実験に戻る場合は、[実験] ページのテーブルで見つけます。 データ探索やトレーニング ノートブックを含む各 AutoML 実験の結果は、実験を実行したユーザーのホーム フォルダー内の databricks_automl フォルダーに格納されます。

モデルを登録してデプロイする

モデルの登録とデプロイは、AutoML UI で次のように行います。

  1. 登録するモデルの [モデル] 列のリンクを選択します。 実行が完了すると、(プライマリ メトリックに基づく) 最適なモデルが一番上の行に表示されます。
  2. モデルの登録ボタン を選択して、モデル レジストリにモデルを登録します。
  3. サイドバーの モデル アイコン[モデル] を選択して、モデル レジストリに移動します。
  4. モデル テーブル内のモデルの名前を選択します。
  5. 登録済みのモデルのページから、Model Serving を使用してモデルを提供できます。

'pandas.core.indexes.numeric' という名前のモジュールはありません

AutoML とモデル サービングを使用してビルドされたモデルを提供すると、エラー No module named 'pandas.core.indexes.numeric が表示されることがあります。

これは、AutoML とモデル サービングのエンドポイント環境との間の互換性のない pandas バージョンが原因です。 このエラーは、add-pandas-dependency.py スクリプトを実行することで解決できます。 このスクリプトは、ログに記録されたモデルの requirements.txtconda.yaml を編集して、適切な pandas 依存関係バージョン pandas==1.5.3 を含めます

  1. スクリプトを変更して、モデルがログに記録された MLflow 実行の run_id を含めます。
  2. モデルを MLflow モデル レジストリに再登録します。
  3. MLflow モデルの新しいバージョンをサービングしてみてください。