Integracja z usługą Git dla usługi Azure Machine Edukacja

Git to popularny system kontroli wersji, który umożliwia udostępnianie projektów i współpracę nad nimi.

Usługa Azure Machine Edukacja w pełni obsługuje repozytoria Git do śledzenia pracy — repozytoria można klonować 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.

Podczas przesyłania zadania do usługi Azure Machine Edukacja, 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 Edukacja ś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 z usługą Azure Machine Edukacja zdalnym wystąpieniem obliczeniowym przy użyciu programu Visual Studio Code, zobacz Uruchamianie programu Visual Studio Code zintegrowanego z usługą Azure Machine Edukacja (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 Edukacja udostępnia udostępniony 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 środowiska interfejsu wiersza polecenia 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

  1. Otwórz okno terminalu na karcie Notes usługi Azure Machine Edukacja.

  2. 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.
  1. Po wyświetleniu monitu o wprowadzenie pliku, w którym ma być zapisany klawisz" naciśnij klawisz Enter. Akceptuje domyślną lokalizację pliku.

  2. Sprawdź, czy domyślna lokalizacja to "/home/azureuser/.ssh" i naciśnij klawisz 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]
  1. 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

  1. 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 lub Shift-Insert wkleić.
  • Mac OS: Cmd-c aby skopiować i Cmd-v wkleić.
  • Program FireFox/IE może nie obsługiwać prawidłowo uprawnień schowka.
  1. Wybierz i skopiuj dane wyjściowe klucza SSH do schowka.
  2. Następnie wykonaj kroki, aby dodać klucz SSH do preferowanego typu konta:

Klonowanie repozytorium Git przy użyciu protokołu SSH

  1. Skopiuj adres URL klonowania git SSH z repozytorium Git.

  2. 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.

  1. 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 platformy Machine Edukacja 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

  1. W portalu studio wybierz swój obszar roboczy.
  2. Wybierz pozycję Zadania, a następnie wybierz jeden z eksperymentów.
  3. Wybierz jedno z zadań z kolumny Nazwa wyświetlana.
  4. 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