Azure Machine Learning için Kubernetes kümesini yapılandırma

Kubernetes işlemi Azure Machine Learning AutoML, işlem hattı ve dağıtılmış işler gibi eğitim işlerini çalıştırmanıza veya modelleri çevrimiçi uç nokta veya toplu iş uç noktası olarak dağıtmanıza olanak tanır. Azure ML Kubernetes işlem iki tür Kubernetes kümesini destekler:

  • Azure'da Azure Kubernetes Services (AKS) kümesi. Azure'da kendi yönetilen AKS kümenizle uyumluluk gereksinimini karşılamak için güvenlik ve denetimler elde edebilir ve ekiplerin ML iş yükünü yönetme esnekliği elde edebilirsiniz.
  • Azure Arc özellikli Kubernetes (Arc Kubernetes) kümesi. Arc Kubernetes kümesiyle modelleri şirket içindeki herhangi bir altyapıda, çoklu bulutta veya uçta eğitebilir veya dağıtabilirsiniz.

Bu makalede, Azure Machine Learning için mevcut bir Kubernetes kümesini yapılandırma adımları hakkında bilgi edinebilirsiniz:

Önkoşullar

  • Aks kümesi Azure'da çalışır durumdadır.
  • veya Arc Kubernetes kümesi çalışır durumdadır. Mevcut Kubernetes kümesini Azure Arc'a bağlama bölümündeki yönergeleri izleyin.
    • Bu Azure RedHat OpenShift Service (ARO) kümesi veya OpenShift Container Platform (OCP) kümesiyse, lütfen buradaki ek önkoşul adımını karşıladığından emin olun.
  • Kubernetes kümesinde en az 4 vCPU çekirdeği ve 8 GB bellek olmalıdır.
  • Giden ara sunucunun veya güvenlik duvarının arkasında çalışan küme için ek ağ yapılandırmaları gerekiyor
  • Azure CLI'yi 2.24.0 veya sonraki bir sürüme yükleyin veya yükseltin.
  • Azure CLI uzantısını k8s-extension 1.2.3 veya sonraki bir sürüme yükleyin veya yükseltin.

AzureML uzantısını Kubernetes kümesine dağıtma

AzureML uzantısı, ad alanında Kubernetes kümenize azureml dağıtılan bir dizi sistem bileşeninden oluşur, böylece kümenizin bir Azure ML iş yükü (model eğitim işleri veya model uç noktaları) çalıştırmasını sağlayabilirsiniz. AzureML uzantısını dağıtmak için bir Azure CLI komutu k8s-extension create kullanabilirsiniz. AzureML uzantısının genel kullanılabilir (GA) sürümü 1.1.1 veya üzeridir.

AzureML uzantı sistemi bileşenlerinin ayrıntılı listesi için bkz. AzureML uzantı bileşenleri.

AzureML uzantısını CLI ile dağıtmak için, zorunlu parametreler için değerleri geçirme komutunu kullanın az k8s-extension create .

Başvuru için 4 tipik uzantı dağıtım senaryolarını listeledik. Üretim kullanımınıza yönelik uzantıyı dağıtmak için lütfen yapılandırma ayarlarının tam listesini dikkatle okuyun.

  • Hızlı bir kavram kanıtı, eğitim işleri çalıştırmak veya modelleri çevrimiçi/toplu iş uç noktaları olarak dağıtmak için Azure'da AKS kümesini kullanma

    AKS kümesinde AzureML uzantısı dağıtımı için parametre değerini --cluster-type belirttiğinizden managedClusters emin olun. AzureML uzantısını dağıtmak için aşağıdaki Azure CLI komutunu çalıştırın:

    az k8s-extension create --name <extension-name> --extension-type Microsoft.AzureML.Kubernetes --config enableTraining=True enableInference=True inferenceRouterServiceType=LoadBalancer allowInsecureConnections=True inferenceLoadBalancerHA=False --cluster-type managedClusters --cluster-name <your-AKS-cluster-name> --resource-group <your-RG-name> --scope cluster
    
  • Yalnızca eğitim işlerini çalıştırmak için hızlı bir kavram kanıtı için Azure dışında Arc Kubernetes kümesini kullanın

    Arc Kubernetes kümesinde AzureML uzantısı dağıtımı için parametre değerini --cluster-type belirtmeniz connectedClusters gerekir. AzureML uzantısını dağıtmak için aşağıdaki Azure CLI komutunu çalıştırın:

    az k8s-extension create --name <extension-name> --extension-type Microsoft.AzureML.Kubernetes --config enableTraining=True --cluster-type connectedClusters --cluster-name <your-connected-cluster-name> --resource-group <your-RG-name> --scope cluster
    
  • Üretim eğitimi ve çıkarım iş yükü için Azure'da AKS kümesini etkinleştirme AKS'de AzureML uzantısı dağıtımı için parametre değerini --cluster-type belirttiğinizden managedClusters emin olun. Kümenizin 3'ten fazla düğümü olduğunu ve çıkarım iş yükü desteği için bir Azure genel yük dengeleyici ve HTTPS kullanacağınızı varsayalım. AzureML uzantısını dağıtmak için aşağıdaki Azure CLI komutunu çalıştırın:

    az k8s-extension create --name <extension-name> --extension-type Microsoft.AzureML.Kubernetes --config enableTraining=True enableInference=True inferenceRouterServiceType=LoadBalancer sslCname=<ssl cname> --config-protected sslCertPemFile=<file-path-to-cert-PEM> sslKeyPemFile=<file-path-to-cert-KEY> --cluster-type managedClusters --cluster-name <your-AKS-cluster-name> --resource-group <your-RG-name> --scope cluster
    
  • NVIDIA GPU'larını kullanarak üretim eğitimi ve çıkarım iş yükü için arc kubernetes kümesini her yerde etkinleştirme

    Arc Kubernetes kümesinde AzureML uzantısı dağıtımı için parametre değerini --cluster-type belirttiğinizden connectedClusters emin olun. Kümenizin 3'ten fazla düğümü olduğunu varsayarsak, çıkarım iş yükü desteği için bir NodePort hizmet türü ve HTTPS kullanırsınız. AzureML uzantısını dağıtmak için aşağıdaki Azure CLI komutunu çalıştırın:

    az k8s-extension create --name <extension-name> --extension-type Microsoft.AzureML.Kubernetes --config enableTraining=True enableInference=True inferenceRouterServiceType=NodePort sslCname=<ssl cname> installNvidiaDevicePlugin=True installDcgmExporter=True --config-protected sslCertPemFile=<file-path-to-cert-PEM> sslKeyPemFile=<file-path-to-cert-KEY> --cluster-type connectedClusters --cluster-name <your-connected-cluster-name> --resource-group <your-RG-name> --scope cluster
    

AzureML uzantısı dağıtımıyla ilgili önemli noktalar

AzureML uzantısı dağıtımı, farklı iş yükü desteği için gereken yapılandırma ayarlarını belirtmenize olanak tanır. AzureML uzantısı dağıtımından önce gereksiz uzantı dağıtımı hatalarından kaçınmak için lütfen aşağıdakileri dikkatle okuyun:

  • Kümeniz için etkinleştirileceği iş yükü türü. enableTraining ve enableInference yapılandırma ayarları burada kullanışlı tercihlerinizdir; enableTrainingeğitim ve toplu puanlama iş yükünü etkinleştirecek, enableInferencegerçek zamanlı çıkarım iş yükünü etkinleştirecektir.
  • Gerçek zamanlı çıkarım desteği için, gelen çıkarım isteklerini model pod'una yönlendirmek için yönlendirici hizmetinin dağıtılması gerekir azureml-fe ve için azureml-feyapılandırma ayarını belirtmeniz inferenceRouterServiceType gerekir. azureml-fe aşağıdakilerden inferenceRouterServiceTypebiriyle dağıtılabilir:
    • LoadBalancer yazın. azureml-fe Bulut sağlayıcısının yük dengeleyicisini kullanarak dışarıdan kullanıma sunar. Bu değeri belirtmek için kümenizin yük dengeleyici sağlamayı desteklediğini doğrulayın. Şirket içi Kubernetes kümelerinin çoğunun dış yük dengeleyiciyi desteklemeyebileceğini unutmayın.
    • NodePort yazın. Her Düğümün azureml-fe IP'sinde statik bir bağlantı noktasında kullanıma sunar. isteğinde <NodeIP>:<NodePort>bulunarak, ile küme dışından iletişim kurabileceksinizazureml-fe. kullanarak NodePort , için azureml-fekendi yük dengeleme çözümünüzü ve SSL sonlandırmanızı ayarlamanıza da olanak tanır.
    • ClusterIP yazın. azureml-fe Küme iç IP'sinde kullanıma sunar ve yalnızca küme içinden erişilebilir hale getirirazureml-fe. Küme azureml-fe dışından gelen çıkarım isteklerine hizmet vermek için, için azureml-fekendi yük dengeleme çözümünüzü ve SSL sonlandırmanızı ayarlamanız gerekir.
  • Gerçek zamanlı çıkarım desteği için, yönlendirme hizmetinin yüksek kullanılabilirliğini azureml-fe sağlamak için AzureML uzantısı dağıtımı varsayılan olarak 3 düğümü veya daha fazla düğümü olan kümeler azureml-fe için 3 çoğaltması oluşturur. Kümenizde 3'ten az düğüm varsa değerini ayarlayın inferenceLoadbalancerHA=False.
  • Gerçek zamanlı çıkarım desteği için, model uç noktalarına erişimi kısıtlamak ve istemcilerin gönderdiği verilerin güvenliğini sağlamak için HTTPS kullanmayı da düşünebilirsiniz. Bu amaçla yapılandırma ayarını veya ve sslCertPemFile yapılandırma ayarlarının birleşimini sslKeyPemFile belirtmeniz sslSecret gerekir. Varsayılan olarak, AzureML uzantısı dağıtımı HTTPS desteği gerektirir ve yukarıdaki yapılandırma ayarını sağlamanız gerekir. Geliştirme veya test amacıyla , HTTP desteği yapılandırma ayarı allowInsecureConnections=Truearacılığıyla kolayca sağlanır.

AzureML dağıtım zamanında seçebileceğiniz yapılandırma ayarlarının tam listesi için bkz. AzureML uzantısı yapılandırma ayarlarını gözden geçirme

AzureML uzantısı dağıtımlarını doğrulama

  1. AzureML uzantısı ayrıntılarını denetlemek için aşağıdaki CLI komutunu çalıştırın:

    az k8s-extension show --name <extension-name> --cluster-type connectedClusters --cluster-name <your-connected-cluster-name> --resource-group <resource-group>
    
  2. Yanıtta "name" ve "provisioningState": "Succeeded" ifadesini arayın. İlk birkaç dakika boyunca "provisioningState": "Pending" ifadesini gösterebileceğini unutmayın.

  3. provisioningState değeri Başarılı olarak görünüyorsa makinenizde aşağıdaki komutu çalıştırın ve kubeconfig dosyası kümenize işaret ederek "azureml" ad alanı altındaki tüm podların 'Çalışıyor' durumda olup olmadığını denetleyin:

     kubectl get pods -n azureml
    

AzureML uzantısını yönetme

AzureML uzantısını güncelleştirme, listeleme, gösterme ve silme.


AzureML uzantısı yapılandırma ayarlarını gözden geçirin

AzureML uzantısı dağıtım yapılandırmaları için veya --config-protected kullanarak --config çiftlerin key=value listesini belirtin. Aşağıda, farklı AzureML uzantısı dağıtım senaryosu n'ler için kullanılabilecek yapılandırma ayarlarının listesi yer alır.

Yapılandırma Ayarı Anahtar Adı Açıklama Eğitim Kesmesi Eğitim ve Çıkarım
enableTraining True veya False, varsayılan False. Machine Learning model eğitimi ve toplu puanlama desteği ile AzureML uzantısı dağıtımı için olarak ayarlanmalıdırTrue. Yok
enableInference True veya False, varsayılan False. Machine Learning çıkarım desteğiyle AzureML uzantısı dağıtımı için olarak ayarlanmalıdırTrue. Yok
allowInsecureConnections True veya False, varsayılan False. Geliştirme veya test amacıyla çıkarım HTTP uç noktalarını kullanacak şekilde ayarlanabilirTrue. Yok İsteğe Bağlı İsteğe Bağlı
inferenceRouterServiceType loadBalancerveya nodePortclusterIP. gerekli ise enableInference=Truegereklidir. Yok
internalLoadBalancerProvider Bu yapılandırma şu anda yalnızca Azure Kubernetes Service(AKS) kümesi için geçerlidir. İç yük dengeleyici kullanarak çıkarım yönlendiricisine izin vermek için azure olarak ayarlayın. Yok İsteğe Bağlı İsteğe Bağlı
sslSecret Depolamak için ad alanında azureml Kubernetes gizli dizisinin adı (PEM ile kodlanmış SSL sertifikası) ve key.pem (PEM kodlu SSL anahtarı), false olarak ayarlandığında HTTPS uç nokta desteği allowInsecureConnections çıkarımı için cert.pem gereklidir. SslSecret'in örnek YAML tanımını burada bulabilirsiniz. Bu yapılandırmayı veya ve sslKeyPemFile korumalı yapılandırma ayarlarının sslCertPemFile birleşimini kullanın. Yok İsteğe Bağlı İsteğe Bağlı
sslCname ÇıKARıM HTTPS uç noktası tarafından kullanılan BIR SSL CName. GerekliyseallowInsecureConnections=True Yok İsteğe Bağlı İsteğe Bağlı
inferenceRouterHA True veya False, varsayılan True. Varsayılan olarak, AzureML uzantısı yüksek kullanılabilirlik için bir kümede en az 3 çalışan düğümü gerektiren 3 çıkarım yönlendirici çoğaltması dağıtır. False Kümenizde 3'ten az çalışan düğümü varsa olarak ayarlayın; bu durumda yalnızca bir çıkarım yönlendiricisi hizmeti dağıtılır. Yok İsteğe Bağlı İsteğe Bağlı
nodeSelector Varsayılan olarak, dağıtılan kubernetes kaynakları kümenin 1 veya daha fazla düğümüne rastgele dağıtılır ve daemonset kaynakları TÜM düğümlere dağıtılır. Uzantı dağıtımını etiketli key1=value1 ve key2=value2ile belirli düğümlerle kısıtlamak istiyorsanız, buna karşılık olarak kullanınnodeSelector.key1=value1nodeSelector.key2=value2. İsteğe Bağlı İsteğe Bağlı İsteğe Bağlı
installNvidiaDevicePlugin True veya False, varsayılan False. NVIDIA GPU donanımındaki ML iş yükleri için NVIDIA Cihaz Eklentisi gereklidir. Varsayılan olarak AzureML uzantısı dağıtımı, Kubernetes kümesiNDE GPU donanımı olup olmadığına bakılmaksızın NVIDIA Cihaz Eklentisi'ni yüklemez. Kullanıcı yüklemek için Truebu ayarı olarak belirtebilir, ancak Önkoşulları yerine getirdiğinden emin olun. İsteğe Bağlı İsteğe Bağlı İsteğe Bağlı
installPromOp True veya False, varsayılan True. AzureML uzantısı, prometheus'un yönetilmesi için prometheus işlecine ihtiyaç duyar. False Mevcut prometheus işlecini yeniden kullanmak için olarak ayarlayın. Uyumlu kube-prometheus-stack helm grafiği sürümleri 9.3.4 ile 30.0.1 arasıdır. İsteğe Bağlı İsteğe Bağlı İsteğe Bağlı
installVolcano True veya False, varsayılan True. AzureML uzantısının işi zamanlaması için volkan zamanlayıcıya ihtiyacı vardır. Mevcut volkan zamanlayıcısını yeniden kullanmak için False olarak ayarlayın. Desteklenen volkan zamanlayıcı sürümleri 1.4, 1.5'tır. İsteğe Bağlı Yok İsteğe Bağlı
installDcgmExporter True veya False, varsayılan False. Dcgm-exporter, AzureML iş yükleri için GPU ölçümlerini kullanıma açabilir ve bu ölçümler Azure portal izlenebilir. True dcgm-exporter yüklemek için olarak ayarlayıninstallDcgmExporter. Ama kendi dcgm-exporter kullanmak istiyorsanız, DCGM dışarı veren bakın İsteğe Bağlı İsteğe Bağlı İsteğe Bağlı
Yapılandırma Korumalı Ayar Anahtar Adı Açıklama Eğitim Kesmesi Eğitim ve Çıkarım
sslCertPemFile, sslKeyPemFile False olarak ayarlandığında, çıkarım HTTPS uç noktası desteği allowInsecureConnections ile AzureML uzantısı dağıtımı için gereken SSL sertifikası ve anahtar dosyasının (PEM kodlanmış) yolu. Not Parola tümceciği korumalı PEM dosyası desteklenmiyor Yok İsteğe Bağlı İsteğe Bağlı

Azure ML çalışma alanına Kubernetes kümesi ekleme

AzureML uzantısı AKS veya Arc Kubernetes kümesine dağıtıldıktan sonra Kubernetes kümesini Azure ML çalışma alanına ekleyebilir ve ML profesyonellerin kullanması için işlem hedefleri oluşturabilirsiniz. Her ekleme işlemi Azure ML çalışma alanında bir işlem hedefi oluşturur ve aynı kümedeki birden çok ekleme işlemi, tek bir Azure ML çalışma alanında veya birden çok Azure ML çalışma alanında birden çok işlem hedefi oluşturur.

Önkoşul

Azure Machine Learning çalışma alanı varsayılan olarak Azure ML kaynaklarına erişmek için sistem tarafından atanan yönetilen kimliğe sahip olur. Sistem tarafından atanan varsayılan ayar açıksa adımlar tamamlanır.

Aksi takdirde, Azure Machine Learning çalışma alanı oluşturma işleminde kullanıcı tarafından atanan yönetilen kimlik belirtilirse, işlemi eklemeden önce yönetilen kimliğe aşağıdaki rol atamalarının el ile verilmesi gerekir.

Azure kaynak adı Atanacak rol Açıklama
Azure Geçişi Azure Relay Sahibi Yalnızca Arc özellikli Kubernetes kümesi için geçerlidir. Arc bağlı olmadan AKS kümesi için Azure Relay oluşturulmaz.
Azure Arc özellikli Kubernetes Okuyucu Hem Arc özellikli Kubernetes kümesi hem de AKS kümesi için geçerlidir.

Azure Relay kaynağı, uzantı dağıtımı sırasında Arc özellikli Kubernetes kümesiyle aynı Kaynak Grubu altında oluşturulur.

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)

Aşağıdaki komutlar AKS ve Azure Arc özellikli Kubernetes kümesinin nasıl eklenip yönetilen kimliğin etkinleştirildiği bir işlem hedefi olarak kullanılacağını gösterir.

AKS kümesi

az ml compute attach --resource-group <resource-group-name> --workspace-name <workspace-name> --type Kubernetes --name k8s-compute --resource-id "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerService/managedclusters/<cluster-name>" --identity-type SystemAssigned --namespace <Kubernetes namespace to run AzureML workloads> --no-wait

Arc Kubernetes kümesi

az ml compute attach --resource-group <resource-group-name> --workspace-name <workspace-name> --type Kubernetes --name amlarc-compute --resource-id "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Kubernetes/connectedClusters/<cluster-name>" --user-assigned-identities "subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>" --no-wait

bağımsız değişkenini --type olarak Kubernetesayarlayın. Bağımsız değişkenini identity_type kullanarak kimlikleri etkinleştirme veya UserAssigned yönetilen kimlikleri etkinleştirmeSystemAssigned.

Önemli

--user-assigned-identities yalnızca yönetilen kimlikler için UserAssigned gereklidir. Virgülle ayrılmış kullanıcı tarafından yönetilen kimliklerin listesini sağlayabilseniz de, kümenizi eklerken yalnızca ilk kimlik kullanılır.

Verimli işlem kaynağı kullanımı için örnek türleri oluşturma ve kullanma

Örnek türleri nelerdir?

Örnek türleri, eğitim ve çıkarım iş yükleri için belirli işlem düğümü türlerinin hedeflenmesine olanak tanıyan Azure Machine Learning bir kavramdır. Azure VM'sinde örnek türüne örnek olarak verilmiştir STANDARD_D2_V3.

Kubernetes kümelerinde örnek türleri, AzureML uzantısıyla yüklenen özel bir kaynak tanımında (CRD) temsil edilir. Örnek türleri AzureML uzantısında iki öğeyle temsil edilir: nodeSelector ve kaynaklar. Kısacası, bir nodeSelector pod'un hangi düğümde çalıştırılacağını belirtmemize olanak tanır. Düğüme karşılık gelen bir etiket olmalıdır. resources bölümünde pod için işlem kaynaklarını (CPU, bellek ve NVIDIA GPU) ayarlayabiliriz.

Varsayılan örnek türü

Varsayılan olarak, Kuberenetes kümesini AzureML çalışma alanına eklediğinizde aşağıdaki tanımı içeren bir defaultinstancetype oluşturulur:

  • Hayır nodeSelector uygulanmaz, başka bir deyişle pod herhangi bir düğümde zamanlanabilir.
  • İş yükünün podlarına 0,6 cpu çekirdeği, 1536Mi bellek ve 0 GPU ile varsayılan kaynaklar atanır:
resources:
  requests:
    cpu: "0.6"
    memory: "1536Mi"
  limits:
    cpu: "0.6"
    memory: "1536Mi"
    nvidia.com/gpu: null

Not

  • Varsayılan örnek türü, çok az kaynak kullanır. Tüm ML iş yüklerinin gpu kaynağı gibi uygun kaynaklarla çalıştığından emin olmak için özel örnek türleri oluşturmanız kesinlikle önerilir.
  • defaultinstancetype komutu kubectl get instancetypeçalıştırılırken kümede InstanceType özel kaynağı olarak gösterilmez, ancak tüm istemcilerde (UI, CLI, SDK) görünür.
  • defaultinstancetype aynı ada defaultinstancetype sahip özel örnek türü tanımıyla geçersiz kılınabilir (bkz. Özel örnek türleri oluşturma bölümü)

Özel örnek türleri oluşturma

Yeni bir örnek türü oluşturmak için CRD örnek türü için yeni bir özel kaynak oluşturun. Örnek:

kubectl apply -f my_instance_type.yaml

ile:my_instance_type.yaml

apiVersion: amlarc.azureml.com/v1alpha1
kind: InstanceType
metadata:
  name: myinstancetypename
spec:
  nodeSelector:
    mylabel: mylabelvalue
  resources:
    limits:
      cpu: "1"
      nvidia.com/gpu: 1
      memory: "2Gi"
    requests:
      cpu: "700m"
      memory: "1500Mi"

Aşağıdaki adımlar etiketli davranışa sahip bir örnek türü oluşturur:

  • Podlar yalnızca etiketine mylabel: mylabelvaluesahip düğümlerde zamanlanır.
  • Podlara CPU ve 1500Mi bellek kaynak istekleri 700m atanır.
  • Podlara CPU, 2Gi bellek ve 1 NVIDIA GPU kaynak sınırları 1 atanır.

Not

  • NVIDIA GPU kaynakları yalnızca bölümünde tamsayı değerleri olarak belirtilir limits . Daha fazla bilgi için Kubernetes belgelerine bakın.
  • CPU ve bellek kaynakları dize değerleridir.
  • CPU, örneğin 100mmilicore cinsinden veya tam sayılarla belirtilebilir, örneğin "1" ile 1000meşdeğerdir.
  • Bellek tam sayı + sonek olarak belirtilebilir, örneğin 1024Mi 1024 MiB.

Aynı anda birden çok örnek türü oluşturmak da mümkündür:

kubectl apply -f my_instance_type_list.yaml

ile:my_instance_type_list.yaml

apiVersion: amlarc.azureml.com/v1alpha1
kind: InstanceTypeList
items:
  - metadata:
      name: cpusmall
    spec:
      resources:
        requests:
          cpu: "100m"
          memory: "100Mi"
        limits:
          cpu: "1"
          nvidia.com/gpu: 0
          memory: "1Gi"

  - metadata:
      name: defaultinstancetype
    spec:
      resources:
        requests:
          cpu: "1"
          memory: "1Gi" 
        limits:
          cpu: "1"
          nvidia.com/gpu: 0
          memory: "1Gi"

Yukarıdaki örnek iki örnek türü oluşturur: cpusmall ve defaultinstancetype. Bu defaultinstancetype tanım, Kubernetes kümesi AzureML çalışma alanına eklendiğinde oluşturulan tanımı geçersiz kılar defaultinstancetype .

Bir eğitim veya çıkarım iş yükü örnek türü olmadan gönderilirse defaultinstancetype, kullanır. Kubernetes kümesi için varsayılan örnek türünü belirtmek için adlı defaultinstancetypebir örnek türü oluşturun. Otomatik olarak varsayılan olarak tanınır.

Eğitim işini göndermek için örnek türünü seçin

CLI (V2) kullanarak bir eğitim işi için örnek türü seçmek için, adını iş YAML'deki özellikler bölümünün bir parçası resources olarak belirtin. Örnek:

command: python -c "print('Hello world!')"
environment:
  image: library/python:latest
compute: azureml:<compute_target_name>
resources:
  instance_type: <instance_type_name>

Yukarıdaki örnekte değerini Kubernetes işlem hedefinizin adıyla ve <instance_type_name> seçmek istediğiniz örnek türünün adıyla değiştirin<compute_target_name>. Belirtilen bir özellik yoksa instance_type , sistem işi göndermek için kullanır defaultinstancetype .

Modeli dağıtmak için örnek türünü seçin

CLI (V2) kullanarak model dağıtımı için bir örnek türü seçmek için, YAML dağıtımındaki özellik için instance_type adını belirtin. Örnek:

name: blue
app_insights_enabled: true
endpoint_name: <endpoint name>
model: 
  path: ./model/sklearn_mnist_model.pkl
code_configuration:
  code: ./script/
  scoring_script: score.py
instance_type: <instance type name>
environment: 
  conda_file: file:./model/conda.yml
  image: mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04:20210727.v1

Yukarıdaki örnekte değerini seçmek istediğiniz örnek türünün adıyla değiştirin <instance_type_name> . Herhangi bir özellik belirtilmezse instance_type sistem modeli dağıtmak için kullanır defaultinstancetype .

BT operasyonları ekibi ile veri bilimi ekibi arasındaki sorumlulukların ayrılması. ML iş yükü için kendi Kubernetes işlem ve altyapınızı yönetmek için Kubernetes yönetici ayrıcalığı ve uzmanlığı gerekir ve veri bilimi ekibinin kuruluş verimliliği için ML modellere odaklanabilmesi için BT operasyonları ekibi tarafından yapılması en iyisidir.

Farklı ML iş yükü senaryoları için örnek türleri oluşturma ve yönetme. her ML iş yükü CPU/GPU ve bellek gibi farklı miktarlarda işlem kaynağı kullanır. Azure ML, nodeSelector ve kaynak isteği/sınırı özellikleriyle Kubernetes özel kaynak tanımı (CRD) olarak örnek türünü uygular. Örnek türlerinin dikkatle seçilmiş bir listesiyle BT işlemleri belirli düğümlerde ML iş yükünü hedefleyebilir ve işlem kaynağı kullanımını verimli bir şekilde yönetebilir.

Birden çok Azure ML çalışma alanı aynı Kubernetes kümesini paylaşır. Kubernetes kümesini aynı Azure ML çalışma alanına veya farklı Azure ML çalışma alanlarına birden çok kez ekleyebilir ve bir çalışma alanında veya birden çok çalışma alanında birden çok işlem hedefi oluşturabilirsiniz. Birçok müşteri Azure ML çalışma alanı çevresinde veri bilimi projelerini düzenlediğinden, artık birden çok veri bilimi projesi aynı Kubernetes kümesini paylaşabilir. Bu, hem ML altyapı yönetimi ek yüklerini hem de BT maliyet tasarruflarını önemli ölçüde azaltır.

Kubernetes ad alanı kullanılarak takım/proje iş yükü yalıtımı. Kubernetes kümesini Azure ML çalışma alanına eklediğinizde, işlem hedefi için bir Kubernetes ad alanı belirtebilirsiniz ve işlem hedefi tarafından çalıştırılan tüm iş yükleri belirtilen ad alanı altına yerleştirilir.

Sonraki adımlar

Ek kaynaklar

Örnekler

Tüm AzureML örnekleri içinde https://github.com/Azure/azureml-examples.gitbulunabilir.

Herhangi bir AzureML örneğinde işlem hedefi adını yalnızca Kubernetes işlem hedefinize güncelleştirmeniz yeterlidir, ardından işiniz tamam demektir.