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:

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

    Uç nokta gecikmesinin Azure İzleyici grafiğini gösteren ekran görüntüsü.

  • Maliyet analizi görünümü, uç nokta ve dağıtım düzeyinde maliyetleri izlemenizi sağlar.

    Bir uç noktanın ve dağıtımın maliyet grafiğinin ekran görüntüsü.

    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.

Trafiği iki dağıtıma bölen uç noktayı gösteren diyagram.

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 3olarak 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

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.

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-deploymentatlayabilir. Ü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.

Dağıtımlar arasında trafik ayırmayı ayarlamak için kaydırıcı arabirimini gösteren ekran görüntüsü.

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.

Trafiği iki dağıtıma bölen uç noktayı gösteren diyagram.

Ç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.

Trafiği dağıtıma yansıtan uç noktayı gösteren diyagram.

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.

Otomatik ölçeklendirmenin kurallara bağlı olarak minimum ve maksimum örnekler arasında esnek bir şekilde sağladığını gösteren ekran görüntüsü.

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).