Databricks-assetbundels voor MLOps-stacks
U kunt Databricks Asset Bundles, de Databricks CLI en de Databricks MLOps Stack-opslagplaats op GitHub gebruiken om MLOps-stacks te maken. Een MLOps Stack is een MLOps-project in Azure Databricks dat standaard de best practices voor productie volgt. Bekijk wat zijn Databricks Asset Bundles?.
Voer de volgende stappen uit om een MLOps Stacks-project te maken, te implementeren en uit te voeren:
Vereisten
- Zorg ervoor dat voor de externe doelwerkruimte werkruimtebestanden zijn ingeschakeld. Zie Wat zijn werkruimtebestanden?
- Controleer op uw ontwikkelcomputer of Databricks CLI versie 0.212.2 of hoger is geïnstalleerd. Voer de opdracht
databricks -v
uit om de geïnstalleerde Databricks CLI-versie te controleren. Zie De Databricks CLI installeren of bijwerken om uw Databricks CLI-versie bij te werken. (Bundels werken niet met Databricks CLI-versies 0.18 en lager.)
Stap 1: Verificatie instellen
Configureer de Databricks CLI voor verificatie.
In dit artikel wordt ervan uitgegaan dat u OAuth-gebruikers-naar-machine-verificatie (U2M) en een bijbehorend Azure Databricks-configuratieprofiel DEFAULT
voor verificatie wilt gebruiken.
Notitie
U2M-verificatie is geschikt voor het uitvoeren van deze stappen in realtime. Voor volledig geautomatiseerde werkstromen raadt Databricks u aan in plaats daarvan OAuth-verificatie van machine-naar-machine (M2M) te gebruiken. Zie de installatie-instructies voor M2M-verificatie in Verificatie.
Gebruik de Databricks CLI om OAuth-tokenbeheer lokaal te starten door de volgende opdracht uit te voeren voor elke doelwerkruimte.
Vervang in de volgende opdracht bijvoorbeeld
https://adb-1234567890123456.7.azuredatabricks.net
door<workspace-url>
de URL van uw Azure Databricks per werkruimte.databricks auth login --host <workspace-url>
De Databricks CLI vraagt u om de gegevens op te slaan die u hebt ingevoerd als een Azure Databricks-configuratieprofiel. Druk
Enter
om de voorgestelde profielnaam te accepteren of voer de naam van een nieuw of bestaand profiel in. Elk bestaand profiel met dezelfde naam wordt overschreven met de gegevens die u hebt ingevoerd. U kunt profielen gebruiken om snel uw verificatiecontext over te schakelen tussen meerdere werkruimten.Als u een lijst met bestaande profielen wilt ophalen, gebruikt u in een afzonderlijke terminal of opdrachtprompt de Databricks CLI om de opdracht
databricks auth profiles
uit te voeren. Als u de bestaande instellingen van een specifiek profiel wilt weergeven, voert u de opdrachtdatabricks auth env --profile <profile-name>
uit.Voltooi in uw webbrowser de instructies op het scherm om u aan te melden bij uw Azure Databricks-werkruimte.
Voer een van de volgende opdrachten uit om de huidige OAuth-tokenwaarde van een profiel en de geplande verlooptijdstempel van het token weer te geven:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Als u meerdere profielen met dezelfde
--host
waarde hebt, moet u mogelijk de--host
en-p
opties opgeven om de Databricks CLI te helpen de juiste overeenkomende OAuth-tokengegevens te vinden.
Stap 2: Het bundelproject maken
Gebruik Databricks Asset Bundle-sjablonen om de startersbestanden van uw MLOps Stacks-project te maken. U doet dit door eerst de volgende opdracht uit te voeren:
databricks bundle init mlops-stacks
Beantwoord de aanwijzingen op het scherm. Zie Een nieuw project starten in de Databricks MLOps Stacks-opslagplaats op GitHub voor hulp bij het beantwoorden van deze prompts.
De eerste prompt biedt de mogelijkheid om de ML-codeonderdelen, de CI/CD-onderdelen of beide in te stellen. Deze optie vereenvoudigt de eerste installatie, omdat u ervoor kunt kiezen om alleen de onderdelen te maken die onmiddellijk relevant zijn. (Als u de andere onderdelen wilt instellen, voert u de initialisatieopdracht opnieuw uit.) Selecteer een van de volgende opties:
CICD_and_Project
(standaard): zowel ML-code als CI/CD-onderdelen instellen.Project_Only
- Alleen ML-codeonderdelen instellen. Deze optie is bedoeld voor gegevenswetenschappers om aan de slag te gaan.CICD_Only
- Alleen CI/CD-onderdelen instellen. Deze optie is bedoeld voor ML-technici om infrastructuur in te stellen.
Nadat u alle prompts op het scherm hebt beantwoord, maakt de sjabloon de startersbestanden van uw MLOps Stacks-project en voegt deze toe aan uw huidige werkmap.
Pas de startersbestanden van uw MLOps Stacks-project naar wens aan. Volg hiervoor de richtlijnen in de volgende bestanden in uw nieuwe project:
Role Goal Documenten Eerste gebruikers van deze opslagplaats Inzicht in de ML-pijplijn en codestructuur in deze opslagplaats README.md
Data Scientist Aan de slag met het schrijven van ML-code voor een gloednieuw project <project-name>/README.md
Data Scientist ML-code voor productie bijwerken (bijvoorbeeld modeltrainingslogica) voor een bestaand project docs/ml-pull-request.md
Data Scientist ML-resources voor productiemodellen wijzigen (bijvoorbeeld modeltraining of deductietaken) <project-name>/resources/README.md
MLOps/DevOps CI/CD instellen voor het huidige ML-project docs/mlops-setup.md
Voor het aanpassen van experimenten komen de toewijzingen binnen een experimentdeclaratie overeen met de nettolading van de aanvraag voor het maken van een experimentbewerking, zoals gedefinieerd in POST /api/2.0/mlflow/experiments/create in de REST API-verwijzing, uitgedrukt in YAML-indeling.
Voor het aanpassen van taken komen de toewijzingen binnen een taakdeclaratie overeen met de nettolading van de aanvraag van de taak maken,zoals gedefinieerd in POST /api/2.1/jobs/create in de REST API-verwijzing, uitgedrukt in YAML-indeling.
Tip
U kunt de instellingen voor nieuwe taakclusters in bundels definiëren, combineren en overschrijven met behulp van de technieken die worden beschreven in Clusterinstellingen overschrijven in Databricks Asset Bundles.
Voor het aanpassen van modellen komen de toewijzingen binnen een modeldeclaratie overeen met de nettolading van de aanvraagbewerking voor het maken van de aanvraagbewerking van Unity Catalog, zoals gedefinieerd in POST /api/2.1/unity-catalog/models in de REST API-verwijzing, uitgedrukt in YAML-indeling.
Voor het aanpassen van pijplijnen komen de toewijzingen binnen een pijplijndeclaratie overeen met de nettolading van de aanvraag voor het maken van de pijplijnbewerking, zoals gedefinieerd in POST /api/2.0/pipelines in de REST API-verwijzing, uitgedrukt in YAML-indeling.
Stap 3: Het bundelproject valideren
Controleer of de bundelconfiguratie geldig is. Voer hiervoor de Databricks CLI uit vanuit de hoofdmap van het project, waar de databricks.yml
zich bevindt, als volgt:
databricks bundle validate
Als er een samenvatting van de bundelconfiguratie wordt geretourneerd, is de validatie voltooid. Als er fouten worden geretourneerd, lost u de fouten op en herhaalt u deze stap.
Stap 4: De bundel implementeren
Implementeer de resources en artefacten van het project naar de gewenste externe werkruimte. Voer hiervoor de Databricks CLI uit vanuit de hoofdmap van het project, waar de databricks.yml
zich bevindt, als volgt:
databricks bundle deploy -t <target-name>
Vervang door <target-name>
de naam van het gewenste doel in het databricks.yml
bestand, bijvoorbeeld dev
, test
staging
of prod
.
Stap 5: De geïmplementeerde bundel uitvoeren
De geïmplementeerde Azure Databricks-taken van het project worden automatisch uitgevoerd volgens hun vooraf gedefinieerde planningen. Als u een geïmplementeerde taak onmiddellijk wilt uitvoeren, voert u de Databricks CLI als volgt uit vanuit de hoofdmap van het project, waar de databricks.yml
taak zich bevindt:
databricks bundle run -t <target-name> <job-name>
- Vervang door
<target-name>
de naam van het gewenste doel in hetdatabricks.yml
bestand waarin de taak is geïmplementeerd, bijvoorbeelddev
,test
ofstaging
prod
. - Vervang
<job-name>
door de naam van de taak in een van de.yml
bestanden in<project-name>/databricks-resources
bijvoorbeeldbatch_inference_job
,write_feature_table_job
ofmodel_training_job
.
Er wordt een koppeling naar de Azure Databricks-taak weergegeven, die u kunt kopiëren naar uw webbrowser om de taak in de Gebruikersinterface van Azure Databricks te openen.
Stap 6: De geïmplementeerde bundel verwijderen (optioneel)
Als u de resources en artefacten van een geïmplementeerd project wilt verwijderen als u ze niet meer nodig hebt, voert u de Databricks CLI als volgt uit vanuit de hoofdmap van het project, waar het databricks.yml
zich bevindt:
databricks bundle destroy -t <target-name>
Vervang door <target-name>
de naam van het gewenste doel in het databricks.yml
bestand, bijvoorbeeld dev
, test
staging
of prod
.
Beantwoord de aanwijzingen op het scherm om het verwijderen van de eerder geïmplementeerde resources en artefacten te bevestigen.