Gerçek zamanlı çıkarım için çevrimiçi uç nokta dağıtımı
ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)
Bu makalede, Azure Machine Learning'de gerçek zamanlı çıkarım için çevrimiçi uç noktalar açıklanmaktadır. Çıkarım, çıkış oluşturmak için makine öğrenmesi modeline yeni giriş verileri uygulama işlemidir. Azure Machine Learning, çevrimiçi uç noktalara dağıtılan modelleri kullanarak veriler üzerinde gerçek zamanlı çıkarım gerçekleştirmenizi sağlar. Bu çıkışlar genellikle tahmin olarak adlandırılır ancak çıkarım özelliğini kullanarak sınıflandırma ve kümeleme gibi diğer makine öğrenmesi görevleri için çıkışlar oluşturabilirsiniz.
Çevrimiçi uç noktalar
Çevrimiçi uç noktalar, http protokolü altında tahmin döndürebilen bir web sunucusuna modeller dağıtır. Çevrimiçi uç noktalar, zaman uyumlu, düşük gecikme süreli isteklerde gerçek zamanlı çıkarım için modelleri kullanıma hazır hale alabilir ve en iyi şekilde şu durumlarda kullanılır:
- Düşük gecikme süresi gereksinimleriniz vardır.
- Modeliniz isteği nispeten kısa bir süre içinde yanıtlayabilir.
- Modelinizin girişleri isteğin HTTP yüküne uyar.
- İstek sayısının ölçeğini artırmanız gerekir.
Uç nokta tanımlamak için şunları belirtmeniz gerekir:
- Uç nokta adı. Bu ad Azure bölgesinde benzersiz olmalıdır. Diğer adlandırma gereksinimleri için bkz . Azure Machine Learning çevrimiçi uç noktaları ve toplu iş uç noktaları.
- Kimlik doğrulama modu. Anahtar tabanlı kimlik doğrulama modu, Azure Machine Learning belirteç tabanlı kimlik doğrulama modu veya uç nokta için Microsoft Entra belirteci tabanlı kimlik doğrulaması arasından seçim yapabilirsiniz. Kimlik doğrulaması hakkında daha fazla bilgi için bkz . Çevrimiçi uç noktalar için istemcilerin kimliğini doğrulama.
Yönetilen çevrimiçi uç noktalar
Yönetilen çevrimiçi uç noktalar, makine öğrenmesi modellerinizi kullanışlı ve anahtar teslimi bir şekilde dağıtır ve Azure Machine Learning çevrimiçi uç noktalarını kullanmanın önerilen yoludur. Yönetilen çevrimiçi uç noktalar Azure'da ölçeklenebilir ve tam olarak yönetilen bir şekilde güçlü CPU ve GPU makineleriyle çalışır.
Temel altyapıyı ayarlama ve yönetme ek yükünden sizi kurtarmak için bu uç noktalar modellerinizi sunma, ölçeklendirme, güvenli hale getirme ve izleme ile de ilgilenir. Yönetilen çevrimiçi uç noktaları tanımlamayı öğrenmek için bkz . Uç noktayı tanımlama.
Yönetilen çevrimiçi uç noktalar ile Azure Container Instances veya Azure Kubernetes Service (AKS) v1 karşılaştırması
Yönetilen çevrimiçi uç noktalar, Azure Machine Learning'de çevrimiçi uç noktaları kullanmanın önerilen yoludur. Aşağıdaki tabloda Azure Container Instances ve Azure Kubernetes Service (AKS) v1 çözümlerine kıyasla yönetilen çevrimiçi uç noktaların temel öznitelikleri vurgulanmaktadır.
Özellikler | Yönetilen çevrimiçi uç noktalar (v2) | Kapsayıcı Örnekleri veya AKS (v1) |
---|---|---|
Ağ güvenliği/yalıtımı | Hızlı geçiş ile kolay gelen/giden denetimi | Sanal ağ desteklenmiyor veya karmaşık el ile yapılandırma gerektiriyor |
Yönetilen hizmet | • Tam olarak yönetilen işlem sağlama/ölçeklendirme • Veri sızdırma önleme için ağ yapılandırması • Konak işletim sistemi yükseltmesi, yerinde güncelleştirmelerin denetimli dağıtımı |
• Ölçeklendirme sınırlıdır • Kullanıcının ağ yapılandırmasını veya yükseltmeyi yönetmesi gerekir |
Uç nokta/dağıtım kavramı | Uç nokta ile dağıtım arasındaki ayrım, modellerin güvenli bir şekilde piyasaya sürülmesi gibi karmaşık senaryolara olanak tanır | Uç nokta kavramı yok |
Tanılama ve İzleme | • Docker ve Visual Studio Code ile yerel uç nokta hata ayıklaması mümkündür • Dağıtımlar arasında karşılaştırmak için grafik/sorgu ile gelişmiş ölçümler ve günlük analizi • Dağıtım düzeyine maliyet dökümü |
Kolay yerel hata ayıklama yok |
Ölçeklenebilirlik | Elastik ve otomatik ölçeklendirme (varsayılan küme boyutuna bağlı değildir) | • Kapsayıcı Örnekleri ölçeklenebilir değildir • AKS v1 yalnızca küme içi ölçeği destekler ve ölçeklenebilirlik yapılandırması gerektirir |
Kurumsal kullanıma hazır olma | Özel bağlantı, müşteri tarafından yönetilen anahtarlar, Microsoft Entra Id, kota yönetimi, faturalama tümleştirmesi, Hizmet Düzeyi Sözleşmesi (SLA) | Desteklenmez |
Gelişmiş ML özellikleri | • Model veri toplama • Model izleme • Şampiyon-meydan okuma modeli, güvenli dağıtım, trafik yansıtma • Sorumlu yapay zeka genişletilebilirliği |
Desteklenmez |
Yönetilen çevrimiçi uç noktalar ile Kubernetes çevrimiçi uç noktaları karşılaştırması
Modellerinizi dağıtmak ve uç noktalara hizmet vermek için Kubernetes kullanmayı tercih ediyorsanız ve altyapı gereksinimlerini yönetme konusunda rahatsanız, Kubernetes çevrimiçi uç noktalarını kullanabilirsiniz. Bu uç noktalar, tam olarak yapılandırılmış ve yönetilen Kubernetes kümenizde her yerde modelleri dağıtmanıza ve CPU'lar veya GPU'lar ile çevrimiçi uç noktalar sunmanıza olanak tanır.
Yönetilen çevrimiçi uç noktalar, dağıtım sürecinizi kolaylaştırmaya yardımcı olabilir ve Kubernetes çevrimiçi uç noktalarına göre aşağıdaki avantajları sağlayabilir:
Otomatik altyapı yönetimi
- İşlemi sağlar ve modeli barındırıyor. Yalnızca sanal makine (VM) türünü ve ölçek ayarlarını belirtirsiniz.
- Temel alınan konak işletim sistemi görüntüsünü güncelleştirir ve yamaları.
- Sistem hatası olduğunda düğüm kurtarma gerçekleştirir.
İzleme ve günlükler
- Azure İzleyici ile yerel tümleştirmeyi kullanarak model kullanılabilirliğini, performansını ve SLA'yı izleme olanağı.
- Günlükleri ve Log Analytics ile yerel tümleştirmeyi kullanarak dağıtımlarda hata ayıklama kolaylığı.
Maliyet analizi görünümü, uç nokta ve dağıtım düzeyinde maliyetleri izlemenizi sağlar.
Not
Yönetilen çevrimiçi uç noktalar, Azure Machine Learning hesaplamayı temel alır. Yönetilen bir çevrimiçi uç nokta kullandığınızda işlem ve ağ ücretleri için ödeme alırsınız. Ek ücret alınmaz. Fiyatlandırma hakkında daha fazla bilgi için bkz . Azure fiyatlandırma hesaplayıcısı.
Yönetilen çevrimiçi uç noktadan giden trafiğin güvenliğini sağlamak için bir Azure Machine Learning sanal ağı kullanıyorsanız, yönetilen sanal ağın kullandığı Azure özel bağlantısı ve tam etki alanı adı (FQDN) giden kuralları için ücretlendirilirsiniz. Daha fazla bilgi için bkz . Yönetilen sanal ağ için fiyatlandırma.
Aşağıdaki tabloda, yönetilen çevrimiçi uç noktalar ile Kubernetes çevrimiçi uç noktaları arasındaki temel farklar vurgulanır.
Yönetilen çevrimiçi uç noktalar | Kubernetes çevrimiçi uç noktaları (AKS v2) | |
---|---|---|
Önerilen kullanıcılar | Yönetilen bir model dağıtımı ve gelişmiş MLOps deneyimi isteyen kullanıcılar | Kubernetes'i tercih eden ve altyapı gereksinimlerini kendi yönetebilen kullanıcılar |
Düğüm sağlama | Yönetilen işlem sağlama, güncelleştirme, kaldırma | Kullanıcı sorumluluğu |
Düğüm bakımı | Yönetilen konak işletim sistemi görüntü güncelleştirmeleri ve güvenlik sağlamlaştırma | Kullanıcı sorumluluğu |
Küme boyutlandırma (ölçeklendirme) | Ek düğüm sağlamayı destekleyen yönetilen el ile ve otomatik ölçeklendirme | Sabit küme sınırları içindeki çoğaltma sayısını ölçeklendirmeyi destekleyen el ile ve otomatik ölçeklendirme |
İşlem türü | Hizmet tarafından yönetilir | Müşteri tarafından yönetilen Kubernetes kümesi |
Yönetilen kimlik | Destekleniyor | Desteklenir |
Sanal ağ | yönetilen ağ izolasyonu aracılığıyla desteklenir | Kullanıcı sorumluluğu |
kullanıma açık izleme ve günlüğe kaydetme | Uç noktalar ve dağıtımlar için önemli ölçümler ve günlük tabloları dahil olmak üzere Azure İzleyici ve Log Analytics destekli | Kullanıcı sorumluluğu |
Application Insights ile günlüğe kaydetme (eski) | Desteklenir | Desteklenir |
Maliyet görünümü | Uç nokta/dağıtım düzeyine ayrıntılı | Küme düzeyi |
Uygulanan maliyetler | Dağıtıma atanan sanal makineler (VM'ler) | Kümeye atanan VM'ler |
Yansıtılmış trafik | Destekleniyor | Desteklenmeyen |
Kod içermeyen dağıtım | MLflow ve Triton modellerini destekler | MLflow ve Triton modellerini destekler |
Çevrimiçi dağıtımlar
Dağıtım, çıkarımda bulunan modeli barındırmak için gereken bir dizi kaynak ve işlemdir. Tek bir uç nokta, farklı yapılandırmalara sahip birden çok dağıtım içerebilir. Bu kurulum, uç nokta tarafından sunulan arabirimi dağıtımda mevcut uygulama ayrıntılarından ayırmaya yardımcı olur. Çevrimiçi uç nokta, istekleri uç noktadaki belirli dağıtımlara yönlendirebilen bir yönlendirme mekanizmasına sahiptir.
Aşağıdaki diyagramda mavi ve yeşil olmak üzere iki dağıtımı olan çevrimiçi bir uç nokta gösterilmektedir. Mavi dağıtım, CPU SKU'su olan VM'leri kullanır ve modelin 1. sürümünü çalıştırır. Yeşil dağıtım, GPU SKU'su olan VM'leri kullanır ve modelin 2. sürümünü çalıştırır. Uç nokta gelen trafiğin %90'ını mavi dağıtıma yönlendirecek şekilde yapılandırılırken, yeşil dağıtım kalan %10'unu alır.
Bir modeli dağıtmak için sahip olmanız gerekenler:
Model dosyaları veya çalışma alanınızda zaten kayıtlı olan bir modelin adı ve sürümü.
Belirli bir giriş isteğinde modeli yürüten puanlama betik kodu.
Puanlama betiği dağıtılan bir web hizmetine gönderilen verileri alır ve modele geçirir. Betik daha sonra modeli yürütür ve istemciye yanıtını döndürür. Puanlama betiği modelinize özgüdür ve modelin giriş olarak beklediği ve çıkış olarak döndürdüğü verileri anlaması gerekir.
Modelinizi çalıştırmak için bir ortam. Ortam, Conda bağımlılıklarına sahip bir Docker görüntüsü veya Dockerfile olabilir.
Örnek türünü ve ölçeklendirme kapasitesini belirtme ayarları.
Azure CLI, Python SDK, Azure Machine Learning stüdyosu veya ARM şablonu kullanarak çevrimiçi uç noktaları dağıtmayı öğrenmek için bkz. Çevrimiçi uç nokta kullanarak makine öğrenmesi modeli dağıtma.
Dağıtımın temel öznitelikleri
Aşağıdaki tabloda bir dağıtımın temel öznitelikleri açıklanmaktadır:
Öznitelik | Tanım |
---|---|
Ad | Dağıtımın adı. |
Uç nokta adı | Altında dağıtımın oluşturulacağı uç noktanın adı. |
Model | Dağıtım için kullanılacak model. Bu değer, çalışma alanında var olan bir sürüme sahip modelin başvurusu veya satır içi model belirtimi olabilir. Modelinizin yolunu izleme ve belirtme hakkında daha fazla bilgi için bkz . Çevrimiçi uç noktada kullanmak üzere dağıtılacak modeli belirtme. |
Kod yolu | Modeli puanlama için tüm Python kaynak kodunu içeren yerel geliştirme ortamında dizinin yolu. İç içe dizinleri ve paketleri kullanabilirsiniz. |
Puanlama betiği | Kaynak kod dizinindeki puanlama dosyasının göreli yolu. Bu Python kodunun bir init() işlevi ve bir run() işlevi olmalıdır. init() İşlev, model oluşturulduktan veya güncelleştirildikten sonra çağrılır, örneğin modeli bellekte önbelleğe almak için. İşlev run() , gerçek puanlama ve tahmin gerçekleştirmek için uç noktanın her çağrısında çağrılır. |
Ortam | Modeli ve kodu barındıracak ortam. Bu değer, çalışma alanında var olan bir sürüme sahip ortama başvuru veya satır içi ortam belirtimi olabilir. |
Örnek türü | Dağıtım için kullanılacak VM boyutu. Desteklenen boyutların listesi için bkz . Yönetilen çevrimiçi uç noktalar SKU listesi. |
Örnek sayısı | Dağıtım için kullanılacak örnek sayısı. Değeri beklediğiniz iş yüküne dayandırın. Yüksek kullanılabilirlik için değerini en az 3 olarak ayarlayın. Sistem, yükseltmeleri gerçekleştirmek için fazladan %20 ayırır. Daha fazla bilgi için bkz . Dağıtımlar için VM kota ayırma. |
Çevrimiçi dağıtımlar için notlar
Dağıtım, Ortam'da tanımlanan modele ve kapsayıcı görüntüsüne, örneğin dağıtım örneklerinde güvenlik düzeltme ekleri veya diğer kurtarma işlemleri yapıldığında başvurabilir. Azure Container Registry'de dağıtım için kayıtlı bir model veya kapsayıcı görüntüsü kullanıyorsanız ve daha sonra modeli veya kapsayıcı görüntüsünü kaldırırsanız, yeniden görüntüleme gerçekleştiğinde bu varlıklara dayanan dağıtımlar başarısız olabilir. Modeli veya kapsayıcı görüntüsünü kaldırırsanız, bağımlı dağıtımları alternatif bir model veya kapsayıcı görüntüsüyle yeniden oluşturduğunuzdan veya güncelleştirdiğinizden emin olun.
Ortamın başvurduğu kapsayıcı kayıt defteri, yalnızca uç nokta kimliğinin Microsoft Entra kimlik doğrulaması ve Azure rol tabanlı erişim denetimi (RBAC) aracılığıyla erişim iznine sahip olması durumunda özel olabilir. Aynı nedenle, Container Registry dışındaki özel Docker kayıt defterleri desteklenmez.
Microsoft, bilinen güvenlik açıkları için temel görüntülere düzenli olarak düzeltme eki uygular. Yama yapılan görüntüyü kullanmak için uç noktanızı yeniden dağıtmanız gerekir. Kendi görüntünüzü sağlarsanız, görüntüyü güncelleştirmek sizin sorumluluğunuzdadır. Daha fazla bilgi için bkz . Görüntü düzeltme eki uygulama.
Dağıtım için VM kota ayırma
Yönetilen çevrimiçi uç noktalar için Azure Machine Learning, bazı VM SKU'larında yükseltme gerçekleştirmek için işlem kaynaklarınızın %20'sini ayırır. Bir dağıtımda bu VM SKU'ları için belirli sayıda örnek istiyorsanız, hata almamak için ceil(1.2 * number of instances requested for deployment) * number of cores for the VM SKU
kullanılabilir bir kotanız olmalıdır. Örneğin, bir dağıtımda bir Standard_DS3_v2 VM'sinin (dört çekirdekle birlikte gelir) 10 örneğini isterseniz, 48 çekirdek (12 instances * 4 cores
) için kotanız olmalıdır. Bu ek kota, işletim sistemi yükseltmeleri ve VM kurtarma gibi sistem tarafından başlatılan işlemler için ayrılmıştır ve bu tür işlemler çalıştırılmadığı sürece maliyete neden olmaz.
Ek kota rezervasyonundan muaf tutulan belirli VM SKU'ları vardır. Listenin tamamını görüntülemek için bkz . Yönetilen çevrimiçi uç noktalar SKU listesi. Kullanım ve istek kotası artışlarınızı görüntülemek için bkz . Azure portalında kullanımınızı ve kotalarınızı görüntüleme. Yönetilen çevrimiçi uç nokta çalıştırma maliyetlerinizi görüntülemek için bkz . Yönetilen çevrimiçi uç noktanın maliyetlerini görüntüleme.
Paylaşılan kota havuzu
Azure Machine Learning, çeşitli bölgelerdeki kullanıcıların kullanılabilirliğe bağlı olarak sınırlı bir süre için test gerçekleştirmek için kotaya erişebileceği paylaşılan bir kota havuzu sağlar. Model kataloğundan yönetilen bir çevrimiçi uç noktaya Llama-2, Phi, Nemotron, Mistral, Dolly ve Deci-DeciLM modellerini dağıtmak için stüdyoyu kullandığınızda Azure Machine Learning, test yapabilmeniz için paylaşılan kota havuzuna kısa bir süre için erişmenizi sağlar. Paylaşılan kota havuzu hakkında daha fazla bilgi için bkz . Azure Machine Learning paylaşılan kotası.
Paylaşılan kotayı kullanarak model kataloğundan Llama-2, Phi, Nemotron, Mistral, Dolly ve Deci-DeciLM modellerini dağıtmak için Kurumsal Anlaşma aboneliğiniz olmalıdır. Çevrimiçi uç nokta dağıtımı için paylaşılan kotayı kullanma hakkında daha fazla bilgi için bkz . Studio kullanarak temel modelleri dağıtma.
Azure Machine Learning'deki kaynakların kotaları ve sınırları hakkında daha fazla bilgi için bkz . Azure Machine Learning ile kaynaklar için kotaları ve sınırları yönetme ve artırma.
Kodlayıcılar ve kodlayıcı olmayanlar için dağıtım
Azure Machine Learning kodsuz dağıtım, düşük kodlu dağıtım ve Kendi Kapsayıcınızı Getir (KCG) dağıtımı seçenekleri sağlayarak kodlayıcılar ve kodlayıcı olmayanlar için çevrimiçi uç noktalara model dağıtımını destekler.
- Kodsuz dağıtım , MLflow ve Triton aracılığıyla scikit-learn, TensorFlow, PyTorch ve Open Neural Network Exchange (ONNX) gibi yaygın çerçeveler için kullanıma hazır çıkarım sağlar.
- Düşük kodlu dağıtım, dağıtım için makine öğrenmesi modelinizle birlikte minimum kod sağlamanıza olanak tanır.
- KCG dağıtımı , çevrimiçi uç noktanızı çalıştırmak için neredeyse tüm kapsayıcıları getirmenize olanak tanır. MLOps işlem hatlarınızı yönetmek için otomatik ölçeklendirme, GitOps, hata ayıklama ve güvenli dağıtım gibi tüm Azure Machine Learning platformu özelliklerini kullanabilirsiniz.
Aşağıdaki tabloda, çevrimiçi dağıtım seçeneklerinin önemli yönleri vurgulanır:
Kod yok | Düşük kod | KCG | |
---|---|---|---|
Özet | MLflow ve Triton aracılığıyla scikit-learn, TensorFlow, PyTorch ve ONNX gibi popüler çerçeveler için kullanıma hazır çıkarım kullanır. Daha fazla bilgi için bkz . MLflow modellerini çevrimiçi uç noktalara dağıtma. | Popüler çerçeveler için güvenli, genel olarak yayımlanan görüntüleri kullanır ve güvenlik açıklarını gidermek için her iki haftada bir güncelleştirmeler yapılır. Puanlama betiği ve/veya Python bağımlılıkları sağlarsınız. Daha fazla bilgi için bkz . Azure Machine Learning Seçilmiş Ortamları. | Özel görüntüler için Azure Machine Learning desteği aracılığıyla tam yığınınızı sağlarsınız. Daha fazla bilgi için bkz . Modeli çevrimiçi uç noktaya dağıtmak için özel kapsayıcı kullanma. |
Özel temel görüntü | Yok. Seçilmiş ortamlar, kolay dağıtım için temel görüntüyü sağlar. | Seçilen bir görüntüyü veya özelleştirilmiş görüntünüzü kullanabilirsiniz. | docker.io, Container Registry veya Microsoft Yapıt Kayıt Defteri gibi erişilebilir bir kapsayıcı görüntüsü konumu veya kapsayıcınız için Container Registry ile derleyebileceğiniz/gönderebileceğiniz bir Dockerfile getirin. |
Özel bağımlılıklar | Yok. Seçilmiş ortamlar, kolay dağıtım için bağımlılıklar sağlar. | Modelin çalıştığı Azure Machine Learning ortamını, Conda bağımlılıklarına sahip bir Docker görüntüsü veya dockerfile getirin. | Özel bağımlılıklar kapsayıcı görüntüsüne eklenir. |
Özel kod | Yok. Puanlama betiği, kolay dağıtım için otomatik olarak oluşturulur. | Puanlama betiğinizi getirin. | Puanlama betiği kapsayıcı görüntüsüne eklenir. |
Not
AutoML çalıştırmaları, kullanıcılar için otomatik olarak bir puanlama betiği ve bağımlılıkları oluşturur. Kodsuz dağıtım için, başka kod yazmadan herhangi bir AutoML modelini dağıtabilirsiniz. Düşük kodlu dağıtım için otomatik olarak oluşturulan betikleri iş gereksinimlerinize göre değiştirebilirsiniz. AutoML modelleriyle dağıtmayı öğrenmek için bkz . AutoML modelini çevrimiçi uç noktaya dağıtma.
Çevrimiçi uç nokta hata ayıklama
Mümkünse, Azure'a dağıtmadan önce kodunuzu ve yapılandırmanızı doğrulamak ve hatalarını ayıklamak için uç noktanızı yerel olarak test edin. Azure CLI ve Python SDK'sı yerel uç noktaları ve dağıtımları desteklerken, Azure Machine Learning stüdyosu ve ARM şablonları yerel uç noktaları veya dağıtımları desteklemez.
Azure Machine Learning, çevrimiçi uç noktalarda yerel olarak ve kapsayıcı günlüklerini kullanarak hata ayıklamak için aşağıdaki yolları sağlar:
- Azure Machine Learning çıkarım HTTP sunucusu ile yerel hata ayıklama
- Yerel uç nokta ile yerel hata ayıklama
- Yerel uç nokta ve Visual Studio Code ile yerel hata ayıklama
- Kapsayıcı günlükleriyle hata ayıklama
Azure Machine Learning çıkarım HTTP sunucusu ile yerel hata ayıklama
Azure Machine Learning çıkarım HTTP sunucusunu kullanarak puanlama betiğinizde yerel olarak hata ayıklayabilirsiniz. HTTP sunucusu, puanlama işlevinizi bir HTTP uç noktası olarak kullanıma sunan ve Flask sunucu kodunu ve bağımlılıklarını tek bir pakete sarmalayan bir Python paketidir.
Azure Machine Learning, modeli dağıtmak için kullanılan çıkarım için önceden oluşturulmuş Docker görüntülerinde bir HTTP sunucusu içerir. Yalnızca paketi kullanarak modeli üretim için yerel olarak dağıtabilir ve yerel geliştirme ortamında giriş puanlama betiğinizi kolayca doğrulayabilirsiniz. Puanlama betiğinde bir sorun varsa, sunucu bir hata ve hatanın oluştuğu konumu döndürür. Azure Machine Learning çıkarım HTTP sunucusuyla hata ayıklamak için Visual Studio Code da kullanabilirsiniz.
İpucu
Puanlama betiğinizde Docker Engine olmadan yerel olarak hata ayıklamak için Azure Machine Learning çıkarım HTTP sunucusu Python paketini kullanabilirsiniz. Çıkarım sunucusuyla hata ayıklama, yerel uç noktalara dağıtmadan önce puanlama betiğinin hatalarını ayıklamanıza yardımcı olur, böylece dağıtım kapsayıcısı yapılandırmalarından etkilenmeden hata ayıklayabilirsiniz.
HTTP sunucusuyla hata ayıklama hakkında daha fazla bilgi için bkz . Azure Machine Learning çıkarımı HTTP sunucusu ile puanlama betiğinde hata ayıklama.
Yerel uç nokta ile yerel hata ayıklama
Yerel hata ayıklama için yerel Docker ortamına dağıtılan bir modele ihtiyacınız vardır. Bu yerel dağıtımı, buluta dağıtımdan önce test etmek ve hata ayıklamak için kullanabilirsiniz.
Yerel olarak dağıtmak için Docker Altyapısı'nın yüklü ve çalışır durumda olması gerekir. Ardından Azure Machine Learning, çevrimiçi görüntüyü taklit etmek için yerel bir Docker görüntüsü oluşturur. Azure Machine Learning sizin için yerel olarak dağıtımlar derleyip çalıştırır ve hızlı yinelemeler için görüntüyü önbelleğe alır.
İpucu
Bilgisayar başlatıldığında Docker Altyapısı başlatılmıyorsa Docker Altyapısı sorunlarını giderebilirsiniz. Kapsayıcıda gerçekleşenlerin hatalarını ayıklamak için Docker Desktop gibi istemci tarafı araçlarını kullanabilirsiniz.
Yerel hata ayıklama genellikle aşağıdaki adımları içerir:
- İlk olarak, yerel dağıtımın başarılı olup olmadığını denetleyin.
- Ardından, çıkarım için yerel uç noktayı çağırın.
- Son olarak, işlemin çıkış günlüklerini
invoke
gözden geçirin.
Yerel uç noktaların sınırlamaları şunlardır:
Trafik kuralları, kimlik doğrulaması veya yoklama ayarları için destek yoktur.
Uç nokta başına yalnızca bir dağıtım desteği.
Yalnızca yerel conda dosyasıyla yerel model dosyaları ve ortamı için destek.
Kayıtlı modelleri test etmek için önce CLI veya SDK kullanarak bunları indirin ve ardından dağıtım tanımında kullanarak
path
üst klasöre başvurun.Kayıtlı ortamları test etmek için Azure Machine Learning stüdyosu ortamın bağlamını denetleyin ve kullanılacak yerel bir conda dosyası hazırlayın.
Yerel hata ayıklama hakkında daha fazla bilgi için bkz . Yerel uç nokta kullanarak yerel olarak dağıtma ve hata ayıklama.
Yerel uç nokta ve Visual Studio Code ile yerel hata ayıklama (önizleme)
Önemli
Bu özellik şu anda genel önizlemededir. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için bu sürümü önermeyiz. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir.
Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.
Yerel hata ayıklamada olduğu gibi Docker Altyapısı'nın yüklü ve çalışır durumda olması ve ardından yerel Docker ortamına bir model dağıtmanız gerekir. Yerel bir dağıtımınız olduğunda, Azure Machine Learning yerel uç noktaları yerel bir hata ayıklama ortamı oluşturmak ve yapılandırmak için Docker ve Visual Studio Code geliştirme kapsayıcılarını (geliştirme kapsayıcıları) kullanır.
Geliştirme kapsayıcılarıyla, Docker kapsayıcısından etkileşimli hata ayıklama gibi Visual Studio Code özelliklerini kullanabilirsiniz. Visual Studio Code'da çevrimiçi uç noktalarda etkileşimli hata ayıklama hakkında daha fazla bilgi için bkz . Visual Studio Code'da çevrimiçi uç noktalarda yerel olarak hata ayıklama.
Kapsayıcı günlükleriyle hata ayıklama
Modelin dağıtıldığı vm'ye doğrudan erişim alamazsınız, ancak vm üzerinde çalışan aşağıdaki kapsayıcılardan günlükleri alabilirsiniz:
- Çıkarım sunucusu konsol günlüğü, puanlama betiği score.py kodunuzdan yazdırma/günlüğe kaydetme işlevlerinin çıkışını içerir.
- Depolama başlatıcı günlükleri, kod ve model verilerinin kapsayıcıya başarıyla indirilip indirilmediği hakkında bilgi içerir. Kapsayıcı, çıkarım sunucusu kapsayıcısı çalışmaya başlamadan önce çalışır.
Kapsayıcı günlükleriyle hata ayıklama hakkında daha fazla bilgi için bkz . Kapsayıcı günlüklerini alma.
Trafik yönlendirme ve çevrimiçi dağıtımlara yansıtma
Tek bir çevrimiçi uç noktanın birden çok dağıtımı olabilir. Uç nokta gelen trafik isteklerini aldığından, yerel mavi/yeşil dağıtım stratejisinde olduğu gibi trafiğin yüzdelerini her dağıtıma yönlendirebilir. Uç nokta, trafik yansıtma veya gölgelendirme olarak adlandırılan bir dağıtımdaki trafiği başka bir dağıtıma da yansıtabilir veya kopyalayabilir.
Mavi/yeşil dağıtım için trafik yönlendirmesi
Mavi/yeşil dağıtım, tamamen kullanıma sunmadan önce kullanıcıların veya isteklerin küçük bir alt kümesine yeni bir yeşil dağıtım dağıtmanıza olanak tanıyan bir dağıtım stratejisidir. Uç nokta, her dağıtıma trafiğin belirli yüzdelerini ayırmak için yük dengeleme uygulayabilir ve tüm dağıtımlardaki toplam ayırma %100'e kadar eklenir.
İpucu
İstek, http üst bilgisini ekleyerek yapılandırılmış trafik yükü dengelemesini azureml-model-deployment
atlayabilir. Üst bilgi değerini isteğin yönlendirmesini istediğiniz dağıtımın adı olarak ayarlayın.
Aşağıdaki görüntüde, mavi ve yeşil dağıtım arasında trafik ayırmaya yönelik Azure Machine Learning stüdyosu ayarları gösterilmektedir.
Yukarıdaki trafik ayırma işlemi, aşağıdaki görüntüde gösterildiği gibi trafiğin %10'unu yeşil dağıtıma, %90'ını ise mavi dağıtıma yönlendirir.
Çevrimiçi dağıtımlara trafik yansıtma
Uç nokta ayrıca trafiği bir dağıtımdan diğerine yansıtabilir veya kopyalayabilir. Müşterilerin mevcut dağıtımlardan aldığı sonuçları etkilemeden üretim trafiğiyle yeni bir dağıtımı test etmek istediğinizde gölge test olarak da adlandırılan trafik yansıtmayı kullanabilirsiniz.
Örneğin, trafiğin %100'ünün maviye, %10'unun ise yeşil dağıtıma yansıtıldığı bir mavi/yeşil dağıtım uygulayabilirsiniz. Yeşil dağıtıma yansıtılmış trafiğin sonuçları istemcilere döndürülür, ancak ölçümler ve günlükler kaydedilir.
Trafik yansıtmayı kullanma hakkında daha fazla bilgi için bkz . Gerçek zamanlı çıkarım için yeni dağıtımları güvenli bir şekilde dağıtma.
Diğer çevrimiçi uç nokta özellikleri
Aşağıdaki bölümlerde Azure Machine Learning çevrimiçi uç noktalarının diğer özellikleri açıklanmaktadır.
Kimlik doğrulaması ve şifreleme
- Kimlik doğrulaması: Anahtar ve Azure Machine Learning belirteçleri
- Yönetilen kimlik: Kullanıcı tarafından atanan ve sistem tarafından atanan
- Uç nokta çağırma için varsayılan olarak güvenli yuva katmanı (SSL)
Otomatik ölçeklendirme
Otomatik ölçeklendirme uygulamanızdaki yükü işlemek için tam olarak doğru miktarda kaynak çalıştırır. Yönetilen uç noktalar, Azure İzleyici otomatik ölçeklendirme özelliğiyle tümleştirme aracılığıyla otomatik ölçeklendirmeyi destekler. CPU kullanımı >%70 gibi ölçüm tabanlı ölçeklendirmeyi, yoğun iş saati kuralları gibi zamanlama tabanlı ölçeklendirmeyi veya her ikisini birden yapılandırabilirsiniz.
Daha fazla bilgi için bkz . Azure Machine Learning'de çevrimiçi uç noktaları otomatik ölçeklendirme.
Yönetilen ağ yalıtımı
Yönetilen çevrimiçi uç noktaya makine öğrenmesi modeli dağıttığınızda, özel uç noktaları kullanarak çevrimiçi uç noktayla iletişimin güvenliğini sağlayabilirsiniz. Gelen puanlama istekleri ve giden iletişimler için güvenliği ayrı ayrı yapılandırabilirsiniz.
Gelen iletişimler Azure Machine Learning çalışma alanının özel uç noktasını kullanırken, giden iletişimler çalışma alanının yönetilen sanal ağı için oluşturulan özel uç noktaları kullanır. Daha fazla bilgi için bkz . Yönetilen çevrimiçi uç noktalarla ağ yalıtımı.
Çevrimiçi uç noktaları ve dağıtımları izleme
Azure Machine Learning uç noktaları Azure İzleyici ile tümleşir. Azure İzleyici tümleştirmesi grafiklerdeki ölçümleri görüntülemenize, uyarıları yapılandırmanıza, günlük tablolarını sorgulamanıza ve kullanıcı kapsayıcılarındaki olayları analiz etmek için Application Insights'ı kullanmanıza olanak tanır. Daha fazla bilgi için bkz . Çevrimiçi uç noktaları izleme.
Çevrimiçi dağıtımlarda gizli dizi ekleme (önizleme)
Çevrimiçi dağıtım için gizli dizi ekleme, gizli dizi depolarından API anahtarları gibi gizli dizileri almayı ve bunları dağıtımın içinde çalışan kullanıcı kapsayıcısına eklemeyi içerir. KCG dağıtımınızda puanlama betiğinizi veya çıkarım yığınını çalıştıran çıkarım sunucusu için güvenli gizli dizi tüketimi sağlamak için ortam değişkenlerini kullanarak gizli dizilere erişebilirsiniz.
Yönetilen kimlikleri kullanarak gizli dizileri kendiniz ekleyebilir veya gizli dizi ekleme özelliğini kullanabilirsiniz. Daha fazla bilgi için bkz . Çevrimiçi uç noktalara gizli dizi ekleme (önizleme).
İlgili içerik
- Çevrimiçi uç nokta kullanarak makine öğrenmesi modelini dağıtma ve puanlandırma
- Batch uç noktaları
- Ağ yalıtımı ile yönetilen çevrimiçi uç noktalarınızın güvenliğini sağlama
- REST ile modelleri dağıtma
- Çevrimiçi uç noktaları izleme
- Azure Machine Learning yönetilen çevrimiçi uç noktasının maliyetlerini görüntüleme
- Azure Machine Learning ile kaynaklar için kotaları ve sınırları yönetme ve artırma