[PYTHON] Ich habe MLflow auf Databricks ausprobiert

Betriebsumgebung

Wenn Sie zusätzliche externe Bibliotheken installieren möchten

Bewerten Sie das Modell mit MLflow Tracking

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, log_loss
import lightgbm as lgb

import mlflow
import mlflow.lightgbm
def train(learning_rate, colsample_bytree, subsample):

  #Datenaufbereitung
  iris = datasets.load_iris()
  X = iris.data
  y = iris.target
  X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

  #Machen Sie es im LightGBM-Format
  train_set = lgb.Dataset(X_train, label=y_train)
  
  #Automatische Verfolgung
  mlflow.lightgbm.autolog()
  
  with mlflow.start_run():

      #Lerne das Modell
      params = {
          "objective": "multiclass",
          "num_class": 3,
          "learning_rate": learning_rate,
          "metric": "multi_logloss",
          "colsample_bytree": colsample_bytree,
          "subsample": subsample,
          "seed": 42,
      }
      model = lgb.train(
          params, train_set, num_boost_round=10, valid_sets=[train_set], valid_names=["train"]
      )

      #Modellbewertung
      y_proba = model.predict(X_test)
      y_pred = y_proba.argmax(axis=1)
      loss = log_loss(y_test, y_proba)
      acc = accuracy_score(y_test, y_pred)

      # log metrics
      mlflow.log_metrics({"log_loss": loss, "accuracy": acc})
train(0.1, 1.0, 1.0)
train(0.2, 0.8, 0.9)
train(0.4, 0.7, 0.8)

Registrieren Sie das Modell in der Modellregistrierung

Starten Sie eine Inferenz-API mit Model Serving

Ändern Sie die Stufe des Modells

Modellbedienung aktivieren

Verwenden Sie die API von der Clientseite

export DATABRICKS_TOKEN={Zeichen}

cat <<EOF > ./data.json
 [
   {
     "sepal length(cm)": 4.6,
     "sepal width(cm)": 3.6,
     "petal length(cm)": 1,
     "petal width(cm)": 0.2
   }
 ]
 EOF

curl \
  -u token:$DATABRICKS_TOKEN \
  -H "Content-Type: application/json; format=pandas-records" \
  [email protected] \
  https://dbc-xxxxxxxxxxxxx.cloud.databricks.com/model/iris_model/Production/invocations
[[0.9877602676352799, 0.006085719008512947, 0.006154013356207185]]

Schließlich

Recommended Posts

Ich habe MLflow auf Databricks ausprobiert
Ich habe AdaNet gegen Tabellendaten ausprobiert
Ich habe Cython unter Ubuntu auf VirtualBox ausprobiert
Ich habe versucht zu kratzen
Ich habe PyQ ausprobiert
Ich habe AutoKeras ausprobiert
Ich habe es mit Papiermühle versucht
Ich habe versucht, Django-Slack
Ich habe es mit Django versucht
Ich habe es mit Spleeter versucht
Ich habe es mit cgo versucht
Ich habe versucht, Remote API mit GAE / J zu verwenden
Verwenden von MLflow mit Databricks ① - Experimentelles Tracking auf Notebooks -
Ich habe versucht, YOLO v3 mit Google Colab auszuführen
Ich habe versucht, jupyter nteract auf dem Heroku-Server zu starten
[Pythonocc] Ich habe versucht, CAD auf einem Jupyter-Notebook zu verwenden
Ich habe LINE Message API (line-bot-sdk-python) mit GAE ausprobiert
Ich habe versucht, mit tkinter mit dem Taschenrechner zu spielen
Ich habe versucht, parametrisiert zu verwenden
Ich habe versucht, Argparse zu verwenden
Ich habe versucht, Mimesis zu verwenden
Ich habe versucht, Pymc auszuführen
Ich habe ARP-Spoofing ausprobiert
Ich habe versucht, aiomysql zu verwenden
Ich habe versucht, Summpy zu verwenden
Ich habe Python> autopep8 ausprobiert
Ich habe versucht, Pipenv zu verwenden
Ich habe versucht, Matplotlib zu verwenden
Ich habe versucht, ESPCN zu verwenden
Ich habe PyCaret2.0 (pycaret-nightly) ausprobiert.
Ich habe versucht, openpyxl zu verwenden
Ich habe versucht, tief zu lernen
Ich habe AWS CDK ausprobiert!
Ich habe versucht, Ipython zu verwenden
Ich habe versucht zu debuggen.
Ich habe versucht, PyCaret zu verwenden
Ich habe versucht, Cron zu verwenden
Ich habe Kivys Kartenansicht ausprobiert
Ich habe versucht, ngrok zu verwenden
Ich habe versucht, face_recognition zu verwenden
Ich habe versucht, Jupyter zu verwenden
Ich habe versucht, EfficientDet zu verschieben
Ich habe versucht, Shell zu programmieren
Ich habe versucht, doctest zu verwenden
Ich habe Python> Decorator ausprobiert
Ich habe versucht, TensorFlow auszuführen
Ich habe versucht, Folium zu verwenden
Ich habe versucht, jinja2 zu verwenden
Ich habe AWS Iot ausprobiert
Ich habe die Bayes'sche Optimierung ausprobiert!
Ich habe versucht, Folium zu verwenden
Ich habe versucht, das Zeitfenster zu verwenden
Ich habe Python zum ersten Mal auf dem Mac ausprobiert.
Ich habe versucht, die App auf der IoT-Plattform "Rimotte" auszuführen.
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe Python zum ersten Mal mit Heroku ausprobiert
Ich habe einen visuellen Regressionstest auf GitHub Pages versucht