バッチ推論と予測のためのモデルをデプロイする

この記事では、オフライン (バッチおよびストリーミング) 推論用に MLflow モデルをデプロイする方法について説明します。 Databricks では、MLflow を使用して、バッチ推論またはストリーミング推論用の機械学習モデルをデプロイすることをお勧めします。 MLflow モデルの操作に関する一般的な情報については、「 MLflow モデルのログ記録、読み込み、登録、デプロイ」を参照してください。

モデルの推論に MLflow を使用する

MLflow は、バッチまたはストリーミング推論のコードを生成するのに役立ちます。

上記のオプションのいずれかで生成されたコードをカスタマイズすることもできます。 例については、次のノートブックを参照してください。

  • モデル推論の例 では、 Scikit-Learn でトレーニングされ、以前に MLflow に記録されたモデルを使用して、モデルを読み込み、それを使用してさまざまな形式のデータを予測する方法を示します。ノートブックでは、モデルを Scikit-Learn モデルとして pandas データフレームに適用する方法と、モデルを PySpark UDF として Spark データフレームに適用する方法について説明します。

  • MLflowモデルレジストリの例では、モデルレジストリを使用してモデルをビルド、管理、およびデプロイする方法を示します。このページでは、オフライン (バッチ) 予測の例を特定する .predict を検索できます。

Databricks ジョブの作成

バッチ予測またはストリーミング予測をジョブとして実行するには、予測の実行に使用されるコードを含むノートブックまたは JAR を作成します。 次に、ノートブックまたは JAR を Databricks ジョブとして実行します。 ジョブは、すぐに実行することも、スケジュールに従って実行することもできます。 「 ワークフローのスケジュールと調整」を参照してください。

ストリーミング推論

MLflow Model Registry から、MLflow PySpark 推論 UDF と Delta Live Tables を統合するノートブック を自動的に生成 できます。

生成された推論を変更して、 Apache Spark構造化ストリーミングAPIを使用することもできます。

ディープラーニングモデルによる推論

Databricks でのディープラーニング モデル推論に関する情報と例については、次の記事を参照してください。

MLlib および XGBoost4J モデルを使用した推論

MLlib モデルと XGBoost4J モデルを使用したスケーラブルなモデル推論の場合は、ネイティブ transform メソッドを使用して、Spark DataFramesで直接推論を実行します。 MLlib サンプル ノートブック には、推論ステップが含まれています。

モデル推論のカスタマイズと最適化

MLflow APIs を使用して Spark DataFramesで推論を実行する場合は、モデルを Spark UDF として読み込み、分散コンピューティングを使用して大規模に適用できます。

モデルをカスタマイズして、前処理または後処理を追加したり、大規模なモデルの計算パフォーマンスを最適化したりできます。 モデルをカスタマイズするための適切なオプションは、カスタム ロジックでモデルをラップできる MLflow pyfunc API です。

さらにカスタマイズする必要がある場合は、機械学習モデルを Pandas UDF または pandas 反復子 UDF に手動でラップできます。 ディープラーニングの例を参照してください。

小規模なデータセットの場合は、ライブラリによって提供されるネイティブ モデル推論ルーチンを使用することもできます。