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.0
hasonló 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"