モデル推論のワークフローModel Inference Workflow

モデルの推定では、Azure Databricks は次のワークフローを推奨します。For model inference, Azure Databricks recommends the following workflow. PyTorch を使用してモデルの推定を行う方法の詳細については、モデルの推定の例を参照してください。For details about how to do model inference with Tensorflow, Keras, PyTorch, see the model inference examples.

  1. データを Spark DataFrames 読み込みます。Load the data into Spark DataFrames. データの種類によっては、Azure Databricks 次のようにデータを読み込むことをお勧めします。Depending on the data type, Azure Databricks recommends the following ways to load data:

    • 画像ファイル (JPG、PNG): 画像パスを Spark データフレームに読み込みます。Image files (JPG,PNG): Load the image paths into a Spark DataFrame. 画像の読み込みと前処理の入力データは、パンダの UDF で発生します。Image loading and preprocessing input data occurs in a pandas UDF.
    files_df = spark.createDataFrame(map(lambda path: (path,), file_paths), ["path"])
    
    df = spark.read.format("tfrecords").load(image_path)
    
    • Parquet、CSV、JSON、JDBC、およびその他のメタデータなどのデータソース: Spark データソースを使用してデータを読み込みます。Data sources such as Parquet, CSV, JSON, JDBC, and other metadata: Load the data using Spark data sources.
  2. パンダ Udf を使用してモデルの推論を実行します。Perform model inference using pandas UDFs. パンダ udfでは、Apache 矢印を使用してデータとパンダを転送し、データを操作します。pandas UDFs use Apache Arrow to transfer data and pandas to work with the data. モデルの推定を行うには、次のように、パンダの Udf を使用したワークフローのさまざまな手順を実行します。To do model inference, the following are the broad steps in the workflow with pandas UDFs.

a。a. トレーニング済みのモデルを読み込む: 効率を上げるために、ドライバーからモデルの重みをブロードキャストし、モデルグラフを読み込んで、パンダの UDF のブロードキャストされた変数から重みを取得することを Azure Databricks 勧めします。Load the trained model: For efficiency, Azure Databricks recommends broadcasting the weights of the model from the driver and loading the model graph and get the weights from the broadcasted variables in a pandas UDF. b.b. 入力データの読み込みと前処理: データをバッチで読み込むには Azure Databricks、 DATALOADER.LOG API for the PyTorch を使用することをお勧めします。Load and preprocess input data: To load data in batches, Azure Databricks recommends using the tf.data API for TensorFlow and the DataLoader class for PyTorch. また、どちらも、プリフェッチとマルチスレッドの読み込みをサポートして、IO バウンドの待機時間を非表示にします。Both also support prefetching and multi-threaded loading to hide IO bound latency. c.c. モデル予測の実行: データバッチに対してモデルの推定を実行します。Run model prediction: run model inference on the data batch. d.d. 予測を Spark DataFrames 送信する: 予測結果を収集し、pd.Series として返します。Send predictions back to Spark DataFrames: collect the prediction results and return as pd.Series.