Tutorial: Bereitstellen und Abfragen eines benutzerdefinierten Modells

Dieser Artikel enthält die grundlegenden Schritte zum Bereitstellen und Abfragen eines benutzerdefinierten Modells, bei dem es sich um ein herkömmliches ML-Modell handelt, mithilfe von Model Serving. Das Modell muss im Unity Catalog oder in der Arbeitsbereichsmodellregistrierung registriert sein.

Informationen zur Bereitstellung und zum Deployment von generativen KI-Modellen finden Sie stattdessen in den folgenden Artikeln:

Schritt 1: Protokollieren des Modells

Es gibt verschiedene Möglichkeiten, das Modell für die Modellbereitstellung zu protokollieren:

Protokollierungsmethode Beschreibung
Automatische Protokollierung Dieses Verfahren wird automatisch aktiviert, wenn Sie Databricks Runtime for Machine Learning verwenden. Dies ist die einfachste Möglichkeit, bietet Ihnen jedoch weniger Kontrolle.
Protokollierung mit den integrierten Varianten von MLflow Sie können das Modell manuell mit den integrierten Modellaromen von MLflow protokollieren.
Benutzerdefinierte Protokollierung mit pyfunc Verwenden Sie dieses Verfahren, wenn Sie über ein benutzerdefiniertes Modell verfügen oder zusätzliche Schritte vor oder nach dem Rückschluss benötigen.

Das folgende Beispiel veranschaulicht, wie Sie Ihr MLflow-Modell mithilfe der transformer-Variante protokollieren und die Parameter angeben, die Sie für Ihr Modell benötigen.

with mlflow.start_run():
    model_info = mlflow.transformers.log_model(
        transformers_model=text_generation_pipeline,
        artifact_path="my_sentence_generator",
        inference_config=inference_config,
        registered_model_name='gpt2',
        input_example=input_example,
        signature=signature
    )

Nachdem Ihr Modell protokolliert wurde, vergewissern Sie sich, dass Ihr Modell entweder im Unity-Katalog oder in der MLflow-Modellregistrierung registriert ist.

Schritt 2: Endpunkt über die Serving-UI erstellen

Nachdem Ihr registriertes Modell protokolliert wurde und Sie bereit sind, es bereitzustellen, können Sie mithilfe der Serving-Benutzeroberfläche einen Endpunkt für die Modellbereitstellung erstellen.

  1. Klicken Sie in der Seitenleiste auf Serving, um die Serving-Benutzeroberfläche anzuzeigen.

  2. Klicken Sie auf Bereitstellungsendpunkt erstellen.

    Bereich für die Modellbereitstellung auf der Databricks-Benutzeroberfläche

  3. Geben Sie im Feld Name einen Namen für Ihren Endpunkt an.

  4. Im Abschnitt Bereitgestellte Entitäten

    1. Wählen Sie das Feld Entität aus, um das Formular Bereitgestellte Entität auswählen zu öffnen.
    2. Wählen Sie den Modelltyp aus, den Sie bereitstellen möchten. Das Formular wird basierend auf Ihrer Auswahl dynamisch aktualisiert.
    3. Wählen Sie aus, welches Modell und welche Modellversion Sie bereitstellen möchten.
    4. Wählen Sie den Prozentsatz des Datenverkehrs aus, der an Ihr bereitgestelltes Modell weitergeleitet wird.
    5. Wählen Sie die zu verwendende Rechengröße aus.
    6. Wählen Sie unter Horizontale Skalierung der Rechenleistung die Größe aus, die der Anzahl der Anfragen entspricht, die dieses bereitgestellte Modell gleichzeitig verarbeiten kann. Diese Zahl sollte ungefähr dem Ergebnis der folgenden Rechnung entsprechen: QPS × Modellausführungszeit.
      1. Verfügbare Größen sind Klein für 0–4 Anforderungen, Mittel 8–16 Anforderungen und Große für 16–64 Anforderungen.
    7. Geben Sie an, ob der Endpunkt auf null skaliert werden soll, wenn er nicht verwendet wird.
  5. Klicken Sie auf Erstellen. Die Seite Bereitstellungsendpunkte wird angezeigt, wobei Status des Bereitstellungsendpunkts als „Nicht bereit“ angezeigt wird.

    Erstellen eines Modellbereitstellungsendpunkts

Wenn Sie es vorziehen, einen Endpunkt programmgesteuert mit der Bereitstellungs-API von Databricks zu erstellen, lesen Sie Erstellen von benutzerdefinierten Endpunkten für die Modellbereitstellung.

Schritt 3: Abfragen des Endpunkts

Die einfachste und schnellste Möglichkeit, Scoring-Anfragen an Ihr bereitgestelltes Modell zu testen und zu senden, ist die Serving-Benutzeroberfläche zu verwenden.

  1. Wählen Sie auf der Seite Bereitstellungsendpunkt die Option Abfrageendpunkt aus.

  2. Fügen Sie die Modelleingabedaten im JSON-Format ein, und klicken Sie auf Anforderung senden. Wenn das Modell mit einem Eingabebeispiel protokolliert wurde, klicken Sie auf Show Example (Beispiel anzeigen), um das Eingabebeispiel zu laden.

       {
       "inputs" : ["Hello, I'm a language model,"],
       "params" : {"max_new_tokens": 10, "temperature": 1}
       }
    

Erstellen Sie zum Senden von Bewertungsanforderungen eine JSON-Datei mit einem der unterstützten Schlüssel und einem dem Eingabeformat entsprechenden JSON-Objekt. Die unterstützten Formate und einen Leitfaden zum Senden von Bewertungsanforderungen mithilfe der API finden Sie unter Abfragen von Bereitstellungsendpunkten für benutzerdefinierte Modelle.

Wenn Sie beabsichtigen, außerhalb der Azure Databricks-Benutzeroberfläche für die Bereitstellung auf Ihren Dienstendpunkt zuzugreifen, benötigen Sie ein DATABRICKS_API_TOKEN-Element.

Wichtig

Als bewährte Sicherheitsmethode für Produktionsszenarien empfiehlt Databricks, Computer-zu-Computer-OAuth-Token für die Authentifizierung während der Produktion zu verwenden.

Für die Test- und Entwicklungsphase empfiehlt Databricks die Verwendung eines persönlichen Zugriffstokens, das Dienstprinzipalen anstelle von Arbeitsbereichsbenutzern gehört. Informationen zum Erstellen von Token für Dienstprinzipale finden Sie unter Verwalten von Token für einen Dienstprinzipal.

Beispiel-Notebooks

Im folgenden Notebook erfahren Sie, wie Sie ein MLflow-transformers-Modell mit Model Serving bereitstellen.

Bereitstellen eines Notizbuchs für ein Hugging Face Transformers-Modell

Notebook abrufen

Im folgenden Notebook erfahren Sie, wie Sie ein MLflow-pyfunc-Modell mit Model Serving bereitstellen. Weitere Informationen zum Anpassen Ihrer Modellimplementierungen finden Sie unter Bereitstellen von Python-Code mit der Modellbereitstellung.

Bereitstellen eines Notebooks für das MLflow pyfunc-Modell

Notebook abrufen