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ó.
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
- A modellregisztrációs adatbázis munkaterületén hozzon létre egy hozzáférési jogkivonatot.
- 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:
- Titkos kulcs hatókörének létrehozása:
databricks secrets create-scope <scope>
. - 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/
vagyhttps://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ó.
- Titkos kulcs hatókörének létrehozása:
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_uri
hasonló 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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: