Megosztás a következőn keresztül:


Git-integráció az Azure Machine Learninghez

A Git egy népszerű verziókövetési rendszer, amely lehetővé teszi a projektek megosztását és együttműködését. Ez a cikk azt ismerteti, hogyan integrálható az Azure Machine Learning egy helyi Git-adattárral az adattár, az ág és az aktuális véglegesítési információk nyomon követéséhez egy betanítási feladat részeként.

Az Azure Machine Learning teljes mértékben támogatja a Git-adattárakat a munka nyomon követéséhez. Az adattárakat klónozhatja közvetlenül a megosztott munkaterület fájlrendszerére, használhatja a Gitet a helyi munkaállomáson, vagy használhatja a Gitet egy folyamatos integrációs és folyamatos üzembe helyezési (CI/CD) folyamatból.

Amikor olyan Azure Machine Learning-betanítási feladatot küld el, amely egy helyi Git-adattárból származó forrásfájlokat tartalmaz, az adattár adatai a betanítási feladat részeként lesznek nyomon követve. Mivel az információk a helyi Git-adattárból származnak, nem kötődnek egy adott központi adattárhoz sem. Az adattár bármely Git-kompatibilis szolgáltatásból klónozható, például a GitHubról, a GitLabből, a Bitbucketből vagy az Azure DevOpsból.

Tipp.

A Visual Studio Code használatával grafikus felhasználói felületen kommunikálhat a Gittel. Ha a Visual Studio Code használatával szeretne csatlakozni egy Távoli Azure Machine Learning-példányhoz, olvassa el az Azure Machine Learningbe integrált Visual Studio Code elindítását (előzetes verzió).

A Visual Studio Code verziókövetési funkcióiról további információt a Verziókövetés használata a Visual Studio Code-ban és a GitHub használata a Visual Studio Code-ban című témakörben talál.

Git-adattárak munkaterületi fájlrendszerben

Az Azure Machine Learning megosztott fájlrendszert biztosít a munkaterület összes felhasználója számára. A Git-adattárat a legjobban úgy klónozhatja ebbe a fájlmegosztásba, ha létrehoz egy számítási példányt, és megnyit egy terminált. A terminálban egy teljes Git-ügyfélhez férhet hozzá, és a Git parancssori felületével klónozhat és dolgozhat a Gittel. További információ: Git CLI.

Klónozhat minden Olyan Git-adattárat, amelybe hitelesíthet, például egy GitHubot, az Azure-adattárat vagy a BitBucket-adattárat. A legjobb, ha klónozza az adattárat a felhasználói címtárba, hogy más felhasználók ne ütközhessenek közvetlenül a munkaágban.

Van néhány különbség a számítási példány helyi fájlrendszerére történő klónozás vagy a megosztott fájlrendszerbe való klónozás között, amely a ~/cloudfiles/code/ könyvtárként van csatlakoztatva. A helyi fájlrendszerbe való klónozás általában jobb teljesítményt nyújt, mint a csatlakoztatott fájlrendszer klónozása. Ha azonban törli és újra létrehozza a számítási példányt, a helyi fájlrendszer elveszik, miközben a csatlakoztatott megosztott fájlrendszer megmarad.

Git-adattár klónozása SSH-val

Az adattárat a Secure Shell (SSH) protokoll használatával klónozhatja. Az SSH használatához SSH-kulccsal kell hitelesítenie Git-fiókját az SSH-val.

Új SSH-kulcs létrehozása és mentése

Új SSH-kulcs létrehozásához lépjen az Azure Machine Learning Studio Notebook lapjára, nyisson meg egy terminált, és futtassa az alábbi parancsot az e-mail-cím helyettesítésével.

ssh-keygen -t ed25519 -C "your_email@example.com"

A parancs a következő kimenetet adja vissza:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/azureuser/.ssh/id_ed25519):

Győződjön meg arról, hogy az előző kimenet helye az /home/azureuser/.ssh, vagy módosítsa arra a helyre, majd nyomja le az Enter billentyűt.

A biztonság érdekében a legjobb, ha jelszót ad hozzá az SSH-kulcshoz. Az alábbi utasításokat követve adjon meg egy biztonságos jelszót.

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

Az Enter billentyű lenyomásakor a ssh-keygen parancs létrehoz egy új SSH-kulcsot a megadott e-mail-címmel címkéként. A kulcsfájl a számítási példányon menthető, és csak a számítási példány tulajdonosa számára érhető el.

A nyilvános kulcs hozzáadása a Git-fiókhoz

Hozzá kell adnia a nyilvános SSH-kulcsot a Git-fiókjához. A kulcs lekéréséhez futtassa a következő parancsot a terminálablakban. Ha a kulcsfájl neve eltérő, cserélje le id_ed25519.pub a nyilvános kulcs fájlnevét.

cat ~/.ssh/id_ed25519.pub

A parancs megjeleníti a nyilvános kulcsfájl tartalmát. Másolja ki a kimenetet.

Tipp.

A terminálablakba való másoláshoz és beillesztéshez használja az alábbi billentyűparancsokat az operációs rendszertől függően:

  • Windows: Ctrl+C vagy Ctrl+Beszúrás másoláshoz, Ctrl+V vagy Ctrl+Shift+V billentyűkombináció a beillesztéshez.
  • MacOS: Cmd+C a másoláshoz, a Cmd+V pedig a beillesztéshez.

Előfordulhat, hogy egyes böngészők nem támogatják megfelelően a vágólap engedélyeit.

A Git-szolgáltatástól függően adja hozzá az SSH-kulcsot a Git-fiókjához az alábbi utasítások segítségével:

A Git-adattár klónozása SSH-val

Git-adattár klónozásához másolja az SSH Git klónozási URL-címét az adattárból. A terminálban futtassa git clone az SSH Git klón URL-címét. Példa:

git clone git@example.com:GitUser/azureml-example.git

Előfordulhat, hogy az SSH megjeleníti a kiszolgáló SSH-ujjlenyomatát, és megkéri, hogy ellenőrizze azt, ahogy az alábbi példában is látható.

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])?

Az SSH akkor jeleníti meg ezt az ujjlenyomatot, amikor ismeretlen gazdagéphez csatlakozik, hogy megvédje Önt a középen belüli támadásoktól. Ellenőrizze, hogy az ujjlenyomat megegyezik-e az SSH nyilvános kulcsok oldalán található ujjlenyomatok egyikével. Miután elfogadta a gazdagép ujjlenyomatát, az SSH nem kéri újra, hacsak az ujjlenyomat nem változik.

Az SSH az alábbi példához hasonló választ jelenít meg:

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': 

Miután megadta a jelszót, a Git klónozza az adattárat, és beállítja a távoli forrást, hogy az SSH-val csatlakozzon a jövőbeli Git-parancsokhoz.

Git-adattárakból származó kód nyomon követése

Amikor betanítási feladatot küld a Python SDK-ból vagy a Machine Learning CLI-ből, a rendszer feltölti a modell betanításához szükséges fájlokat a munkaterületre. Ha a git parancs elérhető a fejlesztői környezetben, a feltöltési folyamat ellenőrzi, hogy a forrásfájlok git-adattárban vannak-e tárolva.

Ha igen, a folyamat feltölti a Git-adattárat, az ágat és az aktuális véglegesítési adatokat a betanítási feladat részeként. Az információkat az alábbi betanítási feladattulajdonságok tárolják a becslőt, gépi tanulási folyamatot vagy szkriptfuttatást használó feladatokhoz.

Tulajdonság Git-parancs az érték lekéréséhez Leírás
azureml.git.repository_uri vagy mlflow.source.git.repoURL git ls-remote --get-url Az az URI, amelyből az adattárat klónozták.
azureml.git.branch vagy mlflow.source.git.branch git symbolic-ref --short HEAD Az aktív ág a feladat elküldésekor.
azureml.git.commit vagy mlflow.source.git.commit git rev-parse HEAD A feladathoz elküldött kód véglegesítési kivonata.
azureml.git.dirty git status --porcelain . True ha az ág vagy a véglegesítés piszkos, ellenkező esetben false.

Ha a git parancs nem érhető el a fejlesztői környezetben, vagy a betanítási fájlok nem egy Git-adattárban találhatók, a rendszer nem követi nyomon a Gittel kapcsolatos információkat.

Tipp.

Ha ellenőrizni szeretné, hogy a git parancs elérhető-e a fejlesztői környezetben, futtassa a git --version parancsot egy parancssori felületen. Ha a Git telepítve van, és az elérési úton van, a következőhöz git version 2.43.0hasonló választ kap. A Git fejlesztési környezetben való telepítésével kapcsolatos információkért tekintse meg a Git webhelyét.

Git-információk megtekintése

A Git-információk JSON-kódként vannak tárolva egy betanítási feladat tulajdonságaiban. A naplózott Git-információk a következő tulajdonságokat tartalmazhatják:

"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>",

Ezeket az információkat az Azure Portal, a Python SDK vagy az Azure CLI használatával tekintheti meg.

Azure Portal

Az Azure Machine Learning Studióban található munkaterületen válassza ki a feladatát a Feladatok lapon. A feladat Áttekintés lapJának Tulajdonságok szakaszában válassza a Nyers JSON lehetőséget az Összes tulajdonság megtekintése csoportban.

A JSON-ban keresse meg a Git-tulajdonságokat, például:

    "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

A betanítási futtatás elküldése után a rendszer egy feladatobjektumot ad vissza. Az properties objektum attribútuma tartalmazza a naplózott Git-információkat. Futtathatja például a következő parancsot a véglegesítési kivonat lekéréséhez:

job.properties["mlflow.source.git.commit"]

Azure CLI V2

A Git-információk megjelenítéséhez futtassa a az ml job show parancsot az --query argumentummal. A következő lekérdezés például lekéri a mlflow.source.git.commit tulajdonság értékét:

az ml job show --name my-job-id --query "{GitCommit:properties.azureml.git.commit} --resource-group my-resource-group --workspace-name my-workspace"