Git-integrering för Azure Machine Learning
Git är ett populärt versionskontrollsystem som gör att du kan dela och samarbeta i dina projekt.
Azure Machine Learning har fullt stöd för Git-lagringsplatser för att spåra arbete – du kan klona lagringsplatser direkt till filsystemet för delade arbetsytor, använda Git på din lokala arbetsstation eller använda Git från en CI/CD-pipeline.
När du skickar ett jobb till Azure Machine Learning, om källfiler lagras på en lokal git-lagringsplats spåras information om lagringsplatsen som en del av träningsprocessen.
Eftersom Azure Machine Learning spårar information från en lokal git-lagringsplats är den inte kopplad till någon specifik central lagringsplats. Lagringsplatsen kan klonas från GitHub, GitLab, Bitbucket, Azure DevOps eller någon annan git-kompatibel tjänst.
Dricks
Använd Visual Studio Code för att interagera med Git via ett grafiskt användargränssnitt. Information om hur du ansluter till en fjärrberäkningsinstans i Azure Machine Learning med Visual Studio Code finns i Starta Visual Studio Code integrerat med Azure Machine Learning (förhandsversion)
Mer information om versionskontrollfunktioner i Visual Studio Code finns i Använda versionskontroll i VS Code och Arbeta med GitHub i VS Code.
Klona Git-databaser till arbetsytans filsystem
Azure Machine Learning tillhandahåller ett delat filsystem för alla användare på arbetsytan. Om du vill klona en Git-lagringsplats till den här filresursen rekommenderar vi att du skapar en beräkningsinstans och öppnar en terminal. När terminalen har öppnats har du åtkomst till en fullständig Git-klient och kan klona och arbeta med Git via Git CLI-upplevelsen.
Vi rekommenderar att du klonar lagringsplatsen till din användarkatalog så att andra inte gör kollisioner direkt på din arbetsgren.
Dricks
Det finns en prestandaskillnad mellan kloning till det lokala filsystemet för beräkningsinstansen eller kloning till det monterade filsystemet (monterat som ~/cloudfiles/code
katalogen). I allmänhet har kloning till det lokala filsystemet bättre prestanda än det monterade filsystemet. Det lokala filsystemet går dock förlorat om du tar bort och återskapar beräkningsinstansen. Det monterade filsystemet behålls om du tar bort och återskapar beräkningsinstansen.
Du kan klona valfri Git-lagringsplats som du kan autentisera till (GitHub, Azure Repos, BitBucket osv.)
Mer information om kloning finns i guiden om hur du använder Git CLI.
Autentisera ditt Git-konto med SSH
Generera en ny SSH-nyckel
Öppna terminalfönstret på fliken Azure Machine Learning Notebook.
Klistra in texten nedan och ersätt med din e-postadress.
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Detta skapar en ny ssh-nyckel med det angivna e-postmeddelandet som etikett.
> Generating public/private rsa key pair.
När du uppmanas att "Ange en fil där du vill spara nyckeln" trycker du på Retur. Detta accepterar standardfilens plats.
Kontrollera att standardplatsen är '/home/azureuser/.ssh' och tryck på Retur. Annars anger du platsen "/home/azureuser/.ssh".
Dricks
Kontrollera att SSH-nyckeln sparas i "/home/azureuser/.ssh". Den här filen sparas på beräkningsinstansen är endast tillgänglig för ägaren av beräkningsinstansen
> Enter a file in which to save the key (/home/azureuser/.ssh/id_rsa): [Press enter]
- I prompten skriver du en säker lösenfras. Vi rekommenderar att du lägger till en lösenfras i din SSH-nyckel för ökad säkerhet
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
Lägg till den offentliga nyckeln i Git-kontot
- Kopiera innehållet i den offentliga nyckelfilen i terminalfönstret. Om du har bytt namn på nyckeln ersätter du id_rsa.pub med filnamnet för den offentliga nyckeln.
cat ~/.ssh/id_rsa.pub
Dricks
Kopiera och klistra in i terminalen
- Windows:
Ctrl-Insert
för att kopiera och användaCtrl-Shift-v
ellerShift-Insert
klistra in. - Mac OS:
Cmd-c
för att kopiera ochCmd-v
klistra in. - FireFox/IE kanske inte stöder Behörigheter för Urklipp korrekt.
- Välj och kopiera SSH-nyckelutdata till Urklipp.
- Följ sedan stegen för att lägga till SSH-nyckeln till önskad kontotyp:
Azure DevOps Börja i steg 2.
BitBucket. Följ steg 4.
Klona Git-lagringsplatsen med SSH
Kopiera SSH Git-klonings-URL:en från Git-lagringsplatsen.
Klistra in URL:en i
git clone
kommandot nedan för att använda din SSH Git-lagringsplats-URL. Detta ser ut ungefär så här:
git clone git@example.com:GitUser/azureml-example.git
Cloning into 'azureml-example'...
Du ser ett svar som:
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 visa serverns SSH-fingeravtryck och be dig verifiera det. Du bör kontrollera att det fingeravtryck som visas matchar ett av fingeravtrycken på sidan offentliga SSH-nycklar.
SSH visar det här fingeravtrycket när det ansluter till en okänd värd för att skydda dig mot man-in-the-middle-attacker. När du har godkänt värdens fingeravtryck uppmanar SSH dig inte igen om inte fingeravtrycket ändras.
- När du tillfrågas om du vill fortsätta ansluta skriver du
yes
. Git klonar lagringsplatsen och konfigurerar ursprungsfjärrappen för att ansluta till SSH för framtida Git-kommandon.
Spåra kod som kommer från Git-lagringsplatser
När du skickar ett träningsjobb från Python SDK eller Machine Learning CLI laddas de filer som behövs för att träna modellen upp till din arbetsyta. git
Om kommandot är tillgängligt i utvecklingsmiljön använder uppladdningsprocessen det för att kontrollera om filerna lagras på en git-lagringsplats. I så fall laddas även information från git-lagringsplatsen upp som en del av träningsjobbet. Den här informationen lagras i följande egenskaper för träningsjobbet:
Property | Git-kommando som används för att hämta värdet | beskrivning |
---|---|---|
azureml.git.repository_uri |
git ls-remote --get-url |
Den URI som lagringsplatsen klonades från. |
mlflow.source.git.repoURL |
git ls-remote --get-url |
Den URI som lagringsplatsen klonades från. |
azureml.git.branch |
git symbolic-ref --short HEAD |
Den aktiva grenen när jobbet skickades. |
mlflow.source.git.branch |
git symbolic-ref --short HEAD |
Den aktiva grenen när jobbet skickades. |
azureml.git.commit |
git rev-parse HEAD |
Incheckningshash för den kod som skickades för jobbet. |
mlflow.source.git.commit |
git rev-parse HEAD |
Incheckningshash för den kod som skickades för jobbet. |
azureml.git.dirty |
git status --porcelain . |
True , om grenen/incheckningen är smutsig; annars . false |
Den här informationen skickas för jobb som använder en uppskattning, en maskininlärningspipeline eller en skriptkörning.
Om dina träningsfiler inte finns i en git-lagringsplats i utvecklingsmiljön, eller git
om kommandot inte är tillgängligt, spåras ingen git-relaterad information.
Dricks
Om du vill kontrollera om git-kommandot är tillgängligt i utvecklingsmiljön öppnar du en gränssnittssession, kommandotolk, PowerShell eller något annat kommandoradsgränssnitt och skriver följande kommando:
git --version
Om du har installerat och i sökvägen får du ett svar som liknar git version 2.4.1
. Mer information om hur du installerar git i utvecklingsmiljön finns på Git-webbplatsen.
Visa den loggade informationen
Git-informationen lagras i egenskaperna för ett träningsjobb. Du kan visa den här informationen med hjälp av Azure-portalen eller Python SDK.
Azure Portal
- Välj din arbetsyta i studioportalen.
- Välj Jobb och välj sedan ett av dina experiment.
- Välj ett av jobben i kolumnen Visningsnamn .
- Välj Utdata + loggar och expandera sedan loggarna och azureml-posterna. Välj länken som börjar med ###_azure.
Den loggade informationen innehåller text som liknar följande 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"
}
Visa egenskaper
När du har skickat en träningskörning returneras ett jobbobjekt . Attributet properties
för det här objektet innehåller den loggade git-informationen. Följande kod hämtar till exempel incheckningshash:
GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)
job.properties["azureml.git.commit"]