Azure Machine Learning işlem örneği oluşturma ve yönetme

Azure Machine Learning çalışma alanınızda bir işlem örneği oluşturmayı ve yönetmeyi öğrenin.

Bulutta tam olarak yapılandırılmış ve yönetilen geliştirme ortamınız olarak bir işlem örneği kullanın. Geliştirme ve test için, örneği bir eğitim işlem hedefi veya bir çıkarım hedefiolarak da kullanabilirsiniz. Bir işlem örneği, paralel olarak birden çok iş çalıştırabilir ve bir iş kuyruğuna sahiptir. Bir geliştirme ortamı olarak, bir işlem örneği çalışma alanınızdaki diğer kullanıcılarla paylaşılamaz.

Bu makalede şunları öğreneceksiniz:

İşlem örnekleri, kuruluşların SSH bağlantı noktalarını açmasına gerek kalmadan, işleri bir sanal ağ ortamındagüvenli bir şekilde çalıştırabilir. İş kapsayıcılı bir ortamda yürütülür ve model bağımlılıklarınızı bir Docker kapsayıcısında paketleyebilir.

Önkoşullar

Oluştur

Önemli

Aşağıda işaretlenmiş öğeler (Önizleme) Şu anda genel önizlemede. Önizleme sürümü, bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Tahmini süre: yaklaşık 5 dakika.

İşlem örneği oluşturma, çalışma alanınız için tek seferlik bir işlemdir. İşlem geliştirme iş istasyonu olarak veya eğitim için bir işlem hedefi olarak yeniden kullanabilirsiniz. Çalışma alanınıza eklenmiş birden çok işlem örneği olabilir.

VM ailesi kotası başına bölge başına adanmış çekirdekler ve işlem örneği oluşturma için geçerli olan toplam bölgesel kota, Azure Machine Learning eğitim işlem kümesi kotasıyla birleştirilmiş ve paylaşılır. İşlem örneği durdurulduğunda, işlem örneğini yeniden başlatabileceksiniz emin olmak için kota serbest bırakılır. İşlem örneği oluşturulduktan sonra sanal makine boyutunu değiştirmek mümkün değildir.

Aşağıdaki örnek, bir işlem örneğinin nasıl oluşturulacağını gösterir:

import datetime
import time

from azureml.core.compute import ComputeTarget, ComputeInstance
from azureml.core.compute_target import ComputeTargetException

# Choose a name for your instance
# Compute instance name should be unique across the azure region
compute_name = "ci{}".format(ws._workspace_id)[:10]

# Verify that instance does not exist already
try:
    instance = ComputeInstance(workspace=ws, name=compute_name)
    print('Found existing instance, use it.')
except ComputeTargetException:
    compute_config = ComputeInstance.provisioning_configuration(
        vm_size='STANDARD_D3_V2',
        ssh_public_access=False,
        # vnet_resourcegroup_name='<my-resource-group>',
        # vnet_name='<my-vnet-name>',
        # subnet_name='default',
        # admin_user_ssh_public_key='<my-sshkey>'
    )
    instance = ComputeInstance.create(ws, compute_name, compute_config)
    instance.wait_for_completion(show_output=True)

Bu örnekte kullanılan sınıflar, Yöntemler ve parametreler hakkında daha fazla bilgi için, aşağıdaki başvuru belgelerine bakın:

Ayrıca, Azure Resource Manager şablonuylabir işlem örneği de oluşturabilirsiniz.

SSH erişimini etkinleştir

SSH erişimi varsayılan olarak devre dışıdır. SSH erişimi, oluşturulduktan sonra değiştirilemez. VS Code uzakile etkileşimli olarak hata ayıklama yapmayı planlıyorsanız, erişimi etkinleştirdiğinizden emin olun.

sonraki: Gelişmiş Ayarlar seçtikten sonra:

  1. SSH erişimini etkinleştir'i etkinleştirin.
  2. SSH ortak anahtar kaynağında, açılan listeden seçeneklerden birini seçin:
    • Yeni anahtar çifti oluştursanız:
      1. Anahtar çifti adı alanına anahtar için bir ad girin.
      2. Oluştur’u seçin.
      3. Özel anahtarı indir'i seçin ve işlem oluşturun. Anahtar genellikle İndirilenler klasörüne indirilir.
    • Azure'da depolanan mevcut ortak anahtarı kullan'ı seçersiniz, Depolanan anahtar'da anahtarı arayın ve seçin.
    • Var olan ortak anahtarı kullan'ı seçerse, tek satırlı biçimde bir RSA ortak anahtarı ("ssh-rsa" ile başlayarak) veya çok satırlı PEM biçiminde bir RSA ortak anahtarı sağlarsınız. Linux ve OS X üzerinde ssh-keygen veya linux üzerinde PuTTYGen kullanarak SSH anahtarları Windows.

işlem örneği oluşturulduktan ve çalıştırıldığında, bkz. SSH erişimiyle Bağlan.

Adına oluştur (Önizleme)

Yönetici olarak, bir veri bilimcu adına bir işlem örneği oluşturabilir ve örneği bunlara ile atayabilirsiniz:

İşlem örneğini oluşturduğunuz veri bilimcilerinin Azure rol tabanlı erişim denetimi (Azure RBAC) izinleri olması gerekir:

  • Microsoft. MachineLearningServices/çalışma alanları/hesaplar/Başlat/eylem
  • Microsoft. MachineLearningServices/Workspaces/hesaplar/durdur/eylem
  • Microsoft. MachineLearningServices/Workspaces/hesaplar/yeniden Başlat/eylem
  • Microsoft. MachineLearningServices/çalışma alanları/hesaplar/applicationaccess/Action
  • Microsoft. MachineLearningServices/Workspaces/hesaplar/Updatezamanlamalar/eylem

Veri bilimcisi, işlem örneğini başlatabilir, durdurabilir ve yeniden başlatabilir. Bu işlemler için işlem örneğini kullanabilir:

  • Jupyter
  • Jupyıterlab
  • RStudio
  • Tümleşik Not defterleri

Otomatik başlatma ve durdurma (Önizleme) zamanlaması

Otomatik olarak kapatılacak ve otomatik başlatma için birden çok zamanlama tanımlayın. Örneğin, 9:00 ' da başlamak için bir zamanlama oluşturun ve Pazartesi-Perşembe günü 12:00 ' da başlamak için ikinci bir zamanlama ve Cuma için 4 PM ile durmak üzere bir zamanlama oluşturun. Her işlem örneği için toplam dört zamanlama oluşturabilirsiniz.

Zamanlamalar, işlem örnekleri adına oluşturma için de tanımlanabilir. Durdurulmuş durumda bir işlem örneği oluşturmak için zamanlama oluşturabilirsiniz. Bu, bir Kullanıcı başka bir kullanıcı adına bir işlem örneği oluşturduğunda özellikle yararlıdır.

Studio 'da zamanlama oluşturma

  1. Formu doldurun.

  2. Formun ikinci sayfasında, Gelişmiş ayarları göster' i açın.

  3. Yeni bir zamanlama eklemek için zamanlama Ekle ' yi seçin.

    Ekran görüntüsü: Gelişmiş ayarlarda zamanlama ekleyin.

  4. İşlem örneğini Başlat veya işlem örneğini durdur' u seçin.

  5. Saat dilimini seçin.

  6. Başlangıç zamanını veya kapatılma saatini seçin.

  7. Bu zamanlamanın etkin olduğu günleri seçin.

    Ekran görüntüsü: kapatılacak bir işlem örneği zamanlayın.

  8. Başka bir zamanlama oluşturmak istiyorsanız, zamanlamayı yeniden Ekle ' yi seçin.

İşlem örneği oluşturulduktan sonra, işlem örneği ayrıntıları bölümünden yeni zamanlamalar görüntüleyebilir, düzenleyebilir veya yeni zamanlamalar ekleyebilirsiniz. Lütfen saat dilimi etiketlerinin gün ışığı tasarrufu için hesap olmadığına göz önüne alın. Örneğin, (UTC + 01:00) Amsterdam, Berlin, Bern, Roma, Stockholm, Viyana aslında UTC + 02:00, gün ışığı tasarrufu sağlar.

Kaynak Yöneticisi şablonuyla zamanlama oluşturma

Bir Kaynak Yöneticisi şablonukullanarak bir işlem örneğinin otomatik olarak başlatılmasını ve durdurulmasını zamanlayabilirsiniz.

Kaynak Yöneticisi şablonunda şunları ekleyin:

"schedules": "[parameters('schedules')]"

Ardından, parametre dosyanızdaki örneği başlatan veya durduran zamanlamayı tanımlamak için cron veya LogicApps ifadelerini kullanın:

        "schedules": {
        "value": {
        "computeStartStop": [
          {
            "triggerType": "Cron",
            "cron": {              
              "timeZone": "UTC",
              "expression": "0 18 * * *"
            },
            "action": "Stop",
            "status": "Enabled"
          },
          {
            "triggerType": "Cron",
            "cron": {              
              "timeZone": "UTC",
              "expression": "0 8 * * *"
            },
            "action": "Start",
            "status": "Enabled"
          },
          { 
            "triggerType": "Recurrence", 
            "recurrence": { 
              "frequency": "Day", 
              "interval": 1, 
              "timeZone": "UTC", 
              "schedule": { 
                "hours": [17], 
                "minutes": [0]
              } 
            }, 
            "action": "Stop", 
            "status": "Enabled" 
          } 
        ]
      }
    }
  • Eylem "Başlat" veya "Durdur" değerine sahip olabilir.

  • Tetikleyici türü için Recurrence , bu yinelenme şemasıile aynı söz dizimini Logic App ile kullanın.

  • Tetikleyici türü için cron Standart cron söz dizimini kullanın:

    // Crontab expression format: 
    // 
    // * * * * * 
    // - - - - - 
    // | | | | | 
    // | | | | +----- day of week (0 - 6) (Sunday=0) 
    // | | | +------- month (1 - 12) 
    // | | +--------- day of month (1 - 31) 
    // | +----------- hour (0 - 23) 
    // +------------- min (0 - 59) 
    // 
    // Star (*) in the value field above means all legal values as in 
    // braces for that column. The value column can have a * or a list 
    // of elements separated by commas. An element is either a number in 
    // the ranges shown above or two numbers in the range separated by a 
    // hyphen (meaning an inclusive range). 
    

Bir abonelikte her bir işlem örneği için veya hiçbir şey yoksa bir zamanlamaya göre varsayılan olarak bir oturum açmaya zorlamak için Azure Ilkesini kullanın.

İşlem örneğini bir komut dosyası (Önizleme) ile özelleştirme

Sağlama zamanında işlem örneğini özelleştirmek ve yapılandırmak için otomatik bir yol için kurulum betiği kullanın. Yönetici olarak, çalışma alanındaki tüm işlem örneklerini gereksinimlerinize göre sağlamak için kullanılacak bir özelleştirme betiği yazabilirsiniz.

Kurulum komut dosyasında neler yapabileceğinize ilişkin bazı örnekler:

  • Paketleri, araçları ve yazılımları yükler
  • Veri bağlama
  • Özel Conda ortamı ve Jupyter çekirdekler oluşturma
  • Git depoları kopyalama ve git yapılandırmasını ayarlama
  • Ağ proxy 'lerini ayarla
  • Ortam değişkenlerini belirleme
  • Jupyıterlab uzantılarını yükler

Kurulum betiğini oluşturma

Kurulum betiği, rootuser olarak çalışan bir Shell betiğiyle çalışır. Betiği Not defteri dosyalarınıza oluşturun veya karşıya yükleyin:

  1. Studio 'da oturum açın ve çalışma alanınızı seçin.
  2. Sol tarafta, Not defterleri ' ni seçin.
  3. Kurulum kabuğu komut dosyanızı oluşturmak veya karşıya yüklemek için Dosya Ekle aracını kullanın. Betik dosya adının ". sh" içinde bittiğinden emin olun. Yeni bir dosya oluşturduğunuzda dosya türünü Bash (. sh) olarak da değiştirin.

Kurulum betiğini Studio 'daki Not defterleri dosyasına oluşturma veya karşıya yükleme

Betik çalıştırıldığında, betiğin geçerli çalışma dizini karşıya yüklendiği dizindir. Örneğin, komut dosyasını kullanıcılar>yönetici' ye yüklerseniz, betik çalıştırıldığında komut dosyasının işlem örneği ve geçerli çalışma dizini üzerindeki konumu /Home/azureuser/CloudFiles/Code/Users/admin olur. Bu, betikteki göreli yolları kullanmanıza olanak sağlar.

Betik bağımsız değişkenlerine betikte $1, $2 vb. olarak başvurulabilir.

Betiğiniz, Conda ortamını veya jupi çekirdeğini yükleme gibi azureuser 'e özgü bir şey yaptıysa, bunu bunun gibi sudo-u azureuser bloğunun içine koymanız gerekir

#!/bin/bash

set -e

# This script installs a pip package in compute instance azureml_py38 environment.

sudo -u azureuser -i <<'EOF'

PACKAGE=numpy
ENVIRONMENT=azureml_py38 
conda activate "$ENVIRONMENT"
pip install "$PACKAGE"
conda deactivate
EOF

Sudo-u azureuser komutu geçerli çalışma dizinini /Home/azureuser olarak değiştirir. Bu bloktaki komut dosyası bağımsız değişkenlerine de erişemezsiniz.

Diğer örnek betikler için bkz. azureml-örnekler.

Betiğinizdeki aşağıdaki ortam değişkenlerini de kullanabilirsiniz:

  1. CI_RESOURCE_GROUP
  2. CI_WORKSPACE
  3. CI_NAME
  4. CI_LOCAL_UBUNTU_USER. Bu azureuser 'e işaret eder

Kurulum betiğini Azure ilkesiyle birlikte kullanarak her işlem örneği oluşturma için bir kurulum betiğini uygulayabilir veya varsayılan bir ayar yapın. Kurulum betiği zaman aşımı için varsayılan değer 15 dakikadır. Bu, Studio UI aracılığıyla veya DURATION parametresi kullanılarak ARM şablonları aracılığıyla değiştirilebilir. SÜRE, isteğe bağlı son ek içeren bir kayan nokta sayısıdır: ' saniye için (varsayılan), ' h ', saat için ' h ', saat için ' h ' veya günler için ' h '.

Studio 'da betiği kullanma

Betiği depoladıktan sonra, işlem örneğinizin oluşturulması sırasında belirtin:

  1. Studio 'da oturum açın ve çalışma alanınızı seçin.
  2. Sol tarafta işlem' ı seçin.
  3. Yeni bir işlem örneği oluşturmak için + Yeni ' yi seçin.
  4. Formu doldurun.
  5. Formun ikinci sayfasında, Gelişmiş ayarları göster' i açın.
  6. Kurulum betiği Ile sağlamayı açın.
  7. Kaydettiğiniz kabuk betiğine gidin. Ya da bilgisayarınızdan bir betiği karşıya yükleyin.
  8. Gerektiğinde komut bağımsız değişkenleri ekleyin.

Studio 'da kurulum betiği içeren bir bilgi işlem örneği.

Çalışma alanı depolaması bir sanal ağa iliştirilmişse, sanal ağ içinden Studio 'Ya erişmediğiniz müddetçe kurulum komut dosyasına erişemeyebilirsiniz.

Kaynak Yöneticisi şablonunda betiği kullanma

Kaynak Yöneticisi şablonunda, setupScripts işlem örneği sağlandığında kurulum betiğini çağırmak için ekleyin. Örnek:

"setupScripts":{
    "scripts":{
        "creationScript":{
        "scriptSource":"workspaceStorage",
        "scriptData":"[parameters('creationScript.location')]",
        "scriptArguments":"[parameters('creationScript.cmdArguments')]"
        }
    }
}

Yukarıdaki ScriptData , Not defterleri dosya paylaşımında Kullanıcılar/admin/TestScript. sh gibi oluşturma komut dosyasının konumunu belirtir. Scriptarguments , yukarıda isteğe bağlıdır ve oluşturma betiği için bağımsız değişkenleri belirtir.

Bunun yerine, komut dosyasını bir Kaynak Yöneticisi şablonu için satır içi olarak sağlayabilirsiniz. Kabuk komutu, Not defterleri dosya paylaşımında karşıya yüklenen tüm bağımlılıklara başvurabilir. Satır içi dize kullandığınızda, komut dosyası için çalışma dizini /mnt/Batch/Tasks/Shared/LS_root/Mounts/Clusters/ciname/Code/Users olur.

Örneğin, için Base64 kodlamalı bir komut dizesi belirtin scriptData :

"setupScripts":{
    "scripts":{
        "creationScript":{
        "scriptSource":"inline",
        "scriptData":"[base64(parameters('inlineCommand'))]",
        "scriptArguments":"[parameters('creationScript.cmdArguments')]"
        }
    }
}

Kurulum komut dosyası günlükleri

Kurulum betiği yürütmesindeki Günlükler, işlem örneği ayrıntıları sayfasındaki Günlükler klasöründe görüntülenir. Günlükler, Günlükler klasörü altında not defteri dosya paylaşımınıza geri depolanır <compute instance name> . Belirli bir işlem örneği için betik dosyası ve komut bağımsız değişkenleri ayrıntılar sayfasında gösterilmektedir.

Yönetme

Bir işlem örneğini başlatın, durdurun, yeniden başlatın ve silin. İşlem örneği otomatik olarak ölçeklenmez, bu nedenle devam eden ücretleri engellemek için kaynağı durdurmayı unutmayın. Bir işlem örneğinin durdurulması onu kaldırır. Daha sonra ihtiyacınız olduğunda yeniden başlatın. İşlem örneği durdurulduğunda, işlem saatleri için faturalandırma durdurulur, ancak yine de disk, genel IP ve standart yük dengeleyici için faturalandırılırsınız.

İşlem örneği için bir saat ve haftanın gününe göre otomatik olarak başlatılacak ve durdurulacak bir zamanlama oluşturabilirsiniz .

İpucu

İşlem örneğinde 12GB işletim sistemi diski vardır. Disk alanı tükenseniz, işlem örneğini durdurmadan veya yeniden başlatmadan önce en az 1-2 GB 'yi temizlemek için terminali kullanın . Lütfen terminalden sudo kapatması vererek işlem örneğini durdurmayın.

Aşağıdaki örneklerde, işlem örneği adı örnek

  • Durumu Al

    # get_status() gets the latest status of the ComputeInstance target
    instance.get_status()
    
  • Durdur

    # stop() is used to stop the ComputeInstance
    # Stopping ComputeInstance will stop the billing meter and persist the state on the disk.
    # Available Quota will not be changed with this operation.
    instance.stop(wait_for_completion=True, show_output=True)
    
  • Başlangıç

    # start() is used to start the ComputeInstance if it is in stopped state
    instance.start(wait_for_completion=True, show_output=True)
    
  • Yeniden başlat

    # restart() is used to restart the ComputeInstance
    instance.restart(wait_for_completion=True, show_output=True)
    
  • Sil

    # delete() is used to delete the ComputeInstance target. Useful if you want to re-use the compute name
    instance.delete(wait_for_completion=True, show_output=True)
    

Azure RBAC , çalışma alanındaki hangi kullanıcıların bir bilgi işlem örneği oluşturabileceğinizi, silebileceği, başlatabileceği, durdurabileceğinizi denetlemenize olanak tanır. Çalışma alanı katılımcısı ve sahip rolündeki tüm kullanıcılar çalışma alanı genelinde işlem örnekleri oluşturabilir, silebilir, başlatabilir, durdurabilir ve yeniden başlatabilir. Bununla birlikte, yalnızca belirli bir işlem örneği veya kendi adına oluşturulmuşsa atanan kullanıcı atanmış bir işlem örneği üzerinde Jupyıter, Jupiterlab ve RStudio erişimine izin verilir. Bir işlem örneği, kök erişimi olan tek bir kullanıcıya ayrılmıştır ve jupi/Jupiterlab/RStudio aracılığıyla oturum açabilir. İşlem örneğinde tek kullanıcı oturum açma işlemi olur ve tüm eylemler, bu kullanıcının Azure RBAC ve deneme çalıştırmaları için kimliğini kullanır. SSH erişimi, ortak/özel anahtar mekanizması aracılığıyla denetlenir.

Bu eylemler, Azure RBAC tarafından denetlenebilir:

  • Microsoft. MachineLearningServices/çalışma alanları/hesaplar/okundu
  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft. MachineLearningServices/çalışma alanları/hesaplar/Sil
  • Microsoft. MachineLearningServices/çalışma alanları/hesaplar/Başlat/eylem
  • Microsoft. MachineLearningServices/Workspaces/hesaplar/durdur/eylem
  • Microsoft. MachineLearningServices/Workspaces/hesaplar/yeniden Başlat/eylem
  • Microsoft. MachineLearningServices/Workspaces/hesaplar/Updatezamanlamalar/eylem

Bir işlem örneği oluşturmak için aşağıdaki eylemler için izinlerinizin olması gerekir:

  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/checkComputeNameAvailability/action

Sonraki adımlar