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.
Önemli
"v1" ve "v2" ifadeleri, Azure Machine Learning hizmetinin kendisiyle değil, istemciler tarafından hizmetle etkileşimde bulunmak için kullanılan API, SDK ve CLI uzantısına başvurur. Hizmet veya mevcut çalışma alanlarınız için yalnızca istemci kodunuz için yükseltme işlemi yoktur. Azure Machine Learning çalışma alanlarınız hem v1 hem de v2 API'leriyle kullanılabilir. Ancak yeni özellikler yalnızca v2 API'leri aracılığıyla kullanılabilir.
v2 hakkında daha fazla bilgi için bkz . v2 nedir. v1 ve v2 SDK'ları arasındaki farkların örnek kod içeren makalelere bağlantılar içeren bir eşlemesi için bkz . Python SDK v1'i v2 ile eşleme.
Ö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 - ş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ğlantı (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 edersiniz:
- 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ü AmlCompute
ComputeInstance
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şlerde birleştirilir. bir işin türü vardır. İşlerin çoğu gibi python main.py
bir 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ü, pipeline
giriş/çı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. Bir eğitim betiğinden gizli dizilere erişirken, işlem yönetilen kimliğini veya kimliğinizi kullanabilirsiniz.
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 sweep
iç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 git
iç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. Siz ve ekibiniz, v2'ye yükseltildikçe bu paradigmaya geçmeyi düşünebilirsiniz.
aracılığıyla az ml <entity> show --output yaml
CLI ile herhangi bir varlığın YAML gösterimini alabilirsiniz. Bu çıkış, yoksayılabilir veya silinebilen sistem tarafından oluşturulan özelliklere sahiptir.
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, 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.