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

  1. Nyissa meg a terminálablakot az Azure Machine Tanulás Jegyzetfüzet lapján.

  2. 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.
  1. 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.

  2. 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]
  1. 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

  1. 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álathoz Ctrl-Shift-v vagy Shift-Insert a beillesztéshez.
  • Mac OS: Cmd-c másolás és Cmd-v beillesztés.
  • Előfordulhat, hogy a FireFox/IE nem támogatja megfelelően a vágólap engedélyeit.
  1. Jelölje ki és másolja az SSH-kulcs kimenetét a vágólapra.
  2. Következő lépésként adja hozzá az SSH-kulcsot az előnyben részesített fióktípushoz:

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

  1. Másolja ki az SSH Git klón URL-címét a Git-adattárból.

  2. 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.

  1. 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.1hasonló 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

  1. A stúdióportálon válassza ki a munkaterületet.
  2. Válassza a Feladatok lehetőséget, majd válasszon ki egy kísérletet.
  3. Válasszon ki egy feladatot a Megjelenítendő név oszlopból.
  4. 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"]

További lépések