Integrace Gitu pro Azure Machine Learning
Git je oblíbený systém správy verzí, který umožňuje sdílet a spolupracovat na svých projektech. Tento článek vysvětluje, jak může Azure Machine Learning integrovat s místním úložištěm Git ke sledování informací o úložišti, větvi a aktuálním potvrzení v rámci trénovací úlohy.
Azure Machine Learning plně podporuje úložiště Git pro sledování práce. Úložiště můžete naklonovat přímo do systému souborů sdíleného pracovního prostoru, použít Git na místní pracovní stanici nebo použít Git z kanálu kontinuální integrace a průběžného nasazování (CI/CD).
Když odešlete trénovací úlohu Služby Azure Machine Learning, která obsahuje zdrojové soubory z místního úložiště Git, informace o úložišti se sledují jako součást úlohy trénování. Vzhledem k tomu, že informace pocházejí z místního úložiště Git, nejsou svázané s žádným konkrétním centrálním úložištěm. Vaše úložiště je možné naklonovat z libovolné služby kompatibilní s Gitem, jako je GitHub, GitLab, Bitbucket nebo Azure DevOps.
Tip
Visual Studio Code můžete použít k interakci s Gitem prostřednictvím grafického uživatelského rozhraní. Pokud se chcete připojit ke vzdálené výpočetní instanci Služby Azure Machine Learning 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 Learning (Preview)
Další informace o funkcích správy verzí editoru Visual Studio Code najdete v tématu Použití správy verzí v editoru Visual Studio Code a práce s GitHubem v editoru Visual Studio Code.
Úložiště Git v systému souborů pracovního prostoru
Azure Machine Learning poskytuje sdílený systém souborů pro všechny uživatele v pracovním prostoru. Nejlepším způsobem, jak do této sdílené složky naklonovat úložiště Git, je vytvořit výpočetní instanci a otevřít terminál. V terminálu máte přístup k úplnému klientovi Gitu a můžete klonovat a pracovat s Gitem pomocí Rozhraní příkazového řádku Gitu. Další informace najdete v tématu Git CLI.
Můžete naklonovat libovolné úložiště Git, do kterého se můžete ověřit, například do úložiště GitHub, Azure Repos nebo BitBucket. Nejlepší je naklonovat úložiště do uživatelského adresáře, aby ostatní uživatelé nekolidili přímo ve vaší pracovní větvi.
Existuje několik rozdílů mezi klonováním do místního systému souborů výpočetní instance nebo klonováním do sdíleného systému souborů, který je připojený jako adresář ~/cloudfiles/code/ . Klonování do místního systému souborů obecně poskytuje lepší výkon než klonování do připojeného systému souborů. Pokud však výpočetní instanci odstraníte a znovu vytvoříte, místní systém souborů se ztratí, zatímco připojený sdílený systém souborů zůstane zachován.
Klonování úložiště Git pomocí SSH
Úložiště můžete naklonovat pomocí protokolu Secure Shell (SSH). Pokud chcete použít SSH, musíte pomocí klíče SSH ověřit svůj účet Git pomocí SSH.
Vygenerování a uložení nového klíče SSH
Pokud chcete vygenerovat nový klíč SSH, můžete přejít na stránku studio Azure Machine Learning Poznámkový blok, otevřít terminál a spustit následující příkaz a nahradit e-mailovou adresu.
ssh-keygen -t ed25519 -C "your_email@example.com"
Příkaz vrátí následující výstup:
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/azureuser/.ssh/id_ed25519):
Zkontrolujte, jestli je /home/azureuser/.ssh
umístění v předchozím výstupu , nebo ho změňte na toto umístění a stiskněte Enter.
Pro přidání zabezpečení je nejlepší přidat přístupové heslo ke klíči SSH. Na následujících výzev zadejte zabezpečené heslo.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Když stisknete Klávesu Enter, ssh-keygen
příkaz vygeneruje novou klávesu SSH se zadanou e-mailovou adresou jako popiskem. Soubor klíče se uloží do výpočetní instance a je přístupný pouze vlastníkovi výpočetní instance.
Přidání veřejného klíče do účtu Git
Veřejný klíč SSH musíte přidat do svého účtu Git. Klíč získáte spuštěním následujícího příkazu v okně terminálu. Pokud má soubor klíče jiný název, nahraďte id_ed25519.pub
ho názvem vašeho souboru veřejného klíče.
cat ~/.ssh/id_ed25519.pub
Příkaz zobrazí obsah souboru veřejného klíče. Výstup si zkopírujte.
Tip
Pokud chcete zkopírovat a vložit okno terminálu, použijte tyto klávesové zkratky v závislosti na operačním systému:
- Windows: Ctrl+C nebo Ctrl+Insert pro kopírování, Ctrl+V nebo Ctrl+Shift+V, které chcete vložit.
- MacOS: Cmd+C pro kopírování a Cmd+V k vložení.
Některé prohlížeče nemusí správně podporovat oprávnění schránky.
Pomocí následujících pokynů přidejte klíč SSH ke svému účtu Git v závislosti na vaší službě Git:
Klonování úložiště Git pomocí SSH
Pokud chcete naklonovat úložiště Git, zkopírujte adresu URL klonu SSH z úložiště. V terminálu spusťte git clone
následující adresu URL klonu SSH Gitu. Příklad:
git clone git@example.com:GitUser/azureml-example.git
SSH může zobrazit otisk SSH serveru a požádat vás, abyste ho ověřili, jako v následujícím příkladu.
The authenticity of host 'github.com (000.00.000.0)' can't be established.
ECDSA key fingerprint is SHA256:0000000000000000000/00000000/00000000.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
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. Měli byste ověřit, že otisk prstu odpovídá jednomu z otisků prstů na stránce veřejných klíčů SSH. Jakmile přijmete otisk prstu hostitele, SSH znovu nezobrazí výzvu, pokud se otisk prstu nezmění.
SSH zobrazí odpověď jako v následujícím příkladu:
Cloning into 'azureml-example'...
Warning: Permanently added 'github.com,000.00.000.0' (ECDSA) to the list of known hosts.
Enter passphrase for key '/home/azureuser/.ssh/id_ed25519':
Jakmile zadáte heslo, 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 machine learningu, 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ání zkontroluje, jestli jsou zdrojové soubory uložené v úložišti Git.
Pokud ano, proces v rámci trénovací úlohy nahraje úložiště Git, větev a aktuální informace o potvrzení. Informace jsou uloženy v následujících vlastnostech trénovací úlohy pro úlohy, které používají nástroj pro odhad, kanál strojového učení nebo spuštění skriptu.
Vlastnost | Příkaz Gitu pro získání hodnoty | Popis |
---|---|---|
azureml.git.repository_uri nebo mlflow.source.git.repoURL |
git ls-remote --get-url |
Identifikátor URI, ze kterého bylo úložiště naklonováno. |
azureml.git.branch nebo mlflow.source.git.branch |
git symbolic-ref --short HEAD |
Aktivní větev při odeslání úlohy. |
azureml.git.commit nebo 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 nebo potvrzení zašpiněná, jinak false . |
Pokud příkaz git
není ve vašem vývojovém prostředí dostupný nebo vaše trénovací soubory nejsou umístěné v úložišti Git, nebudou se sledovat žádné informace související s Gitem.
Tip
Pokud chcete zkontrolovat, jestli git
je příkaz dostupný ve vašem vývojovém prostředí, spusťte git --version
příkaz v rozhraní příkazového řádku. Pokud je Git nainstalovaný a ve vaší cestě, obdržíte odpověď podobnou git version 2.43.0
. Informace o instalaci Gitu ve vašem vývojovém prostředí najdete na webu Git.
Zobrazení informací o Gitu
Informace Gitu se ve vlastnostech trénovací úlohy ukládají jako kód JSON. Protokolované informace o Gitu můžou obsahovat následující vlastnosti:
"azureml.git.repository_uri": "git@github.com:azure/<repo-name>",
"azureml.git.branch": "<branch-name>",
"azureml.git.commit": "<commit-id>",
"azureml.git.dirty": "<True/False>",
"mlflow.source.git.repoURL": "git@github.com:azure/<repo-name>",
"mlflow.source.git.branch": "<branch-name>",
"mlflow.source.git.commit": "<commit-id>",
Tyto informace můžete zobrazit pomocí webu Azure Portal, sady Python SDK nebo Azure CLI.
portál Azure
V pracovním prostoru v studio Azure Machine Learning vyberte úlohu na stránce Úlohy. V části Vlastnosti na stránce Přehled úlohy vyberte Nezpracovaný JSON v části Zobrazit všechny vlastnosti.
Ve formátu JSON vyhledejte vlastnosti Gitu, například:
"properties": {
"mlflow.source.git.repoURL": "git@github.com:azure/azureml-examples",
"mlflow.source.git.branch": "main",
"mlflow.source.git.commit": "0000000000000000000000000000000000000000",
"azureml.git.dirty": "False",
...
},
Python SDK V2
Po odeslání trénovacího spuštění se vrátí objekt úlohy . Atribut properties
tohoto objektu obsahuje protokolované informace Gitu. Můžete například spustit následující příkaz, který načte hodnotu hash potvrzení:
job.properties["mlflow.source.git.commit"]
Rozhraní příkazového řádku Azure CLI V2
Spuštěním az ml job show
příkazu s argumentem --query
můžete zobrazit informace o Gitu. Například následující dotaz načte mlflow.source.git.commit
hodnotu vlastnosti:
az ml job show --name my-job-id --query "{GitCommit:properties.azureml.git.commit} --resource-group my-resource-group --workspace-name my-workspace"