Azure Databricks AutoML UI を使用して ML モデルをトレーニングする
この記事では、 AutoML と Databricks Machine Learning UI を使用して機械学習モデルをトレーニングする方法について説明します。 AutoML UI では、データセットで分類、回帰、または予測モデルのトレーニングについて順を追った説明が行われます。
AutoML 実験の「要件」を参照してください。
AutoML UI を開く
AutoML UI にアクセスするには、次のようにします。
サイドバーで、[新しい > AutoML 実験] を選択します。
[実験] ページから新しい AutoML 実験を作成することもできます。
[AutoML 実験の構成] ページが表示されます。 このページでは、AutoML プロセスを構成し、データセット、問題の種類、予測するターゲットまたはラベル列、実験の実行の評価とスコア付けに使用するメトリック、停止条件を指定します。
分類または回帰の問題を設定する
分類または回帰の問題は、AutoML UI を使用して次の手順で設定できます。
[コンピューティング] フィールドで、Databricks Runtime ML が実行されているクラスターを選択します。
[ML 問題のタイプ] ドロップダウン メニューから、[回帰] または [分類] を選択します。 年収など、各観測結果について連続する数値の予測を試みる場合は、[回帰] を選択します。 良い信用リスクかそれとも悪い信用リスクかなど、離散的なクラス セットのいずれかへの各観測値の割り当てを試みる場合は、[分類] を選択します。
[データセット] の下で、[参照] を選択します。
使用するテーブルに移動し、[選択] をクリックします。 テーブル スキーマが表示されます。
- Databricks Runtime 10.3 ML 以上では、AutoML でトレーニングに使用する列を指定できます。 予測ターゲットまたはデータを分割する時間列として選択した列は、削除できません。
- Databricks Runtime 10.4 LTS ML 以上では、[Impute with] (次で補完) ドロップダウンから選択することで、null 値を補完する方法を指定できます。 AutoML では既定で、列の型と内容に基づいて補完方法が選択されます。
注意
既定以外の補完方法を指定した場合、AutoML ではセマンティック型の検出は実行されません。
[予測ターゲット] フィールドをクリックします。 スキーマに表示される列の一覧がドロップダウンに表示されます。 モデルによる予測に使用したい列を選択します。
[実験名フィールド] には、既定の名前が表示されます。 変更するには、フィールドに新しい名前を入力します。
さらに、以下を実行できます。
- その他の構成オプションを指定します。
- 元の入力データセットを拡張するために、Feature Store の既存の特徴テーブルを使用します。
予測の問題を設定する
AutoML UI を使用して、以下の手順で予測の問題を設定することができます。
[コンピューティング] フィールドで、Databricks Runtime 10.0 ML 以降が実行されているクラスターを選択します。
[ML 問題のタイプ] ドロップダウン メニューから、[予測] を選択します。
[データセット] の下で、[参照] をクリックします。 使用するテーブルに移動し、[選択] をクリックします。 テーブル スキーマが表示されます。
[予測ターゲット] フィールドをクリックします。 スキーマに表示される列の一覧がドロップダウン メニューに表示されます。 モデルによる予測に使用したい列を選択します。
[時間列] フィールドをクリックします。 型が
timestamp
またはdate
のデータセット列を示す、ドロップダウンが表示されます。 時系列の期間を含む列を選択します。複数系列の予測の場合は、[時系列識別子] ドロップダウンから個々の時系列を識別する列を選択します。 AutoML では、これらの列ごとに異なる時系列としてデータがグループ化され、系列ごとに個別にモデルがトレーニングされます。 このフィールドを空白のままにすると、AutoML により、データセットに含まれている時系列が 1 つと判断されます。
[予測期間] と [頻度] の 2 つのフィールドで、AutoML で予測値を計算する将来の期間の数を指定します。 左側のボックスに、予測する期間を整数で入力します。 右側のボックスで、単位を選択します。
Note
Auto-ARIMA を使用するには、時系列の頻度が一定である必要があります (任意の 2 つのポイント間の間隔は、時系列全体で同じである必要があります)。 頻度は、API コールまたは AutoML UI で指定された頻度単位と一致する必要があります。 AutoML では、これらの値に前の値を入力して、不足している時間ステップを処理します。
Databricks Runtime 11.3 LTS ML 以降では、予測結果を保存できます。 そのためには、[出力データベース] フィールドにデータベースを指定します。 [参照] をクリックし、ダイアログからデータベースを選択します。 AutoML は、このデータベース内のテーブルに予測結果を書き込みます。
[実験名フィールド] には、既定の名前が表示されます。 変更するには、フィールドに新しい名前を入力します。
さらに、以下を実行できます。
- その他の構成オプションを指定します。
- 元の入力データセットを拡張するために、Feature Store の既存の特徴テーブルを使用します。
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 実験を構成したら、次の手順を使用して特徴量テーブルを選択できます。
[Join features (optional)](特徴の結合 (省略可能)) をクリックします。
[Join Additional Features](追加特徴の結合) ページで、[特徴テーブル] フィールドの特徴テーブルを選択します。
特徴テーブルの主キーごとに、対応する参照キーを選択します。 参照キーは、AutoML 実験に指定したトレーニング データセット内の列である必要があります。
時系列特徴テーブルの場合は、対応するタイムスタンプ参照キーを選択します。 同様に、タイムスタンプ参照キーは、AutoML 実験に指定したトレーニング データセット内の列である必要があります。
さらに特徴テーブルを追加するには、[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 実験のアクセス許可を継承しません。
実験を実行して結果を確認する
AutoML 実験を開始するには、[AutoML の起動] をクリックします。 実験の実行が始まり、AutoML トレーニング ページが表示されます。 実行テーブルを更新するには、をクリックします。
このページからは、次のことを行うことができます。
- 任意のタイミングで、実験を停止します。
- データ探索ノートブックを開きます。
- 実行を監視します。
- 任意の実行の実行ページに移動します。
Databricks Runtime 10.1 ML 以降では、AutoML により、サポートされていない列の型や高カーディナリティ列など、データセットに関する潜在的な問題についての警告が表示されます。
注意
Databricks では、潜在的なエラーや問題を示すための最大限の取り組みが行われます。 ただし、これは包括的ではなく、検索対象の問題やエラーをキャプチャしない可能性があります。
データセットについての警告を表示するには、トレーニング ページまたは実験が完了した後の実験ページの [警告] タブをクリックします。
実験が完了すると、次の操作を実行できます。
- MLflow で、モデルのいずれかの 登録およびデプロイ を行います。
- [最適なモデルのノートブックを表示] を選択して、最適なモデルの作成に使われたノートブックを確認および編集します。
- [データ探索ノートブックの表示] を選択して、データ探索ノートブックを開きます。
- 実行テーブル内の実行の検索、フィルター処理、および並べ替えを行います。
- 次の操作により、任意の実行の詳細を参照します。
- 生成されたノートブック (試験実行のソース コードを含む) を見つけるには、MLflow 実行をクリックします。 ノートブックは、実行ページの Artifacts セクションに保存されます。 ワークスペース管理者が成果物のダウンロードを有効にしている場合、このノートブックをダウンロードしてワークスペースにインポートできます。
- 実行結果を表示するには、[モデル] 列または [開始時刻] 列をクリックします。 実行ページが表示され、試用版の実行に関する情報 (パラメーター、メトリック、タグなど) と、実行によって作成された成果物 (モデルを含む) が表示されます。 このページには、モデルで予測を行うために使用できるコード スニペットも含まれています。
後でこの AutoML 実験に戻る場合は、[実験] ページのテーブルで見つけます。 データ探索やトレーニング ノートブックを含む各 AutoML 実験の結果は、実験を実行したユーザーのホーム フォルダー内の databricks_automl
フォルダーに格納されます。
モデルを登録してデプロイする
モデルの登録とデプロイは、AutoML UI で次のように行います。
- 登録するモデルの [モデル] 列のリンクを選択します。 実行が完了すると、一番上の行に (プライマリ メトリックに基づく) 最適なモデルが表示されます。
を選択して、モデル レジストリにモデルを登録します。
- サイドバーの
[モデル] を選択して、[モデル レジストリ] に移動します。
- モデル テーブル内のモデルの名前を選択します。
- 登録済みのモデルのページから、Model Serving を使用してモデルを提供できます。
'pandas.core.indexes.numeric' という名前のモジュールはありません
AutoML とモデル サービングを使用してビルドされたモデルを提供すると、エラー No module named 'pandas.core.indexes.numeric
が表示されることがあります。
これは、AutoML とモデル サービングのエンドポイント環境との間の互換性のない pandas
バージョンが原因です。 このエラーは、add-pandas-dependency.py スクリプトを実行することで解決できます。 このスクリプトは、ログに記録されたモデルの requirements.txt
と conda.yaml
を編集して、適切な pandas
依存関係バージョン pandas==1.5.3
を含めます
- スクリプトを変更して、モデルがログに記録された MLflow 実行の
run_id
を含めます。 - モデルを MLflow モデル レジストリに再登録します。
- MLflow モデルの新しいバージョンをサービングしてみてください。