Integrace Gitu pro Azure Machine Učení

Git je oblíbený systém správy verzí, který umožňuje sdílet a spolupracovat na svých projektech.

Azure Machine Učení plně podporuje úložiště Git pro sledování práce – úložiště můžete klonovat přímo do systému souborů sdíleného pracovního prostoru, používat Git na místní pracovní stanici nebo používat Git z kanálu CI/CD.

Pokud jsou zdrojové soubory uložené v místním úložišti Git, při odesílání úlohy do služby Azure Machine Učení se informace o úložišti sledují jako součást procesu trénování.

Vzhledem k tomu, že Azure Machine Učení sleduje informace z místního úložiště Git, není svázané s žádným konkrétním centrálním úložištěm. Úložiště můžete naklonovat z GitHubu, GitLabu, Bitbucketu, Azure DevOps nebo jakékoli jiné služby kompatibilní s Gitem.

Tip

Pomocí editoru Visual Studio Code můžete pracovat s Gitem prostřednictvím grafického uživatelského rozhraní. Pokud se chcete připojit ke vzdálené výpočetní instanci Azure Učení pomocí editoru Visual Studio Code, přečtěte si téma Spuštění editoru Visual Studio Code integrované se službou Azure Machine Učení (Preview)

Další informace o funkcích správy verzí editoru Visual Studio Code najdete v tématu Použití správy verzí ve VS Code a práce s GitHubem ve VS Code.

Klonování úložišť Git do systému souborů vlastního pracovního prostoru

Azure Machine Učení poskytuje sdílený systém souborů pro všechny uživatele v pracovním prostoru. Pokud chcete do této sdílené složky naklonovat úložiště Git, doporučujeme vytvořit výpočetní instanci a otevřít terminál. Po otevření terminálu máte přístup k úplnému klientovi Gitu a můžete ho klonovat a pracovat s Gitem prostřednictvím rozhraní příkazového řádku Gitu.

Doporučujeme naklonovat úložiště do uživatelského adresáře, aby ostatní nemuseli kolizi provádět přímo ve vaší pracovní větvi.

Tip

Mezi klonováním do místního systému souborů výpočetní instance nebo klonováním do připojeného systému souborů (připojeným jako adresář) existuje rozdíl v výkonu ~/cloudfiles/code . Obecně platí, že klonování do místního systému souborů bude mít lepší výkon než u připojeného systému souborů. Pokud však výpočetní instanci odstraníte a znovu vytvoříte, dojde ke ztrátě místního systému souborů. Připojený systém souborů se uchovává, pokud výpočetní instanci odstraníte a znovu vytvoříte.

Můžete naklonovat libovolné úložiště Git, do kterého se můžete ověřit (GitHub, Azure Repos, BitBucket atd.).

Další informace o klonování najdete v průvodci používáním Git CLI.

Ověření účtu Git pomocí SSH

Vygenerování nového klíče SSH

  1. Otevřete okno terminálu na kartě Azure Machine Učení Notebook.

  2. Vložte níže uvedený text a nahraďte svoji e-mailovou adresu.

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

Tím se vytvoří nový klíč SSH s použitím poskytnutého e-mailu jako popisku.

> Generating public/private rsa key pair.
  1. Když se zobrazí výzva k zadání "Enter a file in which to save the key" (Zadejte soubor, do kterého chcete klávesu uložit), stiskněte Enter. Tím se přijme výchozí umístění souboru.

  2. Ověřte, že výchozí umístění je /home/azureuser/.ssh, a stiskněte enter. V opačném případě zadejte umístění /home/azureuser/.ssh.

Tip

Ujistěte se, že je klíč SSH uložený v souboru /home/azureuser/.ssh. Tento soubor je uložený ve výpočetní instanci pouze vlastníkem výpočetní instance.

> Enter a file in which to save the key (/home/azureuser/.ssh/id_rsa): [Press enter]
  1. Na příkazovém řádku zadejte zabezpečené heslo. Pro přidání zabezpečení doporučujeme do klíče SSH přidat přístupové heslo.
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

Přidání veřejného klíče do účtu Git

  1. V okně terminálu zkopírujte obsah souboru veřejného klíče. Pokud jste klíč přejmenovali, nahraďte id_rsa.pub názvem souboru veřejného klíče.
cat ~/.ssh/id_rsa.pub

Tip

Kopírování a vkládání v terminálu

  • Windows: Ctrl-Insert kopírování a použití Ctrl-Shift-v nebo Shift-Insert vložení.
  • Mac OS: Cmd-c kopírování a Cmd-v vkládání.
  • FireFox/IE nemusí správně podporovat oprávnění schránky.
  1. Vyberte a zkopírujte výstup klíče SSH do schránky.
  2. Dále postupujte podle kroků a přidejte klíč SSH k vašemu preferovanému typu účtu:

Klonování úložiště Git pomocí SSH

  1. Zkopírujte adresu URL klonu gitu SSH z úložiště Git.

  2. Vložte adresu URL do git clone následujícího příkazu, abyste mohli použít adresu URL úložiště Git SSH. Bude vypadat přibližně takto:

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

Zobrazí se odpověď podobná této:

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 může zobrazit otisk SSH serveru a požádat vás, abyste ho ověřili. Měli byste ověřit, že zobrazený otisk prstu odpovídá jednomu z otisků prstů na stránce veřejných klíčů SSH.

SSH zobrazí tento otisk prstu, když se připojí k neznámému hostiteli, aby vás chránil před útoky typu man-in-the-middle. Jakmile přijmete otisk prstu hostitele, SSH vás znovu nezobrazí, pokud se otisk prstu nezmění.

  1. Když se zobrazí dotaz, jestli chcete pokračovat v připojování, zadejte yes. Git naklonuje úložiště a nastaví vzdálené umístění původu pro připojení pomocí SSH pro budoucí příkazy Gitu.

Sledování kódu pocházejícího z úložišť Git

Když odešlete trénovací úlohu ze sady Python SDK nebo rozhraní příkazového řádku počítače Učení, soubory potřebné k trénování modelu se nahrají do vašeho pracovního prostoru. git Pokud je příkaz dostupný ve vašem vývojovém prostředí, proces nahrávání ho použije ke kontrole, jestli jsou soubory uložené v úložišti Git. Pokud ano, informace z vašeho úložiště Git se také nahrají jako součást úlohy trénování. Tyto informace jsou uloženy v následujících vlastnostech pro trénovací úlohu:

Vlastnost Příkaz Gitu sloužící k získání hodnoty Popis
azureml.git.repository_uri git ls-remote --get-url Identifikátor URI, ze kterého bylo vaše úložiště naklonováno.
mlflow.source.git.repoURL git ls-remote --get-url Identifikátor URI, ze kterého bylo vaše úložiště naklonováno.
azureml.git.branch git symbolic-ref --short HEAD Aktivní větev při odeslání úlohy.
mlflow.source.git.branch git symbolic-ref --short HEAD Aktivní větev při odeslání úlohy.
azureml.git.commit git rev-parse HEAD Hodnota hash potvrzení kódu odeslaného pro úlohu.
mlflow.source.git.commit git rev-parse HEAD Hodnota hash potvrzení kódu odeslaného pro úlohu.
azureml.git.dirty git status --porcelain . True, pokud je větev/potvrzení špinavá; v opačném případě . false

Tyto informace se odesílají pro úlohy, které používají estimátor, kanál strojového učení nebo spuštění skriptu.

Pokud se vaše trénovací soubory nenachází v úložišti Git ve vašem vývojovém prostředí nebo příkaz není dostupný, nebudou git se sledovat žádné informace související s Gitem.

Tip

Pokud chcete zkontrolovat, jestli je příkaz Git dostupný ve vašem vývojovém prostředí, otevřete relaci prostředí, příkazový řádek, PowerShell nebo jiné rozhraní příkazového řádku a zadejte následující příkaz:

git --version

Pokud je nainstalována a v cestě obdržíte odpověď podobnou git version 2.4.1. Další informace o instalaci Gitu do vývojového prostředí najdete na webu Git.

Zobrazení zaprotokolovaných informací

Informace gitu se ukládají ve vlastnostech pro trénovací úlohu. Tyto informace můžete zobrazit pomocí webu Azure Portal nebo sady Python SDK.

portál Azure

  1. Na portálu studio vyberte svůj pracovní prostor.
  2. Vyberte Úlohy a pak vyberte jeden z experimentů.
  3. Vyberte jednu z úloh ze sloupce Zobrazovaný název .
  4. Vyberte Výstupy + protokoly a pak rozbalte protokoly a položky azureml . Vyberte odkaz, který začíná # ##_azure.

Protokolované informace obsahují text podobný následujícímu formátu 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"
}

Zobrazit vlastnosti

Po odeslání trénovacího spuštění se vrátí objekt úlohy . Atribut properties tohoto objektu obsahuje zaprotokolované informace gitu. Například následující kód načte hodnotu hash potvrzení:

PLATÍ PRO: Python SDK azure-ai-ml v2 (aktuální)

job.properties["azureml.git.commit"]

Další kroky