Integracja z usługą Git dla usługi Azure Machine Learning
Git to popularny system kontroli wersji, który umożliwia udostępnianie projektów i współpracę nad nimi.
Usługa Azure Machine Learning w pełni obsługuje repozytoria Git do śledzenia pracy — możesz klonować repozytoria bezpośrednio w udostępnionym systemie plików obszaru roboczego, używać narzędzia Git na lokalnej stacji roboczej lub używać usługi Git z potoku ciągłej integracji/ciągłego wdrażania.
W przypadku przesyłania zadania do usługi Azure Machine Learning, jeśli pliki źródłowe są przechowywane w lokalnym repozytorium Git, informacje o repozytorium są śledzone w ramach procesu trenowania.
Ponieważ usługa Azure Machine Learning śledzi informacje z lokalnego repozytorium Git, nie jest powiązana z żadnym konkretnym centralnym repozytorium. Repozytorium można sklonować z usług GitHub, GitLab, Bitbucket, Azure DevOps lub dowolnej innej usługi zgodnej z usługą git.
Napiwek
Korzystanie z programu Visual Studio Code w celu interakcji z usługą Git za pomocą graficznego interfejsu użytkownika. Aby nawiązać połączenie ze zdalnym wystąpieniem obliczeniowym usługi Azure Machine Learning przy użyciu programu Visual Studio Code, zobacz Uruchamianie programu Visual Studio Code zintegrowanego z usługą Azure Machine Learning (wersja zapoznawcza)
Aby uzyskać więcej informacji na temat funkcji kontroli wersji programu Visual Studio Code, zobacz Używanie kontroli wersji w programie VS Code i Praca z usługą GitHub w programie VS Code.
Klonowanie repozytoriów Git do systemu plików obszaru roboczego
Usługa Azure Machine Learning zapewnia współdzielony system plików dla wszystkich użytkowników w obszarze roboczym. Aby sklonować repozytorium Git do tego udziału plików, zalecamy utworzenie wystąpienia obliczeniowego i otwarcie terminalu. Po otwarciu terminalu masz dostęp do pełnego klienta Git i możesz sklonować usługę Git i pracować z usługą Git za pośrednictwem CLI usługi Git.
Zalecamy sklonowanie repozytorium do katalogu użytkowników, aby inne osoby nie działały bezpośrednio w gałęzi roboczej.
Napiwek
Istnieje różnica między klonowaniem do lokalnego systemu plików wystąpienia obliczeniowego lub klonowaniem w zainstalowanym systemie plików (zainstalowanym jako ~/cloudfiles/code
katalog). Ogólnie rzecz biorąc, klonowanie do lokalnego systemu plików będzie miało lepszą wydajność niż w zainstalowanym systemie plików. Jednak lokalny system plików zostanie utracony w przypadku usunięcia i ponownego utworzenia wystąpienia obliczeniowego. Zainstalowany system plików jest zachowywany w przypadku usunięcia i ponownego utworzenia wystąpienia obliczeniowego.
Możesz sklonować dowolne repozytorium Git, do którego można się uwierzytelnić (GitHub, Azure Repos, BitBucket itp.)
Aby uzyskać więcej informacji na temat klonowania, zobacz przewodnik dotyczący korzystania z interfejsu wiersza polecenia usługi Git.
Uwierzytelnianie konta Git za pomocą protokołu SSH
Generowanie nowego klucza SSH
Otwórz okno terminalu na karcie Notes usługi Azure Machine Learning.
Wklej poniższy tekst, podstawiając adres e-mail.
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Spowoduje to utworzenie nowego klucza SSH przy użyciu podanej wiadomości e-mail jako etykiety.
> Generating public/private rsa key pair.
Po wyświetleniu monitu o wprowadzenie pliku, w którym ma być zapisany" naciśnij Enter. Akceptuje domyślną lokalizację pliku.
Sprawdź, czy domyślna lokalizacja to "/home/azureuser/.ssh" i naciśnij Enter. W przeciwnym razie określ lokalizację "/home/azureuser/.ssh".
Napiwek
Upewnij się, że klucz SSH został zapisany w pliku "/home/azureuser/.ssh". Ten plik jest zapisywany w wystąpieniu obliczeniowym jest dostępny tylko dla właściciela wystąpienia obliczeniowego
> Enter a file in which to save the key (/home/azureuser/.ssh/id_rsa): [Press enter]
- W wierszu polecenia wpisz bezpieczne hasło. Zalecamy dodanie hasła do klucza SSH w celu dodania zabezpieczeń
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
Dodawanie klucza publicznego do konta Usługi Git
- W oknie terminalu skopiuj zawartość pliku klucza publicznego. Jeśli zmieniono nazwę klucza, zastąp ciąg id_rsa.pub nazwą pliku klucza publicznego.
cat ~/.ssh/id_rsa.pub
Napiwek
Kopiowanie i wklejanie w terminalu
- Windows:
Ctrl-Insert
aby skopiować i użyćCtrl-Shift-v
polecenia lubShift-Insert
wkleić. - Mac OS:
Cmd-c
aby skopiować iCmd-v
wkleić. - Aplikacje FireFox i Internet Explorer mogą nie obsługiwać prawidłowo uprawnień schowka.
- Wybierz i skopiuj dane wyjściowe klucza SSH do schowka.
- Następnie wykonaj kroki, aby dodać klucz SSH do preferowanego typu konta:
Usługa Azure DevOps rozpoczyna się od kroku 2.
BitBucket. Wykonaj krok 4.
Klonowanie repozytorium Git przy użyciu protokołu SSH
Skopiuj adres URL klonowania git SSH z repozytorium Git.
Wklej adres URL do poniższego
git clone
polecenia, aby użyć adresu URL repozytorium Git SSH. Będzie to wyglądać mniej więcej tak:
git clone git@example.com:GitUser/azureml-example.git
Cloning into 'azureml-example'...
Zostanie wyświetlona odpowiedź podobna do:
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.
Protokół SSH może wyświetlić odcisk palca SSH serwera i poprosić o jego zweryfikowanie. Należy sprawdzić, czy wyświetlany odcisk palca jest zgodny z jednym z odcisków palców na stronie kluczy publicznych SSH.
Protokół SSH wyświetla ten odcisk palca, gdy łączy się z nieznanym hostem, aby chronić cię przed atakami typu man-in-the-middle. Po zaakceptowaniu odcisku palca hosta protokół SSH nie wyświetli monitu o zmianę odcisku palca.
- Po wyświetleniu monitu o kontynuowanie nawiązywania połączenia wpisz
yes
. Narzędzie Git sklonuje repozytorium i skonfiguruje zdalne źródło, aby nawiązać połączenie z protokołem SSH na potrzeby przyszłych poleceń git.
Śledzenie kodu pochodzącego z repozytoriów Git
Po przesłaniu zadania szkoleniowego z zestawu SDK języka Python lub interfejsu wiersza polecenia usługi Machine Learning pliki potrzebne do wytrenowania modelu zostaną przekazane do obszaru roboczego. git
Jeśli polecenie jest dostępne w środowisku projektowym, proces przekazywania używa go do sprawdzenia, czy pliki są przechowywane w repozytorium git. Jeśli tak, informacje z repozytorium Git są również przekazywane w ramach zadania szkoleniowego. Te informacje są przechowywane we następujących właściwościach zadania szkoleniowego:
Właściwości | Polecenie git używane do pobierania wartości | opis |
---|---|---|
azureml.git.repository_uri |
git ls-remote --get-url |
Identyfikator URI sklonowany z repozytorium. |
mlflow.source.git.repoURL |
git ls-remote --get-url |
Identyfikator URI sklonowany z repozytorium. |
azureml.git.branch |
git symbolic-ref --short HEAD |
Aktywna gałąź po przesłaniu zadania. |
mlflow.source.git.branch |
git symbolic-ref --short HEAD |
Aktywna gałąź po przesłaniu zadania. |
azureml.git.commit |
git rev-parse HEAD |
Skrót zatwierdzenia kodu, który został przesłany do zadania. |
mlflow.source.git.commit |
git rev-parse HEAD |
Skrót zatwierdzenia kodu, który został przesłany do zadania. |
azureml.git.dirty |
git status --porcelain . |
True , jeśli gałąź/zatwierdzenie jest zanieczyszczone; w przeciwnym razie, false . |
Te informacje są wysyłane dla zadań korzystających z narzędzia do szacowania, potoku uczenia maszynowego lub uruchomienia skryptu.
Jeśli pliki szkoleniowe nie znajdują się w repozytorium git w środowisku projektowym lub git
polecenie nie jest dostępne, żadne informacje związane z usługą Git nie są śledzone.
Napiwek
Aby sprawdzić, czy polecenie git jest dostępne w środowisku programistycznym, otwórz sesję powłoki, wiersz polecenia, program PowerShell lub inny interfejs wiersza polecenia i wpisz następujące polecenie:
git --version
Jeśli jest zainstalowana i w ścieżce, otrzymasz odpowiedź podobną do git version 2.4.1
. Aby uzyskać więcej informacji na temat instalowania narzędzia Git w środowisku projektowym, zobacz witrynę internetową git.
Wyświetlanie zarejestrowanych informacji
Informacje git są przechowywane we właściwościach zadania szkoleniowego. Te informacje można wyświetlić przy użyciu witryny Azure Portal lub zestawu SDK języka Python.
Azure Portal
- W portalu studio wybierz swój obszar roboczy.
- Wybierz pozycję Zadania, a następnie wybierz jeden z eksperymentów.
- Wybierz jedno z zadań z kolumny Nazwa wyświetlana.
- Wybierz pozycję Dane wyjściowe i dzienniki, a następnie rozwiń dzienniki i wpisy azureml . Wybierz link rozpoczynający się od ###_azure.
Zarejestrowane informacje zawierają tekst podobny do następującego kodu 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"
}
Wyświetl właściwości
Po przesłaniu przebiegu trenowania zwracany jest obiekt Zadania . Atrybut properties
tego obiektu zawiera zarejestrowane informacje git. Na przykład następujący kod pobiera skrót zatwierdzenia:
DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)
job.properties["azureml.git.commit"]
Następne kroki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla