Git-integráció az Azure Machine Tanulás
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.
Az Azure Machine Tanulás teljes mértékben támogatja a Git-adattárakat a munka nyomon követéséhez – az adattárakat közvetlenül a megosztott munkaterület fájlrendszerére klónozhatja, használhatja a Gitet a helyi munkaállomáson, vagy használhatja a Gitet ci/CD-folyamatból.
Amikor feladatokat küld az Azure Machine Tanulás, ha a forrásfájlokat egy helyi Git-adattárban tárolják, a betanítási folyamat részeként nyomon követi az adattár adatait.
Mivel az Azure Machine Tanulás nyomon követi egy helyi Git-adattár információit, nem kapcsolódik egyetlen konkrét központi adattárhoz sem. Az adattár klónozható a GitHubról, a GitLabből, a Bitbucketből, az Azure DevOpsból vagy bármely más Git-kompatibilis szolgáltatásból.
Tipp.
A Visual Studio Code használatával grafikus felhasználói felületen kommunikálhat a Gittel. Az Azure Machine Tanulás távoli számítási példányhoz a Visual Studio Code használatával való csatlakozáshoz lásd az Azure Machine Tanulás integrált Visual Studio Code elindítását (előzetes verzió)
További információ a Visual Studio Code verziókövetési funkcióiról: A verziókövetés használata a VS Code-ban és a GitHub használata a VS Code-ban.
Git-adattárak klónozása a munkaterület fájlrendszerébe
Az Azure Machine Tanulás megosztott fájlrendszert biztosít a munkaterület összes felhasználója számára. Ha git-adattárat szeretne klónozni ebbe a fájlmegosztásba, javasoljuk, hogy hozzon létre egy számítási példányt & nyisson meg egy terminált. A terminál megnyitása után egy teljes Git-ügyfélhez férhet hozzá, és a Git CLI-felületen keresztül klónozhat és dolgozhat a Gittel.
Javasoljuk, hogy klónozza az adattárat a felhasználói címtárba, hogy mások ne ütközhessenek közvetlenül a munkaágba.
Tipp.
Teljesítménybeli különbség van a számítási példány helyi fájlrendszerére történő klónozás vagy a csatlakoztatott fájlrendszerbe való klónozás (címtárként ~/cloudfiles/code
csatlakoztatva) között. A helyi fájlrendszerbe való klónozás általában jobb teljesítményt nyújt, mint a csatlakoztatott fájlrendszer. A helyi fájlrendszer azonban elvész, ha törli és újra létrehozza a számítási példányt. A csatlakoztatott fájlrendszer megmarad, ha törli és újra létrehozza a számítási példányt.
Klónozhat minden Olyan Git-adattárat, amelybe hitelesíthet (GitHub, Azure Repos, BitBucket stb.)
A klónozással kapcsolatos további információkért tekintse meg a Git CLI használatának útmutatójában.
Git-fiók hitelesítése SSH-val
Új SSH-kulcs létrehozása
Nyissa meg a terminálablakot az Azure Machine Tanulás Jegyzetfüzet lapján.
Illessze be az alábbi szöveget, és helyettesítse be az e-mail-címét.
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Ez létrehoz egy új ssh-kulcsot a megadott e-mail címkeként való használatával.
> Generating public/private rsa key pair.
Amikor a rendszer az "Enter a file to save the key" (Adja meg a fájlt, amelybe a kulcsot menteni szeretné) üzenet jelenik meg, nyomja le az Enter billentyűt. Ez elfogadja az alapértelmezett fájlhelyet.
Ellenőrizze, hogy az alapértelmezett hely a "/home/azureuser/.ssh", és nyomja le az Enter billentyűt. Ellenkező esetben adja meg a "/home/azureuser/.ssh" helyet.
Tipp.
Győződjön meg arról, hogy az SSH-kulcs a következő helyen van mentve: "/home/azureuser/.ssh". Ezt a fájlt a számítási példányon menti a rendszer, és csak a számítási példány tulajdonosa fér hozzá
> Enter a file in which to save the key (/home/azureuser/.ssh/id_rsa): [Press enter]
- A parancssorba írjon be egy biztonságos jelszót. Javasoljuk, hogy a biztonság érdekében adjon hozzá egy jelszót az SSH-kulcshoz
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
Nyilvános kulcs hozzáadása a Git-fiókhoz
- Másolja a nyilvános kulcsfájl tartalmát a terminálablakba. Ha átnevezte a kulcsot, cserélje le a id_rsa.pub fájlt a nyilvános kulcs fájlnevére.
cat ~/.ssh/id_rsa.pub
Tipp.
Másolás és beillesztés a terminálban
- Windows:
Ctrl-Insert
a másoláshoz és a használathozCtrl-Shift-v
vagyShift-Insert
a beillesztéshez. - Mac OS:
Cmd-c
másolás ésCmd-v
beillesztés. - Előfordulhat, hogy a FireFox/IE nem támogatja megfelelően a vágólap engedélyeit.
- Jelölje ki és másolja az SSH-kulcs kimenetét a vágólapra.
- Következő lépésként adja hozzá az SSH-kulcsot az előnyben részesített fióktípushoz:
Az Azure DevOps első lépése a 2. lépés.
BitBucket. Kövesse a 4. lépést.
A Git-adattár klónozása SSH-val
Másolja ki az SSH Git klón URL-címét a Git-adattárból.
Illessze be az url-címet az
git clone
alábbi parancsba az SSH Git-adattár URL-címének használatához. Ez a következőképpen fog kinézni:
git clone git@example.com:GitUser/azureml-example.git
Cloning into 'azureml-example'...
A következő választ fogja látni:
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.
Az SSH megjelenítheti a kiszolgáló SSH-ujjlenyomatát, és megkérheti, hogy ellenőrizze. Ellenőrizze, hogy a megjelenített ujjlenyomat megegyezik-e az SSH nyilvános kulcsok oldalán található ujjlenyomatok egyikével.
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. Miután elfogadta a gazdagép ujjlenyomatát, az SSH csak akkor kéri újra, ha az ujjlenyomat megváltozik.
- Amikor a rendszer megkérdezi, hogy folytatja-e a csatlakozást, írja be a következőt
yes
: A Git klónozza az adattárat, és távoli forrást állít be az SSH-hoz való csatlakozáshoz 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 Gépi Tanulás parancssori felületrő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 azt használja annak ellenőrzésére, hogy a fájlok git-adattárban vannak-e tárolva. Ha igen, akkor a git-adattárból származó információk is fel lesznek töltve a betanítási feladat részeként. Ezeket az információkat a betanítási feladat alábbi tulajdonságai tárolják:
Tulajdonság | Az érték lekéréséhez használt Git-parancs | Leírás |
---|---|---|
azureml.git.repository_uri |
git ls-remote --get-url |
Az URI, amelyből az adattárat klónozták. |
mlflow.source.git.repoURL |
git ls-remote --get-url |
Az URI, amelyből az adattárat klónozták. |
azureml.git.branch |
git symbolic-ref --short HEAD |
Az aktív ág a feladat elküldésekor. |
mlflow.source.git.branch |
git symbolic-ref --short HEAD |
Az aktív ág a feladat elküldésekor. |
azureml.git.commit |
git rev-parse HEAD |
A feladathoz elküldött kód véglegesítési kivonata. |
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/véglegesítés piszkos; egyéb esetben. false |
Ez az információ a becslőt, gépi tanulási folyamatot vagy szkriptfuttatást használó feladatokhoz lesz elküldve.
Ha a betanítási fájlok nem találhatók a fejlesztői környezetben található Git-adattárban, vagy a git
parancs nem érhető el, akkor 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, nyisson meg egy rendszerhéj-munkamenetet, parancssort, PowerShellt vagy más parancssori felületet, és írja be a következő parancsot:
git --version
Ha telepítve van, és az elérési úton a következőhöz git version 2.4.1
hasonló választ kap. A Git fejlesztési környezetbe való telepítéséről további információt a Git webhelyén talál.
A naplózott adatok megtekintése
A git-információkat egy betanítási feladat tulajdonságai tárolják. Ezeket az információkat az Azure Portalon vagy a Python SDK-ban tekintheti meg.
Azure Portal
- A stúdióportálon válassza ki a munkaterületet.
- Válassza a Feladatok lehetőséget, majd válasszon ki egy kísérletet.
- Válasszon ki egy feladatot a Megjelenítendő név oszlopból.
- Válassza a Kimenetek + naplók lehetőséget, majd bontsa ki a naplókat és az azureml-bejegyzéseket. Válassza ki a ###_azure kezdetű hivatkozást.
A naplózott információk a következő JSON-hoz hasonló szöveget tartalmaznak:
"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"
}
Tulajdonságok megtekintése
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. A következő kód például lekéri a véglegesítési kivonatot:
A KÖVETKEZŐKRE VONATKOZIK: Python SDK azure-ai-ml v2 (aktuális)
job.properties["azureml.git.commit"]