Modellek megosztása munkaterületek között

Fontos

A Databricks a Unity Catalog modelljeinek használatát javasolja a modellek munkaterületek közötti megosztásához. A cikkben szereplő megközelítés elavult.

Az Azure Databricks támogatja a modellek megosztását több munkaterület között. Fejleszthet és naplózhat például egy modellt egy fejlesztési munkaterületen, majd elérheti és összehasonlíthatja egy külön éles munkaterület modelljeivel. Ez akkor hasznos, ha több csapat osztozik a modellekhez való hozzáférésben, vagy ha a szervezet több munkaterülettel rendelkezik a különböző fejlesztési fázisok kezeléséhez. Munkaterületek közötti modellfejlesztéshez és üzembe helyezéshez a Databricks a kód üzembe helyezésének megközelítését javasolja, ahol a modell betanítási kódja több környezetben van üzembe helyezve.

Több-munkaterületes helyzetekben az Azure Databricks-munkaterületeken futó modelleket egy távoli modellregisztrációs adatbázis használatával érheti el. Az adattudósok például írásvédett hozzáféréssel férhetnek hozzá az éles modellregisztrációs adatbázishoz, hogy összehasonlíthassák a fejlesztési modelljüket az aktuális éles modellekkel. Az alábbiakban egy példa több-munkaterületes beállítás látható.

Több munkaterület

A távoli beállításjegyzékhez való hozzáférést jogkivonatok vezérlik. Minden hozzáférésre szoruló felhasználó vagy szkript létrehoz egy személyes hozzáférési jogkivonatot a távoli beállításjegyzékben, és ezt a jogkivonatot a helyi munkaterület titkos kezelőjének másolja. A távoli beállításjegyzék-munkaterületre küldött összes API-kérésnek tartalmaznia kell a hozzáférési jogkivonatot; Az MLflow egy egyszerű mechanizmust biztosít a modellregisztrációs adatbázis műveleteihez használandó titkos kódok megadásához.

Feljegyzés

Ajánlott biztonsági eljárásként, ha automatizált eszközökkel, rendszerekkel, szkriptekkel és alkalmazásokkal hitelesít, a Databricks azt javasolja, hogy munkaterület-felhasználók helyett a szolgáltatásnevekhez tartozó személyes hozzáférési jogkivonatokat használja. A szolgáltatásnevek jogkivonatainak létrehozásáról a szolgáltatásnév jogkivonatainak kezelése című témakörben olvashat.

A modellregisztrációs adatbázis összes ügyfél - és fluent API-metódusa támogatott a távoli munkaterületeken.

Követelmények

A munkaterületek közötti modellregisztrációs adatbázis használatához az 1.11.0-s vagy újabb kiadású MLflow Python-ügyfél szükséges.

Feljegyzés

Ez a munkafolyamat az MLflow-ügyfél logikájából van implementálva. Győződjön meg arról, hogy az ügyfelet futtató környezet rendelkezik hozzáféréssel ahhoz, hogy hálózati kéréseket küldjön a távoli modellregisztrációs adatbázist tartalmazó Azure Databricks-munkaterületen. A beállításjegyzék-munkaterületre vonatkozó gyakori korlátozás egy IP-engedélyezési lista, amely letilthatja a más munkaterület fürtjében futó MLflow-ügyfelek kapcsolatait.

Az API-jogkivonat beállítása távoli beállításjegyzékhez

  1. A modellregisztrációs adatbázis munkaterületén hozzon létre egy hozzáférési jogkivonatot.
  2. A helyi munkaterületen hozzon létre titkos kulcsokat a hozzáférési jogkivonat és a távoli munkaterület adatainak tárolásához:
    1. Titkos kulcs hatókörének létrehozása: databricks secrets create-scope <scope>.
    2. Válasszon egy egyedi nevet a cél-munkaterületnek, amely itt látható.<prefix> Ezután hozzon létre három titkos kódot:
      • databricks secrets put-secret <scope> <prefix>-host : Adja meg a modellregisztrációs adatbázis munkaterületének állomásnevét. Például, https://westus.azuredatabricks.net/ vagy https://adb-5555555555555555.19.azuredatabricks.net/.
      • databricks secrets put-secret <scope> <prefix>-token : Adja meg a hozzáférési jogkivonatot a modellregisztrációs adatbázis munkaterületéről.
      • databricks secrets put-secret <scope> <prefix>-workspace-id : Adja meg a modellregisztrációs adatbázis munkaterületének munkaterület-azonosítóját, amely bármely oldal URL-címében megtalálható.

Feljegyzés

Előfordulhat, hogy meg szeretné osztani a titkos kulcs hatókörét más felhasználókkal, mivel a munkaterületenkénti titkos hatókörök száma korlátozott.

Távoli beállításjegyzék megadása

A távoli beállításjegyzék-munkaterülethez létrehozott titkos kulcs hatóköre és névelőtagja alapján létrehozhatja az űrlap regisztrációs adatbázisának URI-ját:

registry_uri = f'databricks://<scope>:<prefix>'

Az URI használatával megadhatja a fluent API-metódusok távoli beállításjegyzékét az első hívással:

mlflow.set_registry_uri(registry_uri)

Vagy explicit módon is megadhatja, amikor példányosít egy MlflowClient:

client = MlflowClient(registry_uri=registry_uri)

Az alábbi munkafolyamatok mindkét megközelítésre mutatnak példákat.

Modell regisztrálása a távoli beállításjegyzékben

A modellek regisztrálásának egyik módja az mlflow.register_model API használata:

mlflow.set_registry_uri(registry_uri)
mlflow.register_model(model_uri=f'runs:/<run-id>/<artifact-path>', name=model_name)

Példák más modellregisztrációs módszerekre a lap végén található jegyzetfüzetben.

Feljegyzés

Ha egy modellt regisztrál egy távoli munkaterületen, a modellösszetevők ideiglenes másolatát hozza létre a dbFS-ben a távoli munkaterületen. Ha a modell verziója állapotban van, érdemes törölnie ezt a másolatot READY . Az ideiglenes fájlok a /dbfs/databricks/mlflow/tmp-external-source/<run-id> mappa alatt találhatók.

Megadhatja azt is tracking_uri , hogy egy MLflow Tracking szolgáltatásra mutasson egy másik munkaterületen a következőhöz registry_urihasonló módon. Ez azt jelenti, hogy futtathat egy távoli munkaterületet, és regisztrálhatja a modelljét az aktuális vagy egy másik távoli munkaterületen.

Modell használata a távoli beállításjegyzékből

A távoli beállításjegyzékben lévő modellverziót a beállításjegyzék URI-jának első beállításával töltheti be és használhatja metódusokkal mlflow.<flavor>.load_model :

mlflow.set_registry_uri(registry_uri)
model = mlflow.pyfunc.load_model(f'models:/<model-name>/Staging')
model.predict(...)

Vagy explicit módon megadhatja a távoli beállításjegyzéket az models:/ URI-ban:

model = mlflow.pyfunc.load_model(f'models://<scope>:<prefix>@databricks/<model-name>/Staging')
model.predict(...)

A modellfájlok elérésének egyéb segédmeterei is támogatottak, például:

client.get_latest_versions(model_name)
client.get_model_version_download_uri(model_name, version)

Modell kezelése a távoli beállításjegyzékben

A távoli beállításjegyzékben lévő modelleken bármilyen műveletet végrehajthat, amíg rendelkezik a szükséges engedélyekkel. Ha például rendelkezik a MODELL KEZELÉSE engedélyekkel, áttérhet a modell verziós fázisára, vagy törölheti a modellt metódusokkal MlflowClient :

client = MlflowClient(tracking_uri=None, registry_uri=registry_uri)
client.transition_model_version_stage(model_name, version, 'Archived')
client.delete_registered_model(model_name)

Példa jegyzetfüzetre: Távoli modell beállításjegyzéke

A következő jegyzetfüzet olyan munkaterületekre vonatkozik, amelyek nincsenek engedélyezve a Unity Catalogban. Bemutatja, hogyan naplózhatja a modelleket az MLflow-követő kiszolgálóra az aktuális munkaterületről, és hogyan regisztrálhatja a modelleket a Modellregisztrációs adatbázisba egy másik munkaterületen. A Databricks a Unity Catalog modelljeinek használatát javasolja a modellek munkaterületek közötti megosztásához.

Távoli modell beállításjegyzékének mintajegyzetfüzete

Jegyzetfüzet beszerzése