Databricks Autologging

A Databricks Autologging egy kód nélküli megoldás, amely kiterjeszti az MLflow automatikus naplózását , hogy automatikus kísérletkövetést biztosítson az Azure Databricks gépi tanulási munkameneteihez.

A Databricks autologging funkciójával a modellparaméterek, a metrikák, a fájlok és az életút adatai automatikusan rögzítésre kerülnek, amikor modelleket tanít be számos népszerű gépi tanulási kódtárból. A betanítási munkamenetek MLflow-nyomkövetési futtatásokként vannak rögzítve. A modellfájlok is nyomon követhetők, így egyszerűen naplózhatja őket az MLflow modellregisztrációs adatbázisában, és valós idejű pontozás céljából üzembe helyezheti őket a Modellkiszolgálóval.

Az alábbi videó a Databricks autologging funkcióját mutatja be egy scikit-learn modell betanítási munkamenetével egy interaktív Python-jegyzetfüzetben. A rendszer automatikusan rögzíti és megjeleníti a követési adatokat a Kísérletfuttatások oldalsávon és az MLflow felhasználói felületén.

Példa automatikus kitöltése

Követelmények

  • A Databricks Autologging általában minden olyan régióban elérhető, ahol a Databricks Runtime 10.4 LTS ML vagy újabb verziójú.
  • A Databricks Autologging a Databricks Runtime 9.1 LTS ML vagy újabb verziójú előzetes verziójú régiókban érhető el.

Hogyan működik?

Amikor interaktív Python-jegyzetfüzetet csatol egy Azure Databricks-fürthöz, a Databricks autologging meghívja az mlflow.autolog() parancsot, hogy beállítsa a modell betanítási munkameneteinek nyomon követését. Amikor modelleket tanít be a jegyzetfüzetben, a modell betanítási információi automatikusan nyomon lesznek követve az MLflow Tracking használatával. A modell betanítási adatainak védelméről és kezeléséről további információt a Biztonság és adatkezelés című témakörben talál.

A mlflow.autolog() hívás alapértelmezett konfigurációja a következő:

mlflow.autolog(
    log_input_examples=False,
    log_model_signatures=True,
    log_models=True,
    disable=False,
    exclusive=False,
    disable_for_unsupported_versions=True,
    silent=False
)

Testre szabhatja az automatikus kitöltési konfigurációt.

Használat

A Databricks Autologging használatához betanítsa a gépi tanulási modellt egy támogatott keretrendszerbe egy interaktív Azure Databricks Python-jegyzetfüzet használatával. A Databricks autologging automatikusan rögzíti a modell leállásadatait, paramétereit és metrikáit az MLflow Trackingbe. Testre is szabhatja a Databricks automatikus keresésének viselkedését.

Feljegyzés

A Databricks autologging nincs alkalmazva az MLflow fluent API-valmlflow.start_run()létrehozott futtatásokra. Ezekben az esetekben meg kell hívnia mlflow.autolog() , hogy mentse az automatikusan létrehozott tartalmat az MLflow-futtatásra. Lásd: További tartalom nyomon követése.

Naplózási viselkedés testreszabása

A naplózás testreszabásához használja a mlflow.autolog() parancsot. Ez a függvény konfigurációs paramétereket biztosít a modellnaplózás engedélyezéséhez (log_models), bemeneti példák gyűjtéséhez (log_input_examples), figyelmeztetések konfigurálásához (silentstb.).

További tartalom nyomon követése

Ha további metrikákat, paramétereket, fájlokat és metaadatokat szeretne nyomon követni a Databricks Autologging által létrehozott MLflow-futtatásokkal, kövesse az alábbi lépéseket egy Azure Databricks interaktív Python-jegyzetfüzetben:

  1. Hívja meg a mlflow.autolog() függvényt a exclusive=False.
  2. MLflow-futtatás indítása mlflow.start_run() használatával. Ezt a hívást with mlflow.start_run()becsomagolhatja; ha ezt teszi, a futtatás automatikusan befejeződik a befejezés után.
  3. A betanítás előtti tartalmak nyomon követéséhez MLflow-követési módszereket (például mlflow.log_param()) használjon.
  4. Egy vagy több gépi tanulási modell betanítása a Databricks Autologging által támogatott keretrendszerben.
  5. A betanítás utáni tartalmak nyomon követéséhez MLflow-követési módszereket (például mlflow.log_metric()) használjon.
  6. Ha nem használta with mlflow.start_run() a 2. lépésben, fejezd be az MLflow futtatását a mlflow.end_run() használatával.

Példa:

import mlflow
mlflow.autolog(exclusive=False)

with mlflow.start_run():
  mlflow.log_param("example_param", "example_value")
  # <your model training code here>
  mlflow.log_metric("example_metric", 5)

A Databricks automatikus naplózásának letiltása

Ha le szeretné tiltani a Databricks automatikus naplózását egy Azure Databricks interaktív Python-jegyzetfüzetben, hívja a mlflow.autolog() függvényt a következővel disable=True:

import mlflow
mlflow.autolog(disable=True)

Rendszergazda istratorok emellett letilthatják a Databricks automatikus keresését a munkaterület összes fürtjén a A rendszergazdai beállítások lap Speciális lapja. A módosítás érvénybe lépéséhez újra kell indítani a fürtöket.

Támogatott környezetek és keretrendszerek

A Databricks Autologging interaktív Python-jegyzetfüzetekben támogatott, és a következő ML-keretrendszerekhez érhető el:

  • scikit-learn
  • Apache Spark MLlib
  • TensorFlow
  • Keras
  • PyTorch Lightning
  • XGBoost
  • LightGBM
  • Gluon
  • Fast.ai (1.x verzió)
  • statsmodels.

Az egyes támogatott keretrendszerekről további információt az MLflow automatikus naplózásában talál.

Biztonság és adatkezelés

A Databricks autologging szolgáltatással nyomon követett modellbetanítási információk az MLflow Trackingben tárolódnak, és MLflow Kísérlet engedélyekkel védettek. Az MLflow Tracking API vagy a felhasználói felület használatával megoszthatja, módosíthatja vagy törölheti a modell betanítási adatait.

Felügyelet

Rendszergazda istratorok engedélyezhetik vagy letilthatják a Databricks automatikus keresését az összes interaktív jegyzetfüzet-munkamenethez a munkaterületükön a A rendszergazdai beállítások lap Speciális lapja. A módosítások csak a fürt újraindítása után lépnek érvénybe.

Korlátozások

  • A Databricks automatikus naplózása nem támogatott az Azure Databricks-feladatokban. A feladatok automatikus kitöltésének használatához explicit módon meghívhatja az mlflow.autolog()-t.
  • A Databricks automatikus naplózása csak az Azure Databricks-fürt illesztőprogram-csomópontján engedélyezett. Ha a munkavégző csomópontokról szeretne automatikusan csatlakozni, az mlflow.autolog() parancsot explicit módon kell meghívnia az egyes feldolgozókon végrehajtó kódból.
  • Az XGBoost scikit-learn integráció nem támogatott.

Apache Spark MLlib, Hyperopt és automatizált MLflow-nyomkövetés

A Databricks autologging nem változtatja meg az Apache Spark MLlib és a Hyperopt meglévő automatizált MLflow-követési integrációinak viselkedését.

Feljegyzés

A Databricks Runtime 10.1 ML-ben az Apache Spark MLlib CrossValidator és TrainValidationSplit a modellek automatizált MLflow-nyomkövetési integrációjának letiltása az összes Apache Spark MLlib-modellhez letiltja a Databricks autologging funkciót is.