Aracılığıyla paylaş


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. Bu makalede Azure Machine Learning'in bir eğitim işinin parçası olarak depo, dal ve geçerli işleme bilgilerini izlemek için yerel git deposuyla nasıl tümleştirebileceği açıklanmaktadır.

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 kullanabilir veya sürekli tümleştirme ve sürekli dağıtım (CI/CD) işlem hattından Git'i kullanabilirsiniz.

Yerel git deposundan kaynak dosyaları olan bir Azure Machine Learning eğitim işi gönderdiğinizde, eğitim işinin bir parçası olarak depo hakkındaki bilgiler izlenir. Bilgiler yerel Git deposundan geldiğinden, belirli bir merkezi depoya bağlı değildir. Deponuz GitHub, GitLab, Bitbucket veya Azure DevOps gibi Git uyumlu herhangi bir hizmetten kopyalanabilir.

İpucu

Visual Studio Code'ı kullanarak Git ile grafik kullanıcı arabirimi aracılığıyla etkileşim kurabilirsiniz. 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. Visual Studio Code'da Sürüm Denetimi kullanma ve Visual Studio Code'da GitHub ile çalışma.

Çalışma alanı dosya sistemindeki Git depoları

Azure Machine Learning, çalışma alanında bulunan tüm kullanıcılar için paylaşılan bir dosya sistemi sağlar. Git deposunu bu dosya paylaşımına kopyalamanın en iyi yolu bir işlem örneği oluşturmak ve bir terminal açmaktır. Terminalde, tam bir Git istemcisine erişiminiz vardır ve Git CLI kullanarak Git'i kopyalayabilir ve bunlarla çalışabilirsiniz. Daha fazla bilgi için bkz . Git CLI.

GitHub, Azure Repos veya BitBucket deposu gibi kimlik doğrulaması yapabileceğiniz herhangi bir Git deposunu kopyalayabilirsiniz. Diğer kullanıcıların doğrudan çalışma dalınız üzerinde çarpışmaması için depoyu kullanıcı dizininize kopyalamanız en iyisidir.

İşlem örneğinin yerel dosya sistemine kopyalama ile ~/cloudfiles/code/ dizini olarak bağlanmış paylaşılan dosya sistemine kopyalama arasında bazı farklar vardır. Genel olarak, yerel dosya sistemine kopyalama, bağlı dosya sistemine kopyalamadan daha iyi performans sağlar. Ancak işlem örneğini silip yeniden oluşturursanız, bağlı paylaşılan dosya sistemi korunurken yerel dosya sistemi kaybolur.

SSH ile Git deposunu kopyalama

Secure Shell (SSH) protokollerini kullanarak depoyu kopyalayabilirsiniz. SSH kullanmak için SSH anahtarı kullanarak SSH ile Git hesabınızın kimliğini doğrulamanız gerekir.

Yeni bir SSH anahtarı oluşturma ve kaydetme

Yeni bir SSH anahtarı oluşturmak için Azure Machine Learning stüdyosu Not Defteri sayfasına gidebilir, bir terminal açabilir ve e-posta adresinizin yerine aşağıdaki komutu çalıştırabilirsiniz.

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

Komut aşağıdaki çıkışı döndürür:

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

Önceki çıkıştaki konumun olduğundan /home/azureuser/.sshemin olun veya bu konumu değiştirin ve Enter tuşuna basın.

Daha fazla güvenlik için SSH anahtarınıza parola eklemek en iyisidir. Aşağıdaki istemlerde güvenli bir parola girin.

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

Enter tuşuna ssh-keygen bastığınızda komut, sağlanan e-posta adresini etiket olarak içeren yeni bir SSH anahtarı oluşturur. Anahtar dosyası işlem örneğine kaydedilir ve yalnızca işlem örneği sahibi tarafından erişilebilir.

Ortak anahtarı Git hesabınıza ekleme

Genel SSH anahtarınızı Git hesabınıza eklemeniz gerekir. Anahtarı almak için terminal pencerenizde aşağıdaki komutu çalıştırın. Anahtar dosyanızın adı farklıysa değerini ortak anahtar dosyanızın adıyla değiştirin id_ed25519.pub .

cat ~/.ssh/id_ed25519.pub

komut, ortak anahtar dosyanızın içeriğini görüntüler. Çıkışı kopyalayın.

İpucu

Terminal penceresine kopyalayıp yapıştırmak için, işletim sisteminize bağlı olarak şu klavye kısayollarını kullanın:

  • Windows: Kopyalamak için Ctrl+C veya Ctrl+Insert, yapıştırmak için Ctrl+V veya Ctrl+Shift+V.
  • MacOS: Kopyalanacak Cmd+C ve yapıştırmak için Cmd+V.

Bazı tarayıcılar pano izinlerini düzgün desteklemeyebilir.

Git hizmetinize bağlı olarak aşağıdaki yönergeleri kullanarak SSH anahtarını Git hesabınıza ekleyin:

SSH ile Git deposunu kopyalama

Git deposunu kopyalamak için depodan SSH Git kopyalama URL'sini kopyalayın. Terminalinizde, ardından SSH Git kopya URL'sini çalıştırın git clone . Örneğin:

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

SSH, aşağıdaki örnekte olduğu gibi sunucunun SSH parmak izini görüntüleyebilir ve doğrulamanızı isteyebilir.

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

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. Parmak izinin SSH ortak anahtarlar sayfasındaki parmak izlerinden biriyle eşleşdiğini doğrulamanız gerekir. Konağın parmak izini kabul ettikten sonra, parmak izi değişmediği sürece SSH sizi bir daha sormaz.

SSH aşağıdaki örneğe benzer bir yanıt görüntüler:

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

Parolanızı girdikten sonra Git depoyu klonlar ve gelecekteki Git komutları için kaynak uzak öğesini SSH ile bağlanacak şekilde ayarlar.

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 kaynak dosyaların git deposunda depolanmış olup olmadığını denetler.

Bu durumda, işlem git deposunu, dalını ve geçerli işleme bilgilerini eğitim işinin bir parçası olarak karşıya yükler. Bilgiler tahmin aracı, makine öğrenmesi işlem hattı veya betik çalıştırması kullanan işler için aşağıdaki eğitim işi özelliklerinde depolanır.

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

git Komut geliştirme ortamınızda yoksa veya eğitim dosyalarınız bir Git deposunda yer almıyorsa Git ile ilgili hiçbir bilgi izlenmez.

İpucu

Komutun git geliştirme ortamınızda kullanılabilir olup olmadığını denetlemek için komutu bir komut satırı arabiriminde çalıştırın git --version . Git yüklüyse ve yolunuz içindeyse, benzeri git version 2.43.0bir yanıt alırsınız. Git'i geliştirme ortamınıza yükleme hakkında bilgi için Git web sitesine bakın.

Git bilgilerini görüntüleme

Git bilgileri, bir eğitim işinin özelliklerinde JSON kodu olarak depolanır. Günlüğe kaydedilen Git bilgileri aşağıdaki özellikleri içerebilir:

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

Bu bilgileri Azure portalını, Python SDK'sını veya Azure CLI'yı kullanarak görüntüleyebilirsiniz.

Azure portal

Azure Machine Learning stüdyosu çalışma alanınızda İşler sayfasından işinizi seçin. İşe Genel Bakış sayfasının Özellikler bölümünde Tüm özellikleri göster'in altında Ham JSON'ı seçin.

JSON'da Git özelliklerini arayın, örneğin:

    "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

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

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

Azure CLI V2

Git bilgilerini görüntülemek için komutunu bağımsız değişkeniyle --query çalıştırabilirsinizaz ml job show. Örneğin, aşağıdaki sorgu özellik değerini alır mlflow.source.git.commit :

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