Express-Bereitstellungen für Endpunkte zur Modellbereitstellung

In diesem Artikel wird beschrieben, wie Sie Expressbereitstellungen für Ihr Modell verwenden, das Endpunkte bedient . Express-Bereitstellungen verkürzen die Bereitstellungszeiten erheblich und sorgen dafür, dass die Modellbereitstellungsumgebung mit der Modelltrainingsumgebung identisch bleibt.

Note

Expressbereitstellungen wurden zuvor als serverlose optimierte Bereitstellungen bezeichnet.

Was sind Expressbereitstellungen?

Express-Bereitstellungen nutzen die Vorteile von Paket- und Stagingmodellartefakten in serverlosen Notizbuchumgebungen während der Modellregistrierung, was zu einer beschleunigten Endpunktbereitstellung und konsistenten Umgebungen zwischen Schulung und Bereitstellung führt.

Dies unterscheidet sich von Nicht-Expressbereitstellungen, bei denen Modellartefakte und Umgebungen zur Bereitstellungszeit in Container verpackt werden. In solchen Fällen entspricht die Dienstumgebung möglicherweise nicht derjenigen, die bei der Modellschulung verwendet wurde.

Requirements

Express-Bereitstellungsendpunkte haben die gleichen Anforderungen wie das Modell, das Endpunkt bedient (siehe Anforderungen). Außerdem:

  • Das Modell muss ein benutzerdefiniertes Modell (nicht FMAPI) sein.
  • Das Modell muss mit Version 3 oder 4 in einem serverlosen Notizbuch protokolliert und registriert werden.
  • Das Modell muss protokolliert und bei mlflow>=3.1 registriert werden
  • Das Modell muss in UC registriert und mit CPU bereitgestellt werden.
  • Die maximale Umgebungsgröße des Modells beträgt 1 GB.

Verwenden von Expressbereitstellungen

Verwenden Sie beim Protokollieren und Registrieren eines Modells ein serverloses Notizbuch mit Client 3 oder 4 und mlflow>=3.1.

Informationen zum Anpassen der Clientversion der serverlosen Umgebung finden Sie unter Konfigurieren der serverlosen Umgebung.

Legen Sie dann beim Registrieren eines Modells den env_pack Parameter mit den gewünschten Werten fest.

import mlflow
from mlflow.utils.env_pack import EnvPackConfig

mlflow.register_model(
    model_info.model_uri,
    model_name,
    env_pack=EnvPackConfig(name="databricks_model_serving")
)

Indem Sie den Parameter env_pack hinzufügen, werden die Modellartefakte gepackt und die serverlose Notebook-Umgebung während der Modellregistrierung für die spätere Verwendung bei der Bereitstellung vorbereitet. Dies kann im Vergleich zur Registrierung des Modells ohne env_packweitere Zeit dauern.

EnvPackConfig verfügt über einen Parameter install_dependencies (True standardmäßig), der bestimmt, ob die Abhängigkeiten des Modells in der aktuellen Umgebung installiert sind, um zu bestätigen, dass die Umgebung gültig ist. Wenn Sie diesen Schritt überspringen möchten, legen Sie den Wert auf False.

Note

Endpunkte in Arbeitsbereichen ohne Internetzugriff oder Endpunkte mit Abhängigkeiten von benutzerdefinierten Bibliotheken können fehlschlagen, wenn install_dependencies auf True eingestellt ist. In diesen Fällen install_dependencies auf False setzen.

Sie können auch EnvPackConfig(...) durch "databricks_model_serving" als Abkürzung ersetzen. Dies entspricht EnvPackConfig(name="databricks_model_serving", install_dependencies = True).

Nachdem das Modell registriert wurde, können Sie es in der Modellbereitstellung bereitstellen. Beachten Sie, dass die Bereitstellungszeit reduziert wurde und die Ereignisprotokolle keinen Containerbuild mehr anzeigen.