AutoML を使用した予測
AutoML を使用して、時系列データに基づいて値を予測するための最適な予測アルゴリズムとハイパーパラメーター構成を自動的に検索します。
時系列予測は、Databricks Runtime 10.0 ML 以降でのみ使用できます。
UI を使用して予測実験を設定する
AutoML UI を使用して、以下の手順で予測の問題を設定することができます。
- サイドバーで Experiments を選択します。
- Forecasting カードで、[トレーニングの開始選択。
AutoML 実験の構成
[AutoML 実験の構成] ページが表示されます。 このページでは、AutoML プロセスを構成し、データセット、問題の種類、予測するターゲットまたはラベル列、実験の実行の評価とスコア付けに使用するメトリック、停止条件を指定します。
[コンピューティング] フィールドで、Databricks Runtime 10.0 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 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 以降では、トレーニング、検証、テストのデータを時系列で分割する
time column
を選択できます ( 分類 および regression にのみ適用)。 - 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 モデルの新しいバージョンをサービングしてみてください。