Databricks-Ressourcenpakete für MLOps Stacks
Sie können Databricks-Ressourcenpakete, die Databricks-CLI (Command Line Interface, Befehlszeilenschnittstelle) und das Databricks MLOps Stack-Repository auf GitHub verwenden, um MLOps Stacks zu erstellen. Ein MLOps Stack ist ein MLOps-Projekt in Azure Databricks, das Best Practices der Produktion befolgt, ohne dass Einstellungen oder Optionen konfiguriert werden müssen. Weitere Informationen finden Sie unter Was sind Databricks-Ressourcenpakete?.
Führen Sie die folgenden Schritte aus, um ein MLOps Stacks-Projekt zu erstellen, bereitzustellen und auszuführen:
Anforderungen
- Stellen Sie sicher, dass im gewünschten Remotearbeitsbereich Arbeitsbereichsdateien aktiviert sind. Weitere Informationen finden Sie unter Was sind Arbeitsbereichsdateien?.
- Stellen Sie auf Ihrem Entwicklungscomputer sicher, dass die Databricks CLI-Version 0.212.2 oder höher installiert ist. Um die installierte Databricks-CLI-Version zu überprüfen, führen Sie den Befehl
databricks -v
aus. Informationen zum Aktualisieren von Databricks CLI-Version finden Sie unter Installieren oder Aktualisieren der Databricks CLI. (Bundles funktionieren nicht mit Version 0.18 oder niedrigeren Versionen der Databricks-Befehlszeilenschnittstelle.)
Schritt 1: Einrichten der Authentifizierung
Konfigurieren der Databricks-CLI für die Authentifizierung.
In diesem Artikel wird davon ausgegangen, dass Sie zur Authentifizierung die U2M-Authentifizierung von OAuth (User-to-Machine) und ein entsprechendes Azure Databricks-Konfigurationsprofil namens DEFAULT
verwenden möchten.
Hinweis
Die U2M-Authentifizierung eignet sich für das Testen dieser Schritte in Echtzeit. Bei vollständig automatisierten Workflows empfiehlt Databricks stattdessen die Verwendung der OAuth-M2M-Authentifizierung (Machine-to-Machine, Computer-zu-Computer). Lesen Sie die Anweisungen zur Einrichtung der M2M-Authentifizierung unter Authentifizierung.
Verwenden Sie die Databricks CLI, um die OAuth-Tokenverwaltung lokal zu initiieren, indem Sie den folgenden Befehl für jeden Zielarbeitsbereich ausführen.
Ersetzen Sie
<workspace-url>
im folgenden Befehl durch Ihre arbeitsbereichsspezifische Azure Databricks-URL, z. B.https://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Die Databricks-CLI fordert Sie auf, die von Ihnen eingegebenen Informationen als Azure Databricks-Konfigurationsprofil zu speichern. Drücken Sie die EINGABETASTE (
Enter
), um den vorgeschlagenen Profilnamen zu übernehmen, oder geben Sie den Namen eines neuen oder bereits vorhandenen Profils ein. Ist bereits ein Profil mit dem gleichen Namen vorhanden, wird es mit den von Ihnen eingegebenen Informationen überschrieben. Sie können Profile verwenden, um Ihren Authentifizierungskontext schnell über mehrere Arbeitsbereiche hinweg zu wechseln.Um eine Liste vorhandener Profile abzurufen, führen Sie in der Databricks-CLI den Befehl
databricks auth profiles
in einem separaten Terminal oder in einer separaten Eingabeaufforderung aus. Um die vorhandenen Einstellungen eines bestimmten Profils anzuzeigen, können Sie den Befehldatabricks auth env --profile <profile-name>
ausführen.Führen Sie in Ihrem Webbrowser die Anweisungen auf dem Bildschirm aus, um sich bei Ihrem Azure Databricks-Arbeitsbereich anzumelden.
Führen Sie einen der folgenden Befehle aus, um den aktuellen OAuth-Tokenwert eines Profils und den bevorstehenden Ablaufzeitstempel des Tokens anzuzeigen:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Wenn Sie über mehrere Profile mit demselben
--host
-Wert verfügen, müssen Sie möglicherweise die Optionen--host
und-p
zusammen angeben, damit die Databricks CLI die richtigen übereinstimmenden Informationen des OAuth-Tokens ermitteln kann.
Schritt 2: Erstellen des Bundleprojekts
Verwenden Sie Databricks-Ressourcenpaketvorlagen, um die Startdateien Ihres MLOps Stacks-Projekts zu erstellen. Führen Sie dazu zunächst den folgenden Befehl aus:
databricks bundle init mlops-stacks
Beantworten Sie die Prompts auf dem Bildschirm. Eine Anleitung zum Angeben der Informationen für diese Eingabeaufforderungen finden Sie unter Starten eines neuen Projekts im Databricks MLOps Stacks-Repository auf GitHub.
Die erste Eingabeaufforderung bietet die Möglichkeit, die ML-Codekomponenten, die CI/CD-Komponenten oder beides einzurichten. Diese Option vereinfacht das anfängliche Setup, da Sie nur die Komponenten erstellen können, die sofort relevant sind. (Führen Sie den Initialisierungsbefehl erneut aus, um die anderen Komponenten einzurichten.) Wählen Sie eines der folgenden Szenarien aus:
CICD_and_Project
(Standard) – Sowohl ML-Code als auch CI/CD-Komponenten einrichten.Project_Only
– Nur ML-Codekomponenten einrichten. Diese Option ist für Datenanalysten zum Einstieg gedacht.CICD_Only
- Nur CI/CD-Komponenten einrichten. Diese Option dient ML-Ingenieuren zum Einrichten einer Infrastruktur.
Nachdem Sie alle Fragen auf dem Bildschirm beantwortet haben, erstellt die Vorlage die Startdateien für Ihr MLOps Stacks-Projekt und fügt sie Ihrem aktuellen Arbeitsverzeichnis hinzu.
Passen Sie die Startdateien Ihres MLOps Stacks-Projekts wie gewünscht an. Befolgen Sie hierzu die Anleitungen in den folgenden Dateien in Ihrem neuen Projekt:
Role Goal Docs Erstmalige Benutzer*innen dieses Repositorys Grundlegendes zur ML-Pipeline und -Codestruktur in diesem Repository README.md
Data Scientist Erste Schritte beim Schreiben von ML-Code für ein brandneues Projekt <project-name>/README.md
Data Scientist Aktualisieren von ML-Produktionscode (z. B. Modelltrainingslogik) für ein vorhandenes Projekt docs/ml-pull-request.md
Data Scientist Ändern von ML-Ressourcen für das Produktionsmodell (z. B. Modelltrainings- oder Rückschlussaufträge) <project-name>/resources/README.md
MLOps/DevOps Einrichten von CI/CD für das aktuelle ML-Projekt docs/mlops-setup.md
Beim Anpassen von Experimenten stimmen die Zuordnungen innerhalb einer Experimentdeklaration mit den Anforderungsnutzdaten des Erstellungsvorgangs für Experimente überein, wie in POST /api/2.0/mlflow/experiments/create im Verweis auf die REST-API definiert, der im YAML-Format ausgedrückt wird.
Beim Anpassen von Aufträgen stimmen die Zuordnungen innerhalb einer Auftragsdeklaration mit den Anforderungsnutzdaten des Erstellungsvorgangs für Aufträge überein, wie in POST /api/2.1/jobs/create im Verweis auf die REST-API definiert, der im YAML-Format ausgedrückt wird.
Tipp
Sie können die Einstellungen für neue Auftragscluster in Bundles definieren, kombinieren und außer Kraft setzen, indem Sie die unter Außerkraftsetzen von Clustereinstellungen in Databricks-Ressourcenbundles beschriebenen Techniken anwenden.
Zum Anpassen von Modellen entsprechen die Zuordnungen innerhalb einer Modelldeklaration der Anforderungsnutzlast des Unity-Katalogmodellvorgangs gemäß definition in POST /api/2.1/unity-catalog/models in der REST-API-Referenz, ausgedrückt im YAML-Format.
Beim Anpassen von Pipelines stimmen die Zuordnungen innerhalb einer Pipelinedeklaration mit den Anforderungsnutzdaten des Erstellungsvorgangs für Pipelines überein, wie in POST /api/2.0/pipelines im Verweis auf die REST-API definiert, der im YAML-Format ausgedrückt wird.
Schritt 3: Überprüfen des Bundleprojekts
Überprüfen Sie, ob die Bundlekonfiguration gültig ist. Führen Sie hierzu die Databricks CLI im Stammverzeichnis des Projekts aus, in dem sich databricks.yml
befindet, wie folgt aus:
databricks bundle validate
Wenn eine Zusammenfassung der Bundlekonfiguration zurückgegeben wird, war die Prüfung erfolgreich. Wenn Fehler zurückgegeben werden, müssen Sie sie beheben und dann diesen Schritt wiederholen.
Schritt 4: Bereitstellen des Pakets
Stellen Sie die Ressourcen und Artefakte des Projekts im gewünschten Remotearbeitsbereich bereit. Führen Sie hierzu die Databricks CLI im Stammverzeichnis des Projekts aus, in dem sich databricks.yml
befindet, wie folgt aus:
databricks bundle deploy -t <target-name>
Ersetzen Sie <target-name>
durch den Namen des gewünschten Ziels in der Datei databricks.yml
, z. B. dev
, test
, staging
oder prod
.
Schritt 5: Ausführen des bereitgestellten Bundles
Die bereitgestellten Azure Databricks-Aufträge des Projekts werden automatisch entsprechend ihren vordefinierten Zeitplänen ausgeführt. Um einen bereitgestellten Auftrag sofort auszuführen, führen Sie die Databricks CLI im Stammverzeichnis des Projekts aus, in dem sich databricks.yml
befindet, wie folgt aus:
databricks bundle run -t <target-name> <job-name>
- Ersetzen Sie
<target-name>
durch den Namen des gewünschten Ziels in der Dateidatabricks.yml
, in der der Auftrag bereitgestellt wurde, z. B.dev
,test
,staging
oderprod
. - Ersetzen Sie
<job-name>
durch den Namen des Auftrags in einer der.yml
-Dateien in<project-name>/databricks-resources
, z. B.batch_inference_job
,write_feature_table_job
odermodel_training_job
.
Es wird ein Link zum Azure Databricks-Auftrag angezeigt, den Sie in Ihren Webbrowser kopieren können, um den Auftrag auf der Azure Databricks-Benutzeroberfläche zu öffnen.
Schritt 6: Löschen des bereitgestellten Bundles (optional)
Um die Ressourcen und Artefakte eines bereitgestellten Projekts zu löschen, wenn Sie diese nicht mehr benötigen, führen Sie die Databricks CLI im Stammverzeichnis des Projekts aus, in dem sich databricks.yml
befindet, wie folgt aus:
databricks bundle destroy -t <target-name>
Ersetzen Sie <target-name>
durch den Namen des gewünschten Ziels in der Datei databricks.yml
, z. B. dev
, test
, staging
oder prod
.
Geben Sie bei den Bildschirmaufforderungen die entsprechenden Informationen ein, um das Löschen der zuvor bereitgestellten Ressourcen und Artefakte zu bestätigen.