トレーニングする Databricks Auto機械学習 UI を使用した機械学習モデル

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

UI にアクセスするには:

  1. サイドバーで、[ 新しい > AutoML エクスペリメント] を選択します。

    エクスペリメント ページから新しい AutoML エクスペリメントを作成することもできます。

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

要件

「AutoML エクスペリメント の要件 」を参照してください。

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

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

  1. [コンピュート] フィールドで、 Databricks Runtime 機械学習を実行しているクラスターを選択します。

  2. [機械学習の問題の種類] ドロップダウン メニューから、[回帰] または [分類] を選択します。年収など、各観測値の連続する数値を予測する場合は、回帰を選択します。 各オブザベーションを、良好な信用リスクや不良の信用リスクなどの個別のクラスセットのいずれかに割り当てる場合は、分類を選択します。

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

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

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

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

  6. エクスペリメント 名フィールドには、デフォルト名が表示されます。変更するには、フィールドに新しい名前を入力します。

また、次のこともできます。

予測の問題 の設定

予測の問題は、次のステップで AutoML UI を使用して設定できます。

  1. [コンピュート] フィールドで、 Databricks Runtime 10.0 機械学習以降を実行しているクラスターを選択します。

  2. 機械学習の問題の種類 ドロップダウン メニューから、 予測 を選択します。

  3. [データセット] で [参照] をクリックします。使用するテーブルに移動し、[ 選択] をクリックします。 テーブル スキーマが表示されます。

  4. [予測ターゲット] フィールドをクリックします。スキーマに表示される列を一覧表示するドロップダウンメニューが表示されます。 モデルで予測する列を選択します。

  5. [ 時間列 ] フィールドをクリックします。 timestamp または dateタイプのデータセット列を示すドロップダウンが表示されます。時系列の期間を含む列を選択します。

  6. 複数系列予測の場合は、[ 時系列識別子 ] ドロップダウンから個々の時系列を識別する列を選択します。 AutoML は、これらの列によってデータを異なる時系列としてグループ化し、各系列のモデルを個別にトレーニングします。 このフィールドを空白のままにすると、AutoML はデータセットに 1 つの時系列が含まれていると見なします。

  7. [予測期間と頻度] フィールドで、AutoML が予測値を計算する将来の期間の数を指定します。左側のボックスに、予測する期間の整数を入力します。 右側のボックスで、単位を選択します。 ..note :: Auto-ARIMA を利用するには、時系列に一定の頻度が必要である(つまり、任意の2点間の間隔が時系列全体で同じでなければならない)。 頻度は、API 呼び出しまたは AutoML UI で指定された頻度単位と一致する必要があります。 AutoML は、欠落している時間ステップを、それらの値に前の値で入力することで処理します。

  8. Databricks Runtime 10.5 機械学習以降では、予測結果を保存できます。これを行うには、[ 出力データベース ] フィールドでデータベースを指定します。 [ 参照 ] をクリックし、ダイアログからデータベースを選択します。 AutoML は、予測結果をこのデータベース内のテーブルに書き込みます。

  9. エクスペリメント 名フィールドには、デフォルト名が表示されます。変更するには、フィールドに新しい名前を入力します。

また、次のこともできます。

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

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

Databricks Runtime 12.2 LTS ML以降では、Databricks Feature Store の特徴量テーブルを使用して、Auto機械学習のすべての問題 (分類、回帰、予測) の入力トレーニング データセットを拡張できます。

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

AutoML エクスペリメントの構成が完了したら、次のステップで機能テーブルを選択できます。

  1. [ フィーチャの結合 (オプション)] をクリックします。

    [フィーチャの結合] ボタンを選択します。
  2. [追加特徴量テーブルの結合] ページで、[特徴量テーブル] フィールドで 特徴量テーブル を選択します。

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

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

    主キーと参照テーブルを選択する
  5. さらに特徴量テーブルを追加するには、[ 別のテーブルを追加 ] をクリックし、上記の手順を繰り返します。

高度な構成

[ 詳細構成 (オプション)] セクションを開いて、これらのパラメーターにアクセスします。

  • 評価メトリクスは、実行のスコア付けに使用される プライマリメトリクス です。

  • Databricks Runtime 10.3 機械学習以降では、トレーニングフレームワークを考慮から除外できます。デフォルトにより、AutoML トレーニングは、「 AutoML アルゴリズム」にリストされているフレームワークを使用してモデル化します。

  • 停止条件を編集できます。 デフォルトの停止条件は次のとおりです。

    • エクスペリメントを予測するには、120分後に停止します。

    • Databricks Runtime 10.5 以下では、分類と回帰エクスペリメントの場合、60 分後または 200 回の試行を完了した後のいずれか早い方で停止します。Databricks Runtime 11.0 機械学習以降では、試行回数は停止条件として使用されません。

    • Databricks Runtime 10.1 機械学習以降では、分類と回帰エクスペリメントのために、Auto機械学習に早期停止が組み込まれています。検証メトリクスが改善されなくなった場合、モデルのトレーニングとチューニングが停止します。

  • Databricks ランタイム 10.1 機械学習以降では、 時間列 を選択して、トレーニング、検証、およびテストのデータを時系列で分割できます (分類と回帰にのみ適用されます)。

  • Databricks では、 [ データ ディレクトリ ] フィールドに入力しないことをお勧めします。 これにより、データセットを MLflow 成果物として安全に格納する既定の動作がトリガーされます。 DBFS パスを指定できますが、この場合、データセットは AutoML エクスペリメントのアクセス許可を継承しません。

列の選択

この機能は、分類と回帰の問題でのみ使用できます。

Databricks Runtime 10.3 機械学習以降では、Auto機械学習がトレーニングに使用する列を指定できます。列を除外するには、[ 含める ] 列でその列をオフにします。

予測ターゲットまたは時間列として選択した をドロップしてデータを分割することはできません。

デフォルトにより、すべての列が含まれます。

欠損値の 代入

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

デフォルトにより、AutoML は列の型と内容に基づいて補完方法を選択します。

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

エクスペリメントを実行し、結果 を監視する

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

このページでは、次の操作を実行できます。

  • エクスペリメントはいつでも停止できます。

  • データ探索ノートブックを開きます。

  • モニターの実行。

  • 任意の実行の実行ページに移動します。

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

Databricks は、潜在的なエラーや問題を示すために最善を尽くします。 ただし、これは包括的ではなく、検索している可能性のある問題やエラーをキャプチャしない可能性があります。 レビューも必ずご自身で行ってください。

データセットの警告を表示するには、トレーニング ページの [警告 ] タブをクリックするか、エクスペリメントの完了後に [エクスペリメント] ページをクリックします。

AutoML 警告

エクスペリメントが完了すると、次のことができます。

  • 登録し、 MLflow を使用してモデルの 1 つをデプロイします。

  • [ 最適なモデルのノートブックを表示 ] を選択して、最適なモデルを作成したノートブックを確認および編集します。

  • [ データ探索ノートブックの表示 ] を選択して、データ探索ノートブックを開きます。

  • 実行テーブルで実行を検索、フィルター処理、および並べ替えます。

  • 実行の詳細を参照してください。

    • 試用用のソース コードを含む生成されたノートブックは、MLflow の実行をクリックすると見つかります。 ノートブックは、実行ページの [アーティファクト] セクションに保存されます。 ワークスペース管理者によって成果物のダウンロードが有効になっている場合は、このノートブックをダウンロードしてワークスペースにインポートできます。

    • 実行の結果を表示するには、[ モデル] 列または [ 開始時刻 ] 列をクリックします。 実行ページが表示され、試行実行に関する情報 (パラメーター、メトリクス、タグなど) と、モデルを含む実行によって作成された成果物が表示されます。 このページには、モデルで予測を行うために使用できるコード スニペットも含まれています。

後でこの AutoML エクスペリメントに戻るには、 エクスペリメント ページの表で見つけてください。 データ探索ノートブックやトレーニング ノートブックなど、各 AutoML エクスペリメントの結果は、エクスペリメントを実行したユーザーのホーム フォルダー内の databricks_automl フォルダー に格納されます。

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

AutoML UI を使用してモデルを登録およびデプロイできます。

  1. 登録するモデルの [モデル] 列のリンクを選択します。 実行が完了すると、(プライマリメトリクスに基づく) 最適なモデルが一番上の行になります。

  2. 選択する登録する モデルボタンモデルをModel Registryに登録します。

  3. モデル アイコン サイドバー で [モデル] を選択し て 、 Model Registry に移動します

  4. モデル テーブルでモデルの名前を選択します。

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

AutoML を使用してビルドされたモデルを Model Servingで提供すると、次のエラーが発生する可能性があります: 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 モデルを提供してみてください。