Git-integratie voor Azure Machine Learning

Git is een populair versiebeheersysteem waarmee u uw projecten kunt delen en eraan kunt samenwerken.

Azure Machine Learning biedt volledige ondersteuning voor Git-opslagplaatsen voor het bijhouden van werk. U kunt opslagplaatsen rechtstreeks klonen naar uw gedeelde werkruimtebestandssysteem, Git gebruiken op uw lokale werkstation of Git gebruiken vanuit een CI/CD-pijplijn.

Wanneer u een taak indient bij Azure Machine Learning, worden bronbestanden opgeslagen in een lokale Git-opslagplaats, dan wordt informatie over de opslagplaats bijgehouden als onderdeel van het trainingsproces.

Omdat Azure Machine Learning informatie bijhoudt uit een lokale Git-opslagplaats, is deze niet gekoppeld aan een specifieke centrale opslagplaats. Uw opslagplaats kan worden gekloond vanuit GitHub, GitLab, Bitbucket, Azure DevOps of een andere git-compatibele service.

Tip

Visual Studio Code gebruiken om met Git te communiceren via een grafische gebruikersinterface. Als u verbinding wilt maken met een extern rekenproces van Azure Machine Learning met behulp van Visual Studio Code, raadpleegt u Verbinding maken met een Azure Machine Learning-rekenproces in Visual Studio Code (preview)

Zie Versiebeheer gebruiken in VS Code en werken met GitHub in VS Code voor meer informatie over de functies voor versiebeheer van Visual Studio Code.

Git-opslagplaatsen klonen in het bestandssysteem van de werkruimte

Azure Machine Learning biedt een gedeeld bestandssysteem voor alle gebruikers in de werkruimte. Als u een Git-opslagplaats in deze bestandsshare wilt klonen, raden we u aan een rekenproces & te maken dat een terminal opent. Zodra de terminal is geopend, hebt u toegang tot een volledige Git-client en kunt u git klonen en ermee werken via de Git CLI-ervaring.

We raden u aan de opslagplaats te klonen in uw gebruikersmap, zodat anderen geen conflicten rechtstreeks in uw werkbranch kunnen aanbrengen.

Tip

Er is een prestatieverschil tussen klonen naar het lokale bestandssysteem van het rekenproces of het klonen naar het gekoppelde bestandssysteem (gekoppeld als de ~/cloudfiles/code map). Over het algemeen heeft het klonen naar het lokale bestandssysteem betere prestaties dan het gekoppelde bestandssysteem. Het lokale bestandssysteem gaat echter verloren als u het rekenproces verwijdert en opnieuw maakt. Het gekoppelde bestandssysteem wordt bewaard als u het rekenproces verwijdert en opnieuw maakt.

U kunt elke Git-opslagplaats klonen waarvoor u zich kunt verifiëren (GitHub, Azure-opslagplaatsen, BitBucket, enzovoort)

Zie de handleiding voor het gebruik van Git CLI voor meer informatie over het klonen.

Uw Git-account verifiëren met SSH

Een nieuwe SSH-sleutel genereren

  1. Open het terminalvenster op het tabblad Azure Machine Learning Notebook.

  2. Plak de onderstaande tekst, waarbij u uw e-mailadres vervangt.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Hiermee maakt u een nieuwe ssh-sleutel met behulp van de opgegeven e-mail als label.

> Generating public/private rsa key pair.
  1. Druk op Enter wanneer u wordt gevraagd een bestand in te voeren waarin de toets moet worden opgeslagen. Hiermee wordt de standaardbestandslocatie geaccepteerd.

  2. Controleer of de standaardlocatie '/home/azureuser/.ssh' is en druk op Enter. Geef anders de locatie '/home/azureuser/.ssh' op.

Tip

Zorg ervoor dat de SSH-sleutel is opgeslagen in '/home/azureuser/.ssh'. Dit bestand wordt opgeslagen op het rekenproces is alleen toegankelijk door de eigenaar van het rekenproces

> Enter a file in which to save the key (/home/azureuser/.ssh/id_rsa): [Press enter]
  1. Typ bij de prompt een beveiligde wachtwoordzin. U wordt aangeraden een wachtwoordzin toe te voegen aan uw SSH-sleutel voor extra beveiliging
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

De openbare sleutel toevoegen aan Git-account

  1. Kopieer de inhoud van het openbare-sleutelbestand in het terminalvenster. Als u de naam van de sleutel hebt gewijzigd, vervangt u id_rsa.pub door de bestandsnaam van de openbare sleutel.
cat ~/.ssh/id_rsa.pub

Tip

Kopiëren en plakken in Terminal

  • Windows: Ctrl-Insert kopiëren en gebruiken Ctrl-Shift-v of Shift-Insert plakken.
  • Mac OS: Cmd-c kopiëren en Cmd-v plakken.
  • FireFox/IE biedt mogelijk geen ondersteuning voor klembordmachtigingen.
  1. Selecteer en kopieer de sleuteluitvoer op het klembord.

De Git-opslagplaats klonen met SSH

  1. Kopieer de SSH Git-kloon-URL uit de Git-opslagplaats.

  2. Plak de URL in de git clone onderstaande opdracht om de URL van uw SSH Git-opslagplaats te gebruiken. Dit ziet er ongeveer als volgt uit:

git clone git@example.com:GitUser/azureml-example.git
Cloning into 'azureml-example'...

U ziet een antwoord zoals:

The authenticity of host 'example.com (192.30.255.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.255.112' (RSA) to the list of known hosts.

SSH kan de SSH-vingerafdruk van de server weergeven en u vragen om deze te verifiëren. Controleer of de weergegeven vingerafdruk overeenkomt met een van de vingerafdrukken op de pagina openbare SSH-sleutels.

SSH geeft deze vingerafdruk weer wanneer deze verbinding maakt met een onbekende host om u te beschermen tegen man-in-the-middle-aanvallen. Zodra u de vingerafdruk van de host hebt geaccepteerd, wordt u niet opnieuw door SSH gevraagd, tenzij de vingerafdruk wordt gewijzigd.

  1. Wanneer u wordt gevraagd of u wilt doorgaan met verbinding maken, typt yesu . Git kloont de opslagplaats en stelt de origin remote in om verbinding te maken met SSH voor toekomstige Git-opdrachten.

Code bijhouden die afkomstig is van Git-opslagplaatsen

Wanneer u een trainingstaak verzendt vanuit de Python SDK of Machine Learning CLI, worden de bestanden die nodig zijn om het model te trainen, geüpload naar uw werkruimte. Als de git opdracht beschikbaar is in uw ontwikkelomgeving, wordt deze door het uploadproces gebruikt om te controleren of de bestanden zijn opgeslagen in een Git-opslagplaats. Als dat het zo is, worden gegevens uit uw Git-opslagplaats ook geüpload als onderdeel van de trainingstaak. Deze informatie wordt opgeslagen in de volgende eigenschappen voor de trainingstaak:

Eigenschap Git-opdracht die wordt gebruikt om de waarde op te halen Beschrijving
azureml.git.repository_uri git ls-remote --get-url De URI waaruit uw opslagplaats is gekloond.
mlflow.source.git.repoURL git ls-remote --get-url De URI waaruit uw opslagplaats is gekloond.
azureml.git.branch git symbolic-ref --short HEAD De actieve vertakking toen de taak werd verzonden.
mlflow.source.git.branch git symbolic-ref --short HEAD De actieve vertakking toen de taak werd verzonden.
azureml.git.commit git rev-parse HEAD De doorvoer-hash van de code die voor de taak is verzonden.
mlflow.source.git.commit git rev-parse HEAD De doorvoer-hash van de code die voor de taak is verzonden.
azureml.git.dirty git status --porcelain . True, als de vertakking/doorvoer vuil is; anders, false.

Deze informatie wordt verzonden voor taken die gebruikmaken van een estimator, machine learning-pijplijn of scriptuitvoering.

Als uw trainingsbestanden zich niet in een Git-opslagplaats in uw ontwikkelomgeving bevinden of als de git opdracht niet beschikbaar is, wordt er geen git-gerelateerde informatie bijgehouden.

Tip

Als u wilt controleren of de Git-opdracht beschikbaar is in uw ontwikkelomgeving, opent u een shell-sessie, opdrachtprompt, PowerShell of een andere opdrachtregelinterface en typt u de volgende opdracht:

git --version

Als dit is geïnstalleerd en in het pad, ontvangt u een antwoord dat vergelijkbaar is met git version 2.4.1. Zie de Git-website voor meer informatie over het installeren van Git in uw ontwikkelomgeving.

De vastgelegde gegevens weergeven

De Git-informatie wordt opgeslagen in de eigenschappen voor een trainingstaak. U kunt deze informatie bekijken met behulp van de Azure Portal of Python SDK.

Azure Portal

  1. Selecteer uw werkruimte in de studioportal.
  2. Selecteer Taken en selecteer vervolgens een van uw experimenten.
  3. Selecteer een van de taken in de kolom Weergavenaam .
  4. Selecteer Uitvoer en logboeken en vouw vervolgens de logboeken en azureml-vermeldingen uit. Selecteer de koppeling die begint met ###_azure.

De vastgelegde informatie bevat tekst die lijkt op de volgende JSON:

"properties": {
    "_azureml.ComputeTargetType": "batchai",
    "ContentSnapshotId": "5ca66406-cbac-4d7d-bc95-f5a51dd3e57e",
    "azureml.git.repository_uri": "git@github.com:azure/machinelearningnotebooks",
    "mlflow.source.git.repoURL": "git@github.com:azure/machinelearningnotebooks",
    "azureml.git.branch": "master",
    "mlflow.source.git.branch": "master",
    "azureml.git.commit": "4d2b93784676893f8e346d5f0b9fb894a9cf0742",
    "mlflow.source.git.commit": "4d2b93784676893f8e346d5f0b9fb894a9cf0742",
    "azureml.git.dirty": "True",
    "AzureML.DerivedImageName": "azureml/azureml_9d3568242c6bfef9631879915768deaf",
    "ProcessInfoFile": "azureml-logs/process_info.json",
    "ProcessStatusFile": "azureml-logs/process_status.json"
}

Python-SDK

Nadat u een trainingsuitvoering hebt ingediend, wordt een Run-object geretourneerd. Het properties kenmerk van dit object bevat de geregistreerde Git-informatie. Met de volgende code wordt bijvoorbeeld de doorvoerhash opgehaald:

VAN TOEPASSING OP:Python SDK azureml v1

run.properties['azureml.git.commit']

Volgende stappen