[PYTHON] Verwenden Sie MLflow mit Databricks ④ - Anrufmodell -

Einführung

Im folgenden Artikel habe ich den von Databricks verwalteten MLflow verwendet, um das Modell zu trainieren und den Lebenszyklus zu verwalten.

Verwenden von MLflow mit Databricks ① - Experimentelles Tracking auf Notebook- Verwenden von MLflow mit Databricks ② - Visualisierung experimenteller Parameter und Metriken- Verwenden von MLflow mit Databricks ③ --Model Life Cycle Management-

Dieses Mal möchte ich das trainierte und inszenierte Modell von einem anderen Notebook laden. Als Bild wird das trainierte Modell als benutzerdefinierte Pyspark-Funktion gelesen und die verteilte Verarbeitung wird auf den Pyspark-Datenrahmen angewendet.

installieren

["ID ausführen"](https://qiita.com/knt078/items/c40c449a512b79c7fd6e#%E3%83%A2%E3%83%87%E3%83%AB%E3%81%] für das Modell, das Sie aufrufen möchten Lesen Sie AE% E7% 99% BB% E9% 8C% B2).

python


# run_id = "<run-id>"
run_id = "d35dff588112486fa1684f38******"
model_uri = "runs:/" + run_id + "/model"

Laden Sie das Scikit-Lernmodell

Laden Sie das getestete Trainingsmodell mit der MLflow-API.

python


import mlflow.sklearn
model = mlflow.sklearn.load_model(model_uri=model_uri)
model.coef_

Lesen Sie als Nächstes den Diabetes-Datensatz, der auch für das Training verwendet wurde, und löschen Sie die Spalte "Progression". Konvertieren Sie dann den geladenen Pandas-Datenrahmen in einen Pyspark-Datenrahmen.

python


# Import various libraries including sklearn, mlflow, numpy, pandas

from sklearn import datasets
import numpy as np
import pandas as pd

# Load Diabetes datasets
diabetes = datasets.load_diabetes()
X = diabetes.data
y = diabetes.target

# Create pandas DataFrame for sklearn ElasticNet linear_model
Y = np.array([y]).transpose()
d = np.concatenate((X, Y), axis=1)
cols = ['age', 'sex', 'bmi', 'bp', 's1', 's2', 's3', 's4', 's5', 's6', 'progression']
data = pd.DataFrame(d, columns=cols)
dataframe = spark.createDataFrame(data.drop(["progression"], axis=1))

Rufen Sie das MLflow-Modell auf

Rufen Sie das trainierte Modell mithilfe der MLflow-API als benutzerdefinierte Pyspark-Funktion auf.

python


import mlflow.pyfunc
pyfunc_udf = mlflow.pyfunc.spark_udf(spark, model_uri=model_uri)

Machen Sie Vorhersagen mit benutzerdefinierten Funktionen.

python


predicted_df = dataframe.withColumn("prediction", pyfunc_udf('age', 'sex', 'bmi', 'bp', 's1', 's2', 's3', 's4', 's5', 's6'))
display(predicted_df)

Ich konnte die verteilte Verarbeitung mit dem Pyspark-Modell durchführen.

2020-11-05_10h45_19.png

abschließend

Dieses Mal konnte ich das trainierte Modell mithilfe der MLflow-API aufrufen und in Pyspark verteilen. Databricks wird täglich mit neuen Funktionen aktualisiert, um die Verwendung zu vereinfachen. Ich möchte weiterhin nach neuen Funktionen suchen.

Recommended Posts

Verwenden Sie MLflow mit Databricks ④ - Anrufmodell -
Verwenden von MLflow mit Databricks ③ - Modelllebenszyklusmanagement -
Verwenden von MLflow mit Databricks ① - Experimentelles Tracking auf Notebooks -
Verwenden Sie Python und word2vec (gelernt) mit Azure Databricks
Verwenden Sie mecab-ipadic-neologd mit igo-python
Verwenden Sie RTX 3090 mit PyTorch
Verwenden Sie ansible mit cygwin
Verwenden Sie pipdeptree mit virtualenv
[Python] Verwenden Sie JSON mit Python
Verwenden Sie Mock mit Pytest
Verwenden Sie den Indikator mit pd.merge
Verwenden Sie Gentelella mit Django
Verwenden Sie Mecab mit Python 3
Verwenden Sie Tensorboard mit Chainer
Verwenden Sie DynamoDB mit Python
Verwenden Sie pip mit MSYS2
Modellbefestigung mit lmfit
Verwenden Sie Python 3.8 mit Anaconda
Verwenden Sie Copyright mit Spacemacs
Verwenden Sie Python mit Docker
Verwenden Sie TypeScript mit Django-Kompressor
Regression mit einem linearen Modell
Bash mit Golang anrufen
Verwenden Sie WENIGER mit Django
Verwenden Sie MySQL mit Django
Verwenden Sie Enum mit SQLAlchemy
Verwenden Sie Tensorboard mit NNabla
Verwenden Sie GPS mit Edison
Verwenden Sie nim mit Jupyter
Verwenden von MLflow mit Databricks ② - Visualisierung experimenteller Parameter und Metriken -
Verwenden Sie die Trello-API mit Python
Verwenden Sie gemeinsam genutzten Speicher mit gemeinsam genutzten Bibliotheken
Verwenden Sie benutzerdefinierte Tags mit PyYAML
Verwenden Sie Richtungsdiagramme mit networkx
Verwenden Sie TensorFlow mit Intellij IDEA
Verwenden Sie die Twitter-API mit Python
Verwenden Sie pip mit Jupyter Notebook
Verwenden Sie DATE_FORMAT mit dem SQLAlchemy-Filter
Verwenden Sie TUN / TAP mit Python
Verwenden Sie sqlite3 mit NAO (Pepper)
Verwenden Sie die load_extensions von sqlite mit Pyramid
Verwenden Sie Windows 10-Schriftarten mit WSL
Verwendung von Chainer mit Jetson TK1
Verwenden Sie SSL mit Sellerie + Redis
Verwenden Sie Cython mit Jupyter Notebook
Verwenden Sie Maxout + CNN mit Pylearn2
Verwenden Sie das Django-Modell vom Interpreter
Verwenden Sie WDC-433SU2M2 mit Manjaro Linux
Kalibrieren Sie das Modell mit PyCaret
Verwenden Sie OpenBLAS mit numpy, scipy
Rufen Sie die API mit python3 auf.
Verwenden Sie die Unterschall-API mit Python3
Verwenden von Sonicwall NetExtener mit Systemd
Verwenden Sie prefetch_related bequem mit Django
Ich habe MLflow auf Databricks ausprobiert
Verwenden Sie einen AWS-Interpreter mit Pycharm
Verwenden von Bokeh mit IPython Notebook
Verwenden Sie Python-ähnliche Bereiche mit Rust