Databricks Autologging (Automatikus naplózás)

Ez az oldal bemutatja, hogyan személyre szabhatja a Databricks Autologgingot, amely automatikusan rögzíti a modellparamétereket, metrikákat, fájlokat és származási információkat, amikor modelleket tanít számos népszerű gépi tanulási könyvtárból. A betanítási munkamenetek MLflow-nyomkövetési futtatásokként vannak rögzítve. A modellfájlokat is nyomon követi a rendszer, így könnyen naplózhatja őket az MLflow modellregisztrációs adatbázisában.

Megjegyzés:

Az AI-számítási feladatok nyomkövetési naplózásának engedélyezéséhez az MLflow támogatja az OpenAI automatikus naplózását.

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 az önálló naplózásra

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 csak bizonyos előzetes verziójú régiókban érhető el a Databricks Runtime 9.1 LTS ML vagy újabb verzióival.

Hogyan működik?

Amikor interaktív Python jegyzetfüzetet csatol egy Azure Databricks-fürthöz, a Databricks Autologging az mlflow.autolog() hívásával állítja be a modell-tréning munkamenetek 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.

Megjegyzés:

Az automatikus kitöltés nincs automatikusan engedélyezve a kiszolgáló nélküli számításban. Kiszolgáló nélküli számítási klaszterek esetén az automatikus naplózási funkció engedélyezéséhez explicit módon meg kell hívnia a(z) mlflow.autolog() elemet.

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 származási adatait, paramétereit és metrikáit az MLflow-nyomkövetési. Ön is testre szabhatja a Databricks Autologging viselkedését.

Megjegyzés:

A Databricks autologging nincs alkalmazva az MLflow fluent API-valmlflow.start_run()létrehozott futtatásokra. Ezekben az esetekben meg kell hívnia a mlflow.autolog()-t, hogy az automatikusan létrehozott tartalmat elmentse az MLflow-futtatásban. 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 (log_models), a naplóadatkészletek (log_datasets), a bemeneti példák (log_input_examples), a naplómodell-aláírások (log_model_signatures), a figyelmeztetések (silent) konfigurálásához stb.

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. Használja az mlflow.autolog() függvényt 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)

A rendszergazdák a Speciális lapon a rendszergazdai beállítások oldalán letilthatják a Databricks automatikus naplózását egy munkaterület összes fürtje számára. A változás érvénybe lépéséhez újra kell indítani a klasztereket.

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 (egy Python gépi tanulási könyvtár)
  • Apache Spark MLlib
  • TensorFlow
  • Keras
  • PyTorch Lightning
  • XGBoost
  • LightGBM
  • Gluon
  • Fast.ai
  • statsmodels - statisztikai szoftvercsomag
  • PaddlePaddle
  • OpenAI
  • LangChain

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

MLflow-nyomkövetés engedélyezése

Az MLflow Tracing a autolog megfelelő modell-keretrendszer-integrációkon belüli funkciót használja a nyomkövetési támogatás engedélyezésének vagy letiltásának szabályozására a nyomkövetést támogató integrációk esetében.

Ha például egy LlamaIndex-modell használatakor szeretné engedélyezni a nyomkövetést, használja a mlflow.llama_index.autolog() függvényt a következővel log_traces=True:

import mlflow
mlflow.llama_index.autolog(log_traces=True)

Megjegyzés:

Szerver nélküli számítási fürtök esetén a nyomkövetéshez tartozó automatikus naplózás nincs automatikusan engedélyezve. Explicit módon engedélyeznie kell az automatikus naplózást a nyomon követni kívánt keretrendszerintegrációkhoz (például mlflow.openai.autolog()mlflow.langchain.autolog()).

Az autolog-implementációkban nyomkövetési engedélyező funkcióval rendelkező támogatott integrációk a következők:

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

A rendszergazdák engedélyezhetik vagy letilthatják a Databricks automatikus naplózását a munkaterületükön lévő összes interaktív jegyzetfüzet-munkamenetre a Speciális fülön található rendszergazdai beállítások oldalon. A módosítások csak a fürt újraindítása után lépnek érvénybe.

Korlátozások

  • A Databricks autonaplózás csak az Azure Databricks-fürt driver node-ján engedélyezett. Ha a munkavégző csomópontokról szeretne automatizált naplózást használni, akkor explicit módon meg kell hívnia az mlflow.autolog() függvényt az egyes munkavégző csomópontokon futó 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.

Megjegyzé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.