v2'ye yükseltme

Azure Machine Learning'in v2 REST API'leri, Azure CLI uzantısı ve Python SDK'sı, üretim makine öğrenmesi yaşam döngüsünü hızlandırmak için tutarlılık ve bir dizi yeni özellik sunar. Bu makalede v1, v2 veya her ikisine de karar vermenize yardımcı olacak önerilerle birlikte v2'ye yükseltmeye genel bir bakış sağlanır.

Önkoşullar

  • Azure Machine Learning ve v1 Python SDK'sı hakkında genel bilgi.
  • v2'nin ne olduğunu anlıyor musunuz ?

v2 kullanmalıyım mı?

Yeni bir makine öğrenmesi projesi veya iş akışı başlatılıyorsa v2 kullanmalısınız. v2'de sunulan yeni özellikleri kullanmak istiyorsanız v2 kullanmalısınız. Özellikler şunlardır:

  • Yönetilen Çıkarım
  • İşlem hatlarında yeniden kullanılabilir bileşenler
  • İşlem hatlarının zamanlaması iyileştirildi
  • Sorumlu yapay zeka panosu
  • Varlıkların kayıt defteri

Yeni bir v2 projesi, çalışma alanları ve işlem gibi mevcut v1 kaynaklarını ve v1 kullanılarak oluşturulan modeller ve ortamlar gibi mevcut varlıkları yeniden kullanabilir.

v2'deki bazı özellik boşlukları şunlardır:

  • İşlerde Spark desteği: Bu özellik şu anda v2'de önizleme aşamasındadır.
  • İşleri (v1'deki işlem hatları) uç nokta olarak yayımlama. Ancak işlem hatlarını yayımlamadan zamanlayabilirsiniz.
  • SQL/veritabanı veri depoları desteği.
  • v2 ile tasarımcıda klasik önceden oluşturulmuş bileşenleri kullanabilme.

Daha sonra v2'de ihtiyacınız olan özelliklerin kuruluşunuzun genel kullanıma sunulması gibi gereksinimlerini karşıladığından emin olmanız gerekir.

Önemli

Azure Machine Learning'deki yeni özellikler yalnızca v2'de kullanıma sunulacaktır.

Hangi v2 API'lerini kullanmalıyım?

REST API, CLI ve Python SDK aracılığıyla v2 arabirimlerinde kullanılabilir. Kullanmanız gereken arabirim senaryonuza ve tercihlerinize bağlıdır.

API Notlar
REST En az bağımlılık ve ek yük. Azure Machine Learning'de platform olarak, SDK sağlanmadan veya kişisel tercihe göre doğrudan programlama dillerinde uygulama oluşturmak için kullanın.
CLI CI/CD ile veya kişisel tercihe göre otomasyon için önerilir. YAML dosyalarıyla hızlı yinelemeye ve Azure Machine Learning ile ML model kodu arasında basit ayrıma olanak tanır.
Python SDK'sı Karmaşık betik oluşturma (örneğin, program aracılığıyla büyük işlem hattı işleri oluşturma) veya kişisel tercihe göre önerilir. YAML dosyalarıyla hızlı yinelemeye veya yalnızca Python'da geliştirmeye olanak tanır.

Python SDK v1 ile v2 arasında eşleme

SDK v1 ile v2 karşılaştırma kodu eşlemesi için aşağıdaki makalelerin her birine bakın.

Kaynaklar ve varlıklar Makale
Çalışma alanı SDK v1 ve SDK v2'de çalışma alanı yönetimi
Veri Deposu SDK v1 ve SDK v2'de veri deposu yönetimi
Veri SDK v1 ve v2'deki veri varlıkları
İşlem SDK v1 ve SDK v2'de işlem yönetimi
Eğitim Betik çalıştırma
Eğitim Yerel çalıştırmalar
Eğitim Hiper parametre ayarlama
Eğitim Paralel Çalıştırma
Eğitim Pipelines
Eğitim AutoML
Modeller SDK v1 ve SDK v2'de model yönetimi
Dağıtım Dağıtım uç noktalarını SDK v2'ye yükseltme

v1 ve v2'deki kaynaklar ve varlıklar

Bu bölümde Azure Machine Learning'deki belirli kaynaklara ve varlıklara genel bir bakış sağlanır. v2'deki kullanımlarıyla ilgili ayrıntılar için her varlığın kavram makalesine bakın.

Çalışma alanı

Çalışma alanlarının v2 ile yükseltilmesi gerekmez. v1 veya v2 kullandığınızdan bağımsız olarak aynı çalışma alanını kullanabilirsiniz.

Otomasyon kullanarak çalışma alanları oluşturuyorsanız, çalışma alanı oluşturma kodunu v2'ye yükseltmeyi göz önünde bulundurun. Azure kaynakları genellikle Azure Resource Manager (ve Bicep) veya benzer kaynak sağlama araçları aracılığıyla yönetilir. Alternatif olarak, CLI (v2) ve YAML dosyalarını kullanabilirsiniz.

SDK v1 ve v2 kodunun karşılaştırması için bkz . SDK v1 ve SDK v2'de çalışma alanı yönetimi.

Önemli

Çalışma alanınız özel bir uç nokta kullanıyorsa otomatik olarak v1_legacy_mode bayrağı etkin olur ve v2 API'lerinin kullanımını engeller. Ayrıntılar için bkz . v2 ile ağ yalıtımını yapılandırma.

Bağlan ion (v1'de çalışma alanı bağlantısı)

v1'den gelen çalışma alanı bağlantıları çalışma alanında kalıcı hale gelir ve v2 ile tam olarak kullanılabilir.

SDK v1 ve v2 kodunun karşılaştırması için bkz . SDK v1 ve SDK v2'de çalışma alanı yönetimi.

Veri Deposu

v1 ile oluşturulan nesne depolama veri deposu türleri v2'de tam olarak kullanılabilir. Veritabanı veri depoları desteklenmez; nesne depolamaya dışarı aktarma (genellikle Azure Blob), önerilen geçiş yoludur.

SDK v1 ve v2 kodunun karşılaştırması için bkz . SDK v1 ve SDK v2'de veri deposu yönetimi.

Veriler (v1'deki veri kümeleri)

Veri kümeleri veri varlıkları olarak yeniden adlandırılır. Geriye dönük uyumluluk sağlanır, yani V2'de V1 Veri Kümelerini kullanabilirsiniz. V2 işinde V1 Veri Kümesi kullandığınızda bunların aşağıdaki gibi otomatik olarak V2 türlerine eşlendiğine dikkat edin:

  • V1 FileDataset = V2 Klasörü (uri_folder)
  • V1 TabularDataset = V2 Tablosu (mltable)

İletme uyumluluğu sağlanmadığından, V1'de V2 veri varlıklarını kullanamazsınız.

Bu makalede v2'deki verileri işleme - bir işteki verileri okuma ve yazma hakkında daha fazla bilgi verilmektedir

SDK v1 ve v2 kodunun karşılaştırması için bkz . SDK v1 ve v2'deki veri varlıkları.

İşlem

türü AmlComputeComputeInstance ve tam olarak v2'de kullanılabilir.

SDK v1 ve v2 kodunun karşılaştırması için bkz . SDK v1 ve SDK v2'de işlem yönetimi.

İşler (denemeler, çalıştırmalar, v1'deki işlem hatları)

v2'de "denemeler", "çalıştırmalar" ve "işlem hatları" işlerle birleştirilmiştir. bir işin türü vardır. İşlerin çoğu gibi python main.pybir komut çalıştıran işlerdircommand. bir işte çalışan her programlama dilinden bağımsızdır, böylece betikleri çalıştırabilir bash , yorumlayıcıları çağırabilir python , bir dizi curl komut çalıştırabilir veya başka herhangi bir şey yapabilirsiniz. Başka bir yaygın iş türü, pipelinegiriş/çıkış ilişkilerine sahip olabilecek alt işleri tanımlayan ve yönlendirilmiş bir döngüsel graf (DAG) oluşturan türüdür.

SDK v1 ve v2 kodunun karşılaştırması için bkz.

Tasarımcı

Tasarımcıyı kullanarak kendi v2 özel bileşenlerinizi ve kayıt defterinden yeni önceden oluşturulmuş bileşenleri kullanarak işlem hatları oluşturabilirsiniz. Bu durumda işlem hattınızda v1 veya v2 veri varlıklarını kullanabilirsiniz.

Klasik önceden oluşturulmuş bileşenleri ve v1 veri kümesi türlerini (tablosal, dosya) kullanarak işlem hatları oluşturmak için tasarımcıyı kullanmaya devam edebilirsiniz. Mevcut tasarımcı klasik önceden oluşturulmuş bileşenlerini v2 veri varlığıyla kullanamazsınız.

Hem mevcut tasarımcı klasik önceden oluşturulmuş bileşenlerini hem de v2 özel bileşenlerini kullanarak işlem hattı oluşturamazsınız.

Model

v1'den oluşturulan modeller v2'de kullanılabilir.

SDK v1 ve v2 kodunun karşılaştırması için bkz . SDK v1 ve SDK v2'de model yönetimi

Uç nokta ve dağıtım (v1'de uç nokta ve web hizmeti)

SDK/CLI v1 ile ACI veya AKS'de modelleri web hizmetleri olarak dağıtabilirsiniz. Mevcut v1 model dağıtımlarınız ve web hizmetleriniz olduğu gibi çalışmaya devam eder, ancak ACI veya AKS'de modelleri web hizmetleri olarak dağıtmak için SDK/CLI v1 kullanmak artık eski olarak kabul edilir. Yeni model dağıtımları için v2'ye yükseltmenizi öneririz. v2'de yönetilen uç noktalar veya Kubernetes uç noktaları sunuyoruz. Aşağıdaki tablo önerimize yol gösterir:

v2'de uç nokta türü Yükseltme Notlar
Yerel ACI Yerel olarak model dağıtımının hızlı testi; üretim için değil.
Yönetilen çevrimiçi uç nokta ACI, AKS Neredeyse gerçek zamanlı yanıtlara ve üretim için büyük ölçeklendirmeye sahip kurumsal düzeyde yönetilen model dağıtım altyapısı.
Yönetilen toplu iş uç noktası Toplu puanlama için işlem hattında ParallelRunStep Üretim için yüksek düzeyde paralel toplu işlemeye sahip kurumsal düzeyde yönetilen model dağıtım altyapısı.
Azure Kubernetes Service (AKS) ACI, AKS Model dağıtımı için kendi AKS kümelerinizi yönetin ve BT ek yüküne göre esneklik ve ayrıntılı denetim sağlayın.
Azure Arc Kubernetes Yok Diğer bulutlarda veya şirket içinde kendi Kubernetes kümelerinizi yönetin ve BT ek yüküne göre esneklik ve ayrıntılı denetim sağlayın.

SDK v1 ve v2 kodunun karşılaştırması için bkz . Dağıtım uç noktalarını SDK v2'ye yükseltme. Mevcut ACI web hizmetlerinizden yönetilen çevrimiçi uç noktalara geçiş adımları için yükseltme kılavuzu makalemize ve blogumuza bakın.

Ortam

v1'den oluşturulan ortamlar v2'de kullanılabilir. v2'de ortamlar, yerel Docker bağlamından oluşturma gibi yeni özelliklere sahiptir.

Gizli dizileri yönetme

Key Vault gizli dizilerinin yönetimi V2'de V1'e kıyasla önemli ölçüde farklılık gösterir. V1 set_secret ve get_secret SDK yöntemleri V2'de kullanılamaz. Bunun yerine, Key Vault istemci kitaplıklarını kullanarak doğrudan erişim kullanılmalıdır.

Key Vault hakkında ayrıntılı bilgi için bkz . Azure Machine Learning eğitim işlerinde kimlik doğrulaması kimlik bilgileri gizli dizilerini kullanma.

Makine öğrenmesi yaşam döngüsü genelindeki senaryolar

Azure Machine Learning'in kullanıldığı makine öğrenmesi yaşam döngüsünde yaygın olarak kullanılan birkaç senaryo vardır. Birkaç tanesine göz atacak ve v2'ye yükseltme için genel öneriler sağlayacağız.

Azure kurulumu

Azure, kaynak oluşturmak için Azure Resource Manager şablonlarını (kullanım kolaylığı için genellikle Bicep aracılığıyla) önerir. Aynı yaklaşım, Azure Machine Learning kaynakları oluşturmak için de iyi bir yaklaşımdır.

Ekibiniz yalnızca Azure Machine Learning kullanıyorsa, bunun yerine çalışma alanını ve diğer kaynakları YAML dosyaları ve CLI aracılığıyla sağlamayı düşünebilirsiniz.

Prototip oluşturma modelleri

Modellerin prototipi için v2'nin kullanılması önerilir. Model eğitim kodunuz Python veya başka bir programlama diliyken Azure Machine Learning'in etkileşimli bir kullanımı için CLI kullanmayı düşünebilirsiniz. Alternatif olarak, Python ile yalnızca Azure Machine Learning SDK'sını veya Azure Machine Learning Python SDK'sı ve YAML dosyalarıyla karma bir yaklaşımı kullanarak tam yığın yaklaşımını benimseyebilirsiniz.

Üretim modeli eğitimi

Üretim modeli eğitimi için v2'nin kullanılması önerilir. İşler, terminolojiyi birleştirir ve türler (örneğin, command öğesine) arasında daha kolay geçiş ve işleri YAML dosyalarına seri hale getirmek sweepiçin GitOps kullanımı kolay bir işlem sağlayan bir tutarlılık kümesi sağlar.

v2 ile makine öğrenmesi kodunuzu kontrol düzlemi kodundan ayırmanız gerekir. Bu ayrım daha kolay yineleme sağlar ve yerel ile bulut arasında daha kolay geçiş sağlar. ayrıca izleme ve model günlüğü için MLflow kullanmanızı öneririz. Ayrıntılar için MLflow kavramı makalesine bakın.

Üretim modeli dağıtımı

Üretim modeli dağıtımı için v2'nin kullanılması önerilir. Yönetilen uç noktalar BT ek yükünü soyutlar ve hem çevrimiçi (neredeyse gerçek zamanlı) hem de toplu iş (yüksek düzeyde paralel) senaryoları için modelleri dağıtmak ve puanlamak için performanslı bir çözüm sağlar.

Kubernetes dağıtımları AKS veya Azure Arc aracılığıyla v2'de desteklenir ve kuruluşunuz tarafından yönetilen Azure bulutu ve şirket içi dağıtımları etkinleştirir.

Makine öğrenmesi işlemleri (MLOps)

MLOps iş akışı genellikle dış bir araç aracılığıyla CI/CD içerir. Genellikle CLI, CI/CD'de kullanılır, ancak alternatif olarak Python'ı çağırabilir veya doğrudan REST kullanabilirsiniz.

v2 ile MLOps için çözüm hızlandırıcısı geliştirme aşamasındadır https://github.com/Azure/mlops-v2 ve makine öğrenmesi yaşam döngüsünün kurulumu ve otomasyonu için referans olarak kullanılabilir veya benimsenebilir.

v2 ile GitOps ile ilgili bir not

v2 ile önemli bir paradigma, ile kaynak denetimi gitiçin makine öğrenmesi varlıklarını YAML dosyaları olarak seri hale getirerek v1 ile mümkün olandan daha iyi GitOps yaklaşımları sağlar. Örneğin, yalnızca CI/CD işlem hatlarında kullanılan bir hizmet sorumlusu tarafından bazı veya tüm varlıkların oluşturulabileceği/güncelleştirilebileceği/silinebileceği ilkeyi zorunlu kılabilir ve değişikliklerin gerekli gözden geçirenlerle çekme istekleri gibi idare edilen bir işlemden geçtiğinden emin olabilirsiniz. Kaynak denetimindeki dosyalar YAML olduğundan, zaman içinde değişiklikleri kolayca fark edebilir ve izleyebilirsiniz. V2'ye yükseltildikçe siz ve ekibiniz bu paradigmaya geçmeyi düşünebilirsiniz.

aracılığıyla az ml <entity> show --output yamlCLI ile herhangi bir varlığın YAML gösterimini alabilirsiniz. Bu çıkışın yoksayılabilir veya silinebilen sistem tarafından oluşturulan özelliklere sahip olacağını unutmayın.

Mevcut v1 kodunu v2'ye yükseltmeli miyim?

Mevcut v1 varlıklarınızı v2 iş akışlarınızda yeniden kullanabilirsiniz. Örneğin v1'de oluşturulan bir model, v2'de Yönetilen Çıkarım gerçekleştirmek için kullanılabilir.

İsteğe bağlı olarak, mevcut v1 kodunuzun belirli bölümlerini v2'ye yükseltmek istiyorsanız lütfen bu belgede sağlanan karşılaştırma bağlantılarına bakın.

v1 ve v2'i birlikte kullanabilir miyim?

v1 ve v2 bir çalışma alanında birlikte bulunabilir. V2 iş akışlarınızda mevcut varlıklarınızı yeniden kullanabilirsiniz. Örneğin v1'de oluşturulan bir model, v2'de Yönetilen Çıkarım gerçekleştirmek için kullanılabilir. Çalışma alanı, işlem ve veri deposu gibi kaynaklar özel durumlar dışında v1 ve v2 arasında çalışır. Bir kullanıcı çalışma alanının açıklamasını değiştirmek için v1 Python SDK'sını çağırabilir, ardından v2 CLI uzantısını kullanarak yeniden değiştirebilir. İşler (v1'deki denemeler/çalıştırmalar/işlem hatları) v1 veya v2 Python SDK'sından aynı çalışma alanına gönderilebilir. Çalışma alanı hem v1 hem de v2 model dağıtım uç noktalarına sahip olabilir.

v1 ve v2 kodunu birlikte kullanma

v1 ve v2 SDK'larını aynı kodda birlikte kullanmanızı önermeyiz. Farklı Azure ad alanları kullandıklarından, aynı kodda v1 ve v2'yi kullanmak teknik olarak mümkündür. Ancak, bu ad alanlarında aynı ada sahip birçok sınıf vardır (Çalışma Alanı, Model gibi) karışıklığa neden olabilir ve kod okunabilirliği ile hata ayıklanabilirliğini zorlaştırabilir.

Önemli

Çalışma alanınız özel bir uç nokta kullanıyorsa otomatik olarak v1_legacy_mode bayrağı etkin olur ve v2 API'lerinin kullanımını engeller. Ayrıntılar için bkz . v2 ile ağ yalıtımını yapılandırma.

Sonraki adımlar