Code: Select all
import mlflow import pickle from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score
mlflow.set_tracking_uri("https://dagshub.com/\\\\\/.mlflow") mlflow.set_experiment("default")
with mlflow.start_run(): model = RandomForestClassifier(n_estimators=200, random_state=42) model.fit(X_train, y_train) y_pred = model.predict(X_test)
Code: Select all
acc = accuracy_score(y_test, y_pred)
mlflow.log_metric("accuracy", acc)
# Tried both methods
mlflow.sklearn.log_model(model, "model")
# or
# pickle.dump(model, open("model.pkl", "wb"))
# mlflow.log_artifact("model.pkl")
aber in der MLflow-Benutzeroberfläche (DagsHub und lokal) bleibt der Abschnitt „Artefakte“ leer – keine Modelldatei.
Ich habe Folgendes bestätigt:
• Der mlruns-Ordner wird erstellt, wenn ein lokaler URI verwendet wird.
• Der Artefaktspeicherort ist korrekt festgelegt in mlflow.get_experiment_by_name("default").
• Dateiberechtigungen sind unter macOS in Ordnung.
• Derselbe Code funktioniert für andere Benutzer im selben Kurs.
Was könnte dazu führen, dass MLflow das Speichern von Artefakten oder Modellen überspringt, obwohl die Ausführungen erfolgreich protokolliert wurden?
Gibt es ein bekanntes Problem mit MLflow unter macOS oder DagsHub? MLflow-Artefaktspeicher?
Irgendwelche Umgebungsvariablen oder Konfigurationen, die mir fehlen könnten?
• macOS Sonoma
• Python 3.12
• MLflow 2.x
• scikit-learn 1.5
• DagsHub-Tracking-Server
Mobile version