mlflow.lightgbm.autolog ()
), sodass Parameter und Metriken automatisch verfolgt werden.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)
Klicken Sie auf das Symbol "Experiment" oben rechts im Notizbuch, um das Versuchsergebnis anzuzeigen.
Klicken Sie auf die Schaltfläche ③, um den Bildschirm mit der Liste der Versuchsergebnisse anzuzeigen.
Wählen Sie alle experimentellen Ergebnisse aus press und klicken Sie auf die Schaltfläche "Vergleichen", um den Bildschirm zum Vergleich der experimentellen Ergebnisse anzuzeigen (Parameterunterschiede und Bewertungsindizes können in einer Liste verglichen werden).
Das diesmal registrierte Modell ist "Version 2" und die Bühne ist "Keine". Ich werde darum bitten, die Bühne auf "Produktion" zu ändern
Übergang vom Modellregistrierungsbildschirm zum Modelldetailbildschirm von "Version 2", klicken Sie auf "Phase: Keine" und dann auf "Übergang anfordern-> Produktion anfordern".
Der Modelldetailbildschirm eines anderen Benutzers zeigt eine Anforderung zum Ändern der Stufe an
Sie können die Stufe ändern, wenn Sie zustimmen
Sie können es aktivieren, indem Sie auf der Registerkarte "Serving" des Modelldetailbildschirms der Modellregistrierung auf die Schaltfläche "Serving aktivieren" klicken.
Nach einer Weile können Sie bestätigen, dass der REST-Endpunkt für jede Modellversion und Phase gestartet wurde.
Sie müssen ein Sicherheitstoken ausstellen lassen, um von der Clientseite aus auf die API zugreifen zu können
Kann über die Registerkarte "Zugriffstoken" im Bildschirm "Benutzereinstellungen" des Administratorkontos erstellt werden
Versuchen Sie, API von Curl zu verwenden
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]]
Recommended Posts