Databricks AutoML UIを使用した機械学習モデルのトレーニング
この記事では、 AutoML と Databricks Mosaic AI UI を使用して機械学習モデルをトレーニングする方法を示します。 AutoML UI では、データセット上の分類モデル、回帰モデル、または予測モデルのトレーニングを行います。
「AutoML エクスペリメント の要件 」を参照してください。
AutoML UIを開く
AutoML UI にアクセスするには:
サイドバーで、[ 新しい > AutoML エクスペリメント] を選択します。
エクスペリメント ページから新しい AutoML エクスペリメントを作成することもできます。
[ AutoML エクスペリメントの構成] ページ が表示されます。 このページでは、AutoML プロセスを構成し、予測するデータセット、問題の種類、ターゲットまたはラベル列、エクスペリメントの実行の評価とスコア付けに使用するメトリクス、および停止条件を指定します。
分類または回帰の問題を設定する
分類または回帰の問題は、次のステップで AutoML UI を使用して設定できます。
[コンピュート] フィールドで、 Databricks Runtime 機械学習を実行しているクラスターを選択します。
[機械学習の問題の種類] ドロップダウン メニューから、[回帰] または [分類] を選択します。年収など、各観測値の連続する数値を予測する場合は、回帰を選択します。 各オブザベーションを、良好な信用リスクや不良の信用リスクなどの個別のクラスセットのいずれかに割り当てる場合は、分類を選択します。
[データセット] で、 [参照] を選択します。
使用するテーブルに移動し、[ 選択] をクリックします。 テーブル スキーマが表示されます。
Databricks Runtime 10.3 ML 以降では、 AutoML がトレーニングに使用する列を指定できます。 予測テストとして選択した列や、データを分割する時間列を削除することはできません。
Databricks Runtime 10.4 LTS ML 以降では、 [Impute with] ドロップダウンから選択して 、null 値の補完方法を指定 できます。デフォルトでは、AutoML は列のタイプとコンテンツに基づいて補完方法を選択します。
注
デフォルト以外の補完方法を指定した場合、AutoML はセマンティック型の検出を実行しません。
[予測ターゲット] フィールドをクリックします。スキーマに表示されている列を一覧表示するドロップダウンが表示されます。 モデルで予測する列を選択します。
エクスペリメント 名フィールドには、デフォルト名が表示されます。変更するには、フィールドに新しい名前を入力します。
また、次のこともできます。
予測の問題の設定
予測の問題は、次のステップで AutoML UI を使用して設定できます。
[コンピュート] フィールドで、 Databricks Runtime 10.0 機械学習以降を実行しているクラスターを選択します。
機械学習の問題の種類 ドロップダウン メニューから、 予測 を選択します。
[データセット] で [参照] をクリックします。使用するテーブルに移動し、[ 選択] をクリックします。 テーブル スキーマが表示されます。
予測ターゲットフィールドをクリックします。 ドロップダウン メニューが表示され、スキーマに表示される列がリストされます。 モデルで予測する列を選択します。
[ 時間列 ] フィールドをクリックします。
timestamp
またはdate
タイプのデータセット列を示すドロップダウンが表示されます。時系列の期間を含む列を選択します。複数系列予測の場合は、[ 時系列識別子 ] ドロップダウンから個々の時系列を識別する列を選択します。 AutoML は、これらの列によってデータを異なる時系列としてグループ化し、各系列のモデルを個別にトレーニングします。 このフィールドを空白のままにすると、AutoML はデータセットに 1 つの時系列が含まれていると見なします。
「予測期間」フィールドと「頻度」フィールドで、AutoML が予測値を計算する将来の期間数を指定します。 左側のボックスに、予測する期間の整数数を入力します。 右側のボックスで、単位を選択します。
注
Auto-ARIMA を使用するには、時系列に規則的な頻度が必要であり、任意の 2 つのポイント間の間隔は時系列全体で同じである必要があります。 頻度は、API 呼び出しまたは AutoML UI で指定された頻度単位と一致する必要があります。 AutoML は、欠落している時間ステップの値を前の値で埋めることで処理します。
Databricks Runtime 11.3 LTS ML 以降では、予測結果を保存できます。 これを行うには、「 出力データベース 」フィールドにデータベースを指定します。 「 参照 」をクリックし、ダイアログからデータベースを選択します。 AutoML は予測結果をこのデータベースのテーブルに書き込みます。
エクスペリメント 名フィールドには、デフォルト名が表示されます。変更するには、フィールドに新しい名前を入力します。
また、次のこともできます。
Databricks Feature Storeの既存の特徴量テーブルを使用する
Databricks Runtime 11.3 LTS ML以降では、Databricks Feature Store の特徴量テーブルを使用して、分類と回帰の問題の入力トレーニング データセットを拡張できます。
Databricks Runtime 12.2 LTS ML以降では、 Databricks Feature Storeの特徴量テーブルを使用して、分類、回帰、予測など、すべてのAutoML問題の入力トレーニング データセットを拡張できます。
特徴量テーブルを作成するには、「Unity Catalog で特徴量テーブルを作成する」または「 Databricks Feature Store で特徴量テーブルを作成する 」を参照してください。
AutoML拡張機能を構成した後、次の手順で特徴量テーブルを選択できます。
[ フィーチャの結合 (オプション)] をクリックします。
[追加特徴量テーブルの結合] ページで、[特徴量テーブル] フィールドで 特徴量テーブル を選択します。
特徴量テーブルの主キーごとに、対応する参照キーを選択します。参照キーは、AutoML エクスペリメントに指定したトレーニング データセットの列である必要があります。
時系列特徴テーブルの場合は、対応するタイムスタンプ参照キーを選択します。同様に、タイムスタンプ参照キーは、AutoML エクスペリメントに指定したトレーニングデータセットの列である必要があります。
さらに特徴量テーブルを追加するには、[ 別のテーブルを追加 ] をクリックし、上記の手順を繰り返します。
高度な構成
[ 詳細構成 (オプション)] セクションを開いて、これらのパラメーターにアクセスします。
評価メトリックは、実行のスコア付けに使用される主なメトリックです。
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 機械学習以降では、サポートされていない列の種類やカーディナリティの高い列など、データセットに関する潜在的な問題について警告が表示されます。
注
Databricks は、潜在的なエラーや問題を示すために最善を尽くします。 ただし、これは包括的ではなく、検索している問題やエラーをキャプチャできない場合があります。
データセットの警告を表示するには、トレーニング ページまたはエクスペリメントの完了後のエクスペリメント ページの[警告]タブをクリックします。
エクスペリメントが完了すると、次のことができます。
登録し、 MLflow を使用してモデルの 1 つをデプロイします。
[ 最適なモデルのノートブックを表示 ] を選択して、最適なモデルを作成したノートブックを確認および編集します。
[ データ探索ノートブックの表示 ] を選択して、データ探索ノートブックを開きます。
実行テーブルで実行を検索、フィルター処理、および並べ替えます。
実行の詳細を参照してください。
試用用のソース コードを含む生成されたノートブックは、MLflow の実行をクリックすると見つかります。 ノートブックは、実行ページの [アーティファクト] セクションに保存されます。 ワークスペース管理者によって成果物のダウンロードが有効になっている場合は、このノートブックをダウンロードしてワークスペースにインポートできます。
実行結果を表示するには、 「モデル」列または「開始時刻」列をクリックします。 実行 ページが表示され、トライアル 実行 に関する情報 (引数、メトリックス、タグなど) と、モデルを含む、実行によって作成された成果物が表示されます。 このページには、モデルで予測を行うために使用できるコード スニペットも含まれています。
後でこの AutoML エクスペリメントに戻るには、 エクスペリメント ページの表で見つけてください。 データ探索ノートブックやトレーニング ノートブックなど、各 AutoML エクスペリメントの結果は、エクスペリメントを実行したユーザーのホーム フォルダー内の databricks_automl
フォルダー に格納されます。
モデルを登録しデプロイする
AutoML UI を使用してモデルを登録およびデプロイできます。
登録するモデルの「モデル」列のリンクを選択します。 実行が完了すると、一番上の行が最適なモデルになります (プライマリメトリックに基づきます)。
選択するモデルをModel Registryに登録します。
サイドバー で [モデル] を選択し て 、 Model Registry に移動します。
モデル テーブルでモデルの名前を選択します。
No module named ‘pandas.core.indexes.numeric
AutoML を使用してビルドされたモデルを Model Servingで提供すると、次のエラーが発生する可能性があります: 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 モデルを提供してみてください。