Azure Machine Learning için Git tümleştirmesi

Git , projelerinizi paylaşmanızı ve üzerinde işbirliği yapmanızı sağlayan popüler bir sürüm denetim sistemidir.

Azure Machine Learning, çalışmayı izlemek için Git depolarını tam olarak destekler. Depoları doğrudan paylaşılan çalışma alanı dosya sisteminize kopyalayabilir, yerel iş istasyonunuzda Git'i kullanabilir veya CI/CD işlem hattından Git'i kullanabilirsiniz.

Azure Machine Learning'e iş gönderirken kaynak dosyalar yerel git deposunda depolanıyorsa, depo hakkındaki bilgiler eğitim sürecinin bir parçası olarak izlenir.

Azure Machine Learning yerel git deposundaki bilgileri izlediğinden, belirli bir merkezi depoya bağlı değildir. Deponuz GitHub, GitLab, Bitbucket, Azure DevOps veya git uyumlu diğer hizmetlerden kopyalanabilir.

Bahşiş

Grafik kullanıcı arabirimi aracılığıyla Git ile etkileşime geçmek için Visual Studio Code kullanın. Visual Studio Code kullanarak bir Azure Machine Learning uzak işlem örneğine bağlanmak için bkz . Azure Machine Learning ile tümleşik Visual Studio Code'u başlatma (önizleme)

Visual Studio Code sürüm denetimi özellikleri hakkında daha fazla bilgi için bkz. VS Code'da Sürüm Denetimini Kullanma ve VS Code'da GitHub ile Çalışma.

Git depolarını çalışma alanı dosya sisteminize kopyalama

Azure Machine Learning, çalışma alanı içindeki tüm kullanıcılar için paylaşılan bir dosya sistemi sağlar. Bir Git deposunu bu dosya paylaşımına kopyalamak için bir işlem örneği oluşturmanızı ve bir terminal açmanızı öneririz. Terminal açıldıktan sonra, tam bir Git istemcisine erişebilirsiniz ve Git CLI deneyimi aracılığıyla Git'i kopyalayabilir ve bunlarla çalışabilirsiniz.

Başkalarının doğrudan çalışma dalınız üzerinde çakışmalar yapmaması için depoyu kullanıcı dizininize kopyalamanızı öneririz.

Bahşiş

İşlem örneğinin yerel dosya sistemine kopyalama veya bağlı dosya sistemine kopyalama (dizin olarak ~/cloudfiles/code bağlanır) arasında performans farkı vardır. Genel olarak, yerel dosya sistemine kopyalama, bağlı dosya sistemine göre daha iyi performansa sahip olacaktır. Ancak işlem örneğini silip yeniden oluşturursanız yerel dosya sistemi kaybolur. İşlem örneğini silip yeniden oluşturursanız bağlı dosya sistemi korunur.

Kimlik doğrulaması yapabileceğiniz herhangi bir Git deposunu kopyalayabilirsiniz (GitHub, Azure Repos, BitBucket vb.)

Kopyalama hakkında daha fazla bilgi için Git CLI'yi kullanma kılavuzuna bakın.

SSH ile Git Hesabınızın kimliğini doğrulama

Yeni bir SSH anahtarı oluşturma

  1. Azure Machine Learning Not Defteri Sekmesinde terminal penceresini açın.

  2. Aşağıdaki metni yapıştırın ve e-posta adresinize yazın.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Bu, sağlanan e-postayı etiket olarak kullanarak yeni bir ssh anahtarı oluşturur.

> Generating public/private rsa key pair.
  1. "Anahtarın kaydedildiği bir dosya girin" sorulduğunda Enter tuşuna basın. Bu, varsayılan dosya konumunu kabul eder.

  2. Varsayılan konumun '/home/azureuser/.ssh' olduğunu doğrulayın ve Enter tuşuna basın. Aksi takdirde '/home/azureuser/.ssh' konumunu belirtin.

Bahşiş

SSH anahtarının '/home/azureuser/.ssh' içinde kaydedildiğinden emin olun. İşlem örneğine kaydedilen bu dosyaya yalnızca İşlem Örneği'nin sahibi erişebilir

> Enter a file in which to save the key (/home/azureuser/.ssh/id_rsa): [Press enter]
  1. İstemde güvenli bir parola yazın. Ek güvenlik için SSH anahtarınıza parola eklemenizi öneririz
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

Ortak anahtarı Git Hesabına ekleme

  1. Terminal pencerenizde ortak anahtar dosyanızın içeriğini kopyalayın. Anahtarı yeniden adlandırdıysanız id_rsa.pub dosyasını ortak anahtar dosya adıyla değiştirin.
cat ~/.ssh/id_rsa.pub

Bahşiş

Terminalde Kopyalama ve Yapıştırma

  • Windows: Ctrl-Insert kopyalayıp kullanmak Ctrl-Shift-v veya Shift-Insert yapıştırmak için.
  • Mac OS: Cmd-c kopyalayıp Cmd-v yapıştırmak için.
  • FireFox/IE pano izinlerini düzgün desteklemiyor olabilir.
  1. SSH anahtarı çıkışını seçin ve panonuza kopyalayın.
  2. Ardından, SSH anahtarını tercih ettiğiniz hesap türüne eklemek için adımları izleyin:

SSH ile Git deposunu kopyalama

  1. Git deposundan SSH Git kopyası URL'sini kopyalayın.

  2. SSH Git depo URL'nizi git clone kullanmak için url'yi aşağıdaki komuta yapıştırın. Bu, şuna benzer olacaktır:

git clone git@example.com:GitUser/azureml-example.git
Cloning into 'azureml-example'...

Aşağıdaki gibi bir yanıt görürsünüz:

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.

SSH sunucunun SSH parmak izini görüntüleyebilir ve doğrulamanızı isteyebilir. Görüntülenen parmak izinin SSH ortak anahtarlar sayfasındaki parmak izlerinden biriyle eşleşdiğini doğrulamanız gerekir.

SSH, sizi ortadaki adam saldırılarına karşı korumak için bilinmeyen bir konağa bağlandığında bu parmak izini görüntüler. Konağın parmak izini kabul ettikten sonra, parmak izi değişmediği sürece SSH sizi bir daha sormaz.

  1. Bağlanmaya devam etmek isteyip istemediğiniz sorulduğunda yazın yes. Git, depoyu kopyalayacak ve gelecekteki Git komutları için SSH ile bağlanacak kaynak uzak değerini ayarlayacaktır.

Git depolarından gelen kodu izleme

Python SDK'sından veya Machine Learning CLI'dan bir eğitim işi gönderdiğinizde, modeli eğitmek için gereken dosyalar çalışma alanınıza yüklenir. git Komut geliştirme ortamınızda kullanılabiliyorsa, karşıya yükleme işlemi bu komutu kullanarak dosyaların git deposunda depolanmış olup olmadığını denetler. Öyleyse git deponuzdaki bilgiler de eğitim işinin bir parçası olarak karşıya yüklenir. Bu bilgiler, eğitim işinin aşağıdaki özelliklerinde depolanır:

Özellik Değeri almak için kullanılan Git komutu Açıklama
azureml.git.repository_uri git ls-remote --get-url Deponuzun kopyalandığı URI.
mlflow.source.git.repoURL git ls-remote --get-url Deponuzun kopyalandığı URI.
azureml.git.branch git symbolic-ref --short HEAD İş gönderildiğinde etkin dal.
mlflow.source.git.branch git symbolic-ref --short HEAD İş gönderildiğinde etkin dal.
azureml.git.commit git rev-parse HEAD İş için gönderilen kodun işleme karması.
mlflow.source.git.commit git rev-parse HEAD İş için gönderilen kodun işleme karması.
azureml.git.dirty git status --porcelain . True, dal/işleme kirliyse; aksi takdirde , false.

Bu bilgiler tahmin aracı, makine öğrenmesi işlem hattı veya betik çalıştırması kullanan işler için gönderilir.

Eğitim dosyalarınız geliştirme ortamınızdaki bir git deposunda yoksa veya git komut kullanılamıyorsa git ile ilgili hiçbir bilgi izlenmez.

Bahşiş

Git komutunun geliştirme ortamınızda kullanılabilir olup olmadığını denetlemek için bir kabuk oturumu, komut istemi, PowerShell veya başka bir komut satırı arabirimi açın ve aşağıdaki komutu yazın:

git --version

yüklüyse ve yolunda benzer bir yanıt git version 2.4.1alırsınız. Git'i geliştirme ortamınıza yükleme hakkında daha fazla bilgi için Git web sitesine bakın.

Günlüğe kaydedilen bilgileri görüntüleme

Git bilgileri bir eğitim işinin özelliklerinde depolanır. Bu bilgileri Azure portalını veya Python SDK'sını kullanarak görüntüleyebilirsiniz.

Azure portalı

  1. Stüdyo portalından çalışma alanınızı seçin.
  2. İşler'i ve ardından denemelerinizden birini seçin.
  3. Görünen ad sütunundan işlerden birini seçin.
  4. Çıkışlar + günlükler'i seçin ve ardından günlükleri ve azureml girdilerini genişletin. ###_azure ile başlayan bağlantıyı seçin.

Günlüğe kaydedilen bilgiler aşağıdaki JSON'a benzer bir metin içerir:

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

Özellikleri görüntüle

Eğitim çalıştırması gönderildikten sonra bir İş nesnesi döndürülür. properties Bu nesnenin özniteliği günlüğe kaydedilen git bilgilerini içerir. Örneğin, aşağıdaki kod işleme karması alır:

ŞUNLAR IÇIN GEÇERLIDIR: Python SDK'sı azure-ai-ml v2 (geçerli)

job.properties["azureml.git.commit"]

Sonraki adımlar