Bu makalede, modelinizi gerçek zamanlı çıkarımda kullanmak üzere çevrimiçi bir uç noktaya dağıtmayı öğreneceksiniz. Hata ayıklamak için yerel makinenize bir model dağıtarak başlarsınız. Ardından modeli Azure'da dağıtıp test eder, dağıtım günlüklerini görüntüler ve hizmet düzeyi sözleşmesini (SLA) izlersiniz. Bu makalenin sonunda, gerçek zamanlı çıkarım için kullanabileceğiniz ölçeklenebilir bir HTTPS/REST uç noktanız olacak.
Çevrimiçi uç noktalar, gerçek zamanlı çıkarım için kullanılan uç noktalardır. İki tür çevrimiçi uç nokta vardır: yönetilen çevrimiçi uç noktalar ve Kubernetes çevrimiçi uç noktaları. Uç noktalar ve yönetilen çevrimiçi uç noktalar ile Kubernetes çevrimiçi uç noktaları arasındaki farklar hakkında daha fazla bilgi için bkz . Azure Machine Learning uç noktaları nedir?
Yönetilen çevrimiçi uç noktalar makine öğrenmesi modellerinizi anahtar teslimi şeklinde dağıtmanıza yardımcı olur. 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. Yönetilen çevrimiçi uç noktalar modellerinizin sunulması, ölçeklendirilmesi, güvenlik altına alınması ve izlenmesiyle ilgilenerek, sizi temel altyapıyı ayarlama ve yönetme yükünden kurtarır.
Bu belgedeki ana örnek, dağıtım için yönetilen çevrimiçi uç noktaları kullanır. Bunun yerine Kubernetes'i kullanmak için, bu belgedeki yönetilen çevrimiçi uç nokta tartışmasıyla satır içi notlara bakın.
Azure Machine Learning’deki işlemlere erişim vermek için Azure rol tabanlı erişim denetimleri (Azure RBAC) kullanılır. Bu makaledeki adımları gerçekleştirmek için kullanıcı hesabınıza Azure Machine Learning çalışma alanı için sahip veya katkıda bulunan rolü ya da izin veren Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*özel bir rol atanmalıdır. Çevrimiçi uç noktaları/dağıtımları oluşturmak/yönetmek için stüdyoyu kullanırsanız, kaynak grubu sahibinden ek "Microsoft.Resources/deployments/write" iznine sahip olmanız gerekir. Daha fazla bilgi için bkz . Azure Machine Learning çalışma alanına erişimi yönetme.
(İsteğe bağlı) Yerel olarak dağıtmak için Docker Engine'i yerel bilgisayarınıza yüklemeniz gerekir. Sorunlarda hata ayıklamak daha kolay olması için bu seçeneği kesinlikle öneririz .
Azure Machine Learning’deki işlemlere erişim vermek için Azure rol tabanlı erişim denetimleri (Azure RBAC) kullanılır. Bu makaledeki adımları gerçekleştirmek için kullanıcı hesabınıza Azure Machine Learning çalışma alanı için sahip veya katkıda bulunan rolü ya da izin veren Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*özel bir rol atanmalıdır. Daha fazla bilgi için bkz . Azure Machine Learning çalışma alanına erişimi yönetme.
(İsteğe bağlı) Yerel olarak dağıtmak için Docker Engine'i yerel bilgisayarınıza yüklemeniz gerekir. Sorunlarda hata ayıklamak daha kolay olması için bu seçeneği kesinlikle öneririz .
Bu makaledeki adımları takip etmeden önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:
Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun. Azure Machine Learning'in ücretsiz veya ücretli sürümünü deneyin.
Azure Machine Learning çalışma alanı ve işlem örneği. Bu kaynaklara sahip değilseniz ve bunları oluşturmak istiyorsanız, Hızlı Başlangıç: Çalışma alanı kaynakları oluşturma makalesindeki adımları kullanın.
Azure Machine Learning’deki işlemlere erişim vermek için Azure rol tabanlı erişim denetimleri (Azure RBAC) kullanılır. Bu makaledeki adımları gerçekleştirmek için kullanıcı hesabınıza Azure Machine Learning çalışma alanı için sahip veya katkıda bulunan rolü ya da izin veren Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*özel bir rol atanmalıdır. Daha fazla bilgi için bkz . Azure Machine Learning çalışma alanına erişimi yönetme.
Not
Makine öğrenmesi için Azure CLI ve CLI uzantısı bu adımlarda kullanılsa da ana odak bunlar değildir. bunlar daha çok yardımcı program olarak kullanılır, şablonları Azure'a geçirir ve şablon dağıtımlarının durumunu denetler.
Bu makaledeki adımları takip etmeden önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:
Azure Machine Learning’deki işlemlere erişim vermek için Azure rol tabanlı erişim denetimleri (Azure RBAC) kullanılır. Bu makaledeki adımları gerçekleştirmek için kullanıcı hesabınıza Azure Machine Learning çalışma alanı için sahip veya katkıda bulunan rolü ya da izin veren Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*özel bir rol atanmalıdır. Daha fazla bilgi için bkz . Azure Machine Learning çalışma alanına erişimi yönetme.
Dağıtım için yeterli sanal makine (VM) kotası ayırdığınızdan emin olun. 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. Örneğin, bir dağıtımda 10 örnek isterseniz, VM SKU'su için her çekirdek sayısı için 12 kotanız olmalıdır. Ek işlem kaynaklarının hesaplanmaması hataya neden olur. Ek kota rezervasyonundan muaf olan bazı VM SKU'ları vardır. Kota ayırma hakkında daha fazla bilgi için bkz . Dağıtım için sanal makine kota ayırma.
Alternatif olarak, Azure Machine Learning'in paylaşılan kota havuzundan gelen kotayı sınırlı bir süre kullanabilirsiniz. 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ı.
Azure CLI için varsayılan ayarları henüz ayarlamadıysanız varsayılan ayarlarınızı kaydedin. Aboneliğinizin, çalışma alanınızın ve kaynak grubunuzun değerlerinin birden çok kez geçirilmesini önlemek için şu kodu çalıştırın:
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
Örnek deposunu kopyalama
Bu makaleyi takip etmek için önce örnek deposunu (azureml-examples) kopyalayın. Ardından aşağıdaki kodu çalıştırarak deponun cli/ dizinine gidin:
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
cd cli
İpucu
Yalnızca en son işlemeyi depoya kopyalamak için kullanın --depth 1 ; bu işlem tamamlanma süresini kısaltılır.
Bu öğreticideki komutlar dosyalarda deploy-local-endpoint.sh ve deploy-managed-online-endpoint.sh dizinde cli , YAML yapılandırma dosyaları ise alt dizinde endpoints/online/managed/sample/ yer alır.
Not
Kubernetes çevrimiçi uç noktaları için YAML yapılandırma dosyaları alt dizindedir endpoints/online/kubernetes/ .
Örnek deposunu kopyalama
Eğitim örneklerini çalıştırmak için önce örnek deposunu (azureml-examples) kopyalayın ve dizinine azureml-examples/sdk/python/endpoints/online/managed geçin:
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples/sdk/python/endpoints/online/managed
İpucu
Yalnızca en son işlemeyi depoya kopyalamak için kullanın --depth 1 ; bu işlem tamamlanma süresini kısaltılır.
Bu makaledeki bilgiler online-endpoints-simple-deployment.ipynb not defterini temel alır. Kodların sırası biraz farklı olsa da, bu makaleyle aynı içeriği içerir.
Azure Machine Learning çalışma alanına bağlanma
Çalışma alanı , Azure Machine Learning'in en üst düzey kaynağıdır ve Azure Machine Learning'i kullanırken oluşturduğunuz tüm yapıtlarla çalışmak için merkezi bir yer sağlar. Bu bölümde, dağıtım görevlerini gerçekleştirebileceğiniz çalışma alanına bağlanacaksınız. Takip etmek için not defterinizi online-endpoints-simple-deployment.ipynb açın.
Gerekli kitaplıkları içeri aktarın:
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
Model,
Environment,
CodeConfiguration,
)
from azure.identity import DefaultAzureCredential
Çalışma alanı ayrıntılarını yapılandırın ve çalışma alanına bir tanıtıcı alın:
Bir çalışma alanına bağlanmak için tanımlayıcı parametrelerine (abonelik, kaynak grubu ve çalışma alanı adı) ihtiyacınız vardır. Gerekli Azure Machine Learning çalışma alanına yönelik bir tanıtıcı elde etmek için kimden dosyasında bu ayrıntıları MLClientazure.ai.ml kullanırsınız. Bu örnek varsayılan Azure kimlik doğrulamasını kullanır.
# enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
# get a handle to the workspace
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
Yerel makinenizde Git yüklüyse örnek deposunu kopyalamak için yönergeleri izleyebilirsiniz. Aksi takdirde, örnek deposundaki dosyaları indirmek için yönergeleri izleyin.
Örnek deposunu kopyalama
Bu makaleyi takip etmek için önce örnek deposunu (azureml-examples) kopyalayın ve ardından dizinine azureml-examples/cli/endpoints/online/model-1 geçin.
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples/cli/endpoints/online/model-1
İpucu
Yalnızca en son işlemeyi depoya kopyalamak için kullanın --depth 1 ; bu işlem tamamlanma süresini kısaltılır.
Örnek deposundan dosya indirme
Örnek depoyu kopyaladıysanız, yerel makinenizde bu örnekteki dosyaların kopyaları zaten vardır ve sonraki bölüme atlayabilirsiniz. Depoyu kopyalamadıysanız yerel makinenize indirebilirsiniz.
<> Sayfadaki Kod düğmesine gidin ve Yerel sekmesinden ZIP İndir'i seçin.
klasörünü /cli/endpoints/online/model-1/model ve dosyasını /cli/endpoints/online/model-1/onlinescoring/score.pybulun.
Ortam değişkenlerini belirleme
Bu makaledeki örneklerde kullanılan aşağıdaki ortam değişkenlerini ayarlayın. Değerleri Azure abonelik kimliğiniz, çalışma alanınızın bulunduğu Azure bölgesi, çalışma alanını içeren kaynak grubu ve çalışma alanı adıyla değiştirin:
export SUBSCRIPTION_ID="your Azure subscription ID"
export LOCATION="Azure region where your workspace is located"
export RESOURCE_GROUP="Azure resource group that contains your workspace"
export WORKSPACE="Azure Machine Learning workspace name"
Şablon örneklerinden birkaçı, çalışma alanınız için Azure Blob deposuna dosya yüklemenizi gerektirir. Aşağıdaki adımlar çalışma alanını sorgular ve bu bilgileri örneklerde kullanılan ortam değişkenlerinde depolar:
Bu makaleyi takip etmek için önce örnek deposunu (azureml-examples) kopyalayın. Ardından aşağıdaki kodu çalıştırarak örnekler dizinine gidin:
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
İpucu
Yalnızca en son işlemeyi depoya kopyalamak için kullanın --depth 1 ; bu işlem tamamlanma süresini kısaltılır.
Uç noktayı tanımlama
Çevrimiçi uç nokta tanımlamak için uç nokta adını ve kimlik doğrulama modunu belirtin. Yönetilen çevrimiçi uç noktalar hakkında daha fazla bilgi için bkz . Çevrimiçi uç noktalar.
Uç nokta adınızı ayarlamak için aşağıdaki komutu çalıştırın. değerini Azure bölgesinde benzersiz bir adla değiştirin YOUR_ENDPOINT_NAME . Adlandırma kuralları hakkında daha fazla bilgi için bkz . uç nokta sınırları.
Linux için şu komutu çalıştırın:
export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"
Uç noktayı yapılandırma
Aşağıdaki kod parçacığı uç noktaları/çevrimiçi/yönetilen/örnek/endpoint.yml dosyasını gösterir:
Uç nokta YAML biçimi başvurusu aşağıdaki tabloda açıklanmıştır. Bu özniteliklerin nasıl belirtileceğini öğrenmek için çevrimiçi uç nokta YAML başvurusuna bakın. Yönetilen uç noktalarla ilgili sınırlar hakkında bilgi için bkz . Çevrimiçi uç noktaların sınırları.
Tuş
Açıklama
$schema
(İsteğe bağlı) YAML şeması. YAML dosyasındaki tüm kullanılabilir seçenekleri görmek için, şemayı bir tarayıcıdaki önceki kod parçacığında görüntüleyebilirsiniz.
name
Uç noktanın adı.
auth_mode
Anahtar tabanlı kimlik doğrulaması için kullanın key . Azure Machine Learning belirteç tabanlı kimlik doğrulaması için kullanın aml_token . Microsoft Entra belirteç tabanlı kimlik doğrulaması (önizleme) için kullanın aad_token . Kimlik doğrulaması hakkında daha fazla bilgi için bkz . Çevrimiçi uç noktalar için istemcilerin kimliğini doğrulama.
Uç noktayı yapılandırma
Önce çevrimiçi uç noktanın adını tanımlayın, ardından uç noktayı yapılandırın.
Uç nokta adınızın Azure bölgesinde benzersiz olması gerekir. Adlandırma kuralları hakkında daha fazla bilgi için bkz . uç nokta sınırları.
# Define an endpoint name
endpoint_name = "my-endpoint"
# Example way to define a random name
import datetime
endpoint_name = "endpt-" + datetime.datetime.now().strftime("%m%d%H%M%f")
# create an online endpoint
endpoint = ManagedOnlineEndpoint(
name = endpoint_name,
description="this is a sample endpoint",
auth_mode="key"
)
Önceki kod anahtar tabanlı kimlik doğrulaması için kullanır key . Azure Machine Learning belirteç tabanlı kimlik doğrulamasını kullanmak için kullanın aml_token. Microsoft Entra belirteç tabanlı kimlik doğrulamasını (önizleme) kullanmak için kullanın aad_token. Kimlik doğrulaması hakkında daha fazla bilgi için bkz . Çevrimiçi uç noktalar için istemcilerin kimliğini doğrulama.
Uç noktayı yapılandırma
Stüdyodan Azure'a dağıtım yaptığınızda, buna eklemek için bir uç nokta ve dağıtım oluşturacaksınız. Bu sırada, uç nokta ve dağıtım için ad sağlamanız istenir.
Uç nokta adı ayarlama
Uç nokta adınızı ayarlamak için aşağıdaki komutu çalıştırın. değerini Azure bölgesinde benzersiz bir adla değiştirin YOUR_ENDPOINT_NAME . Adlandırma kuralları hakkında daha fazla bilgi için bkz . uç nokta sınırları.
Linux için şu komutu çalıştırın:
export ENDPOINT_NAME=endpoint-`echo $RANDOM`
Uç noktayı yapılandırma
Uç noktayı ve dağıtımı tanımlamak için bu makalede azure resource manager şablonları online-endpoint.json ve online-endpoint-deployment.json kullanılır. Çevrimiçi uç nokta ve dağıtım tanımlama şablonlarını kullanmak için Azure'a Dağıtma bölümüne bakın.
Dağıtımı tanımlama
Dağıtım, gerçek çıkarım yapan modeli barındırmak için gereken bir kaynak kümesidir. Bu örnekte, regresyona neden olan bir scikit-learn modeli dağıtacak ve belirli bir giriş isteğinde modeli yürütmek için puanlama betiği score.py kullanacaksınız.
Aşağıdaki kod parçacığı uç noktaları/çevrimiçi/yönetilen/örnek/blue-deployment.yml dosyasını gösterir ve dağıtımı yapılandırmak için gerekli tüm girişleri içerir:
blue-deployment.yml dosyası aşağıdaki dağıtım özniteliklerini belirtir:
model - kullanarak model özelliklerini satır path içinde belirtir (dosyaların karşıya yüklendiği yer). CLI, model dosyalarını otomatik olarak karşıya yükler ve modeli otomatik olarak oluşturulan bir adla kaydeder.
environment - dosyaların karşıya yüklendiği yeri içeren satır içi tanımları kullanan CLI, dosyayı otomatik olarak karşıya yükler conda.yaml ve ortamı kaydeder. Daha sonra, ortamı derlemek için dağıtım temel görüntü için öğesini kullanır image (bu örnekte mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest, temel görüntü için ) ve conda_file bağımlılıklar temel görüntünün üstüne yüklenir.
code_configuration - dağıtım sırasında puanlama modeli için Python kaynağı gibi yerel dosyalar geliştirme ortamından karşıya yüklenir.
YAML şeması hakkında daha fazla bilgi için çevrimiçi uç nokta YAML başvurusuna bakın.
Not
İşlem hedefi olarak yönetilen çevrimiçi uç noktalar yerine Kubernetes uç noktalarını kullanmak için:
Azure Machine Learning stüdyosu kullanarak Kubernetes kümenizi oluşturun ve Azure Machine Learning çalışma alanınıza işlem hedefi olarak ekleyin.
Yönetilen uç nokta YAML yerine Kubernetes'i hedeflemek için uç nokta YAML'sini kullanın. değerini compute kayıtlı işlem hedefinizin adıyla değiştirmek için YAML'yi düzenlemeniz gerekir. Kubernetes dağıtımı için geçerli ek özelliklere sahip olan bu deployment.yaml dosyasını kullanabilirsiniz.
Bu makalede yönetilen çevrimiçi uç noktalar için kullanılan tüm komutlar, Kubernetes uç noktaları için geçerli olmayan aşağıdaki özellikler dışında Kubernetes uç noktaları için de geçerlidir:
Model - kullanarak model özelliklerini satır path içinde belirtir (dosyaların karşıya yüklendiği yer). SDK, model dosyalarını otomatik olarak karşıya yükler ve modeli otomatik olarak oluşturulan bir adla kaydeder.
Environment - dosyaların karşıya yüklendiği yeri içeren satır içi tanımları kullanan SDK, dosyayı otomatik olarak karşıya yükler conda.yaml ve ortamı kaydeder. Daha sonra, ortamı derlemek için dağıtım temel görüntü için öğesini kullanır image (bu örnekte mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest, temel görüntü için ) ve conda_file bağımlılıklar temel görüntünün üstüne yüklenir.
CodeConfiguration - dağıtım sırasında puanlama modeli için Python kaynağı gibi yerel dosyalar geliştirme ortamından karşıya yüklenir.
Azure'a dağıttığınızda, buna eklemek için bir uç nokta ve dağıtım oluşturacaksınız. Bu sırada, uç nokta ve dağıtım için ad sağlamanız istenir.
Dağıtımı yapılandırma
Uç noktayı ve dağıtımı tanımlamak için bu makalede azure resource manager şablonları online-endpoint.json ve online-endpoint-deployment.json kullanılır. Çevrimiçi uç nokta ve dağıtım tanımlama şablonlarını kullanmak için Azure'a Dağıtma bölümüne bakın.
Puanlama betiğini anlama
İpucu
Çevrimiçi uç noktalar için puanlama betiğinin biçimi, CLI'nın önceki sürümünde ve Python SDK'sında kullanılan biçimle aynıdır.
import os
import logging
import json
import numpy
import joblib
def init():
"""
This function is called when the container is initialized/started, typically after create/update of the deployment.
You can write the logic here to perform init operations like caching the model in memory
"""
global model
# AZUREML_MODEL_DIR is an environment variable created during deployment.
# It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION)
# Please provide your model's folder name if there is one
model_path = os.path.join(
os.getenv("AZUREML_MODEL_DIR"), "model/sklearn_regression_model.pkl"
)
# deserialize the model file back into a sklearn model
model = joblib.load(model_path)
logging.info("Init complete")
def run(raw_data):
"""
This function is called for every invocation of the endpoint to perform the actual scoring/prediction.
In the example we extract the data from the json input and call the scikit-learn model's predict()
method and return the result back
"""
logging.info("model 1: request received")
data = json.loads(raw_data)["data"]
data = numpy.array(data)
result = model.predict(data)
logging.info("Request processed")
return result.tolist()
kapsayıcı init() başlatıldığında veya başlatıldığında işlev çağrılır. Başlatma genellikle dağıtım oluşturulduktan veya güncelleştirildikten kısa bir süre sonra gerçekleşir. init işlevi, modeli önbelleğe alma gibi genel başlatma işlemleri için mantık yazacak yerdir (bu score.py dosyasında gösterildiği gibi).
run() İşlev, uç nokta her çağrıldığında çağrılır ve gerçek puanlama ile tahmini yapar. bu score.py dosyasında işlev bir run() JSON girişinden veri ayıklar, scikit-learn modelinin predict() yöntemini çağırır ve ardından tahmin sonucunu döndürür.
Yerel uç nokta kullanarak yerel olarak dağıtma ve hata ayıklama
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 edip çalıştırmanızı kesinlikle öneririz . Azure CLI ve Python SDK'sı yerel uç noktaları ve dağıtımları desteklerken Azure Machine Learning stüdyosu ve ARM şablonu desteklemez.
Puanlama betiğinizde Docker Altyapısı 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.
Azure'a dağıtmadan önce çevrimiçi uç noktalarda yerel olarak hata ayıklama hakkında daha fazla bilgi için bkz . Çevrimiçi uç nokta hata ayıklama.
Modeli yerel olarak dağıtma
İlk olarak bir uç nokta oluşturun. İsteğe bağlı olarak, yerel bir uç nokta için bu adımı atlayabilir ve doğrudan gerekli meta verileri oluşturacak dağıtımı (sonraki adım) oluşturabilirsiniz. Modelleri yerel olarak dağıtmak, geliştirme ve test amacıyla kullanışlıdır.
bayrağı, local=True uç noktayı Docker ortamında dağıtmak için SDK'ya yönlendirir.
Stüdyo yerel uç noktaları desteklemez. Uç noktayı yerel olarak test etme adımları için Bkz. Azure CLI veya Python sekmeleri.
Şablon yerel uç noktaları desteklemez. Uç noktayı yerel olarak test etme adımları için Bkz. Azure CLI veya Python sekmeleri.
İpucu
Uç noktalarınızı yerel olarak test etmek ve hatalarını ayıklamak için Visual Studio Code kullanın. Daha fazla bilgi için bkz . Visual Studio Code'da çevrimiçi uç noktalarda yerel olarak hata ayıklama.
Yerel dağıtımın başarılı olduğunu doğrulayın
Modelin hatasız dağıtılıp dağıtılmadığını görmek için dağıtım durumunu denetleyin:
komutunu kullanarak invoke ve bir JSON dosyasında depolanan sorgu parametrelerini geçirerek modeli puanlamak için uç noktayı çağırın:
az ml online-endpoint invoke --local --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
REST istemcisi (curl gibi) kullanmak istiyorsanız puanlama URI'sine sahip olmanız gerekir. Puanlama URI'sini almak için komutunu çalıştırın az ml online-endpoint show --local -n $ENDPOINT_NAME. Döndürülen verilerde özniteliğini scoring_uri bulun.
komutunu kullanarak invoke ve bir JSON dosyasında depolanan sorgu parametrelerini geçirerek modeli puanlamak için uç noktayı çağırın.
REST istemcisi (curl gibi) kullanmak istiyorsanız puanlama URI'sine sahip olmanız gerekir. Puanlama URI'sini almak için aşağıdaki kodu çalıştırın. Döndürülen verilerde özniteliğini scoring_uri bulun.
Stüdyo yerel uç noktaları desteklemez. Uç noktayı yerel olarak test etme adımları için Bkz. Azure CLI veya Python sekmeleri.
Şablon yerel uç noktaları desteklemez. Uç noktayı yerel olarak test etme adımları için Bkz. Azure CLI veya Python sekmeleri.
Çevrimiçi uç noktanızı Azure'a dağıtma
Ardından çevrimiçi uç noktanızı Azure'a dağıtın. Üretim için en iyi yöntem olarak, dağıtımınızda kullanacağınız modeli ve ortamı kaydetmenizi öneririz.
Modelinizi ve ortamınızı kaydetme
Dağıtım sırasında kayıtlı adlarını ve sürümlerini belirtebilmeniz için modelinizi ve ortamınızı Azure'a dağıtımdan önce kaydetmenizi öneririz. Varlıklarınızı kaydetmek, her dağıtım oluşturduğunuzda bunları karşıya yüklemenize gerek kalmadan yeniden kullanmanıza ve böylece yeniden üretilebilirliği ve izlenebilirliği artırmanıza olanak tanır.
Not
Azure'a dağıtımın aksine, yerel dağıtım kayıtlı modellerin ve ortamların kullanılmasını desteklemez. Bunun yerine, yerel dağıtım yerel model dosyalarını kullanır ve yalnızca yerel dosyaları olan ortamları kullanır.
Azure'a dağıtım için yerel veya kayıtlı varlıkları (modeller ve ortamlar) kullanabilirsiniz. Makalenin bu bölümünde, Azure'a yapılan dağıtım kayıtlı varlıkları kullanır, ancak bunun yerine yerel varlıkları kullanma seçeneğiniz vardır. Yerel dağıtım için kullanılacak yerel dosyaları karşıya yükleyen bir dağıtım yapılandırması örneği için bkz . Dağıtımı yapılandırma.
Modeli ve ortamı kaydetmek için veya environment: azureml:my-env:1biçimini model: azureml:my-model:1 kullanın.
Kayıt için ve'nin modelenvironment YAML tanımlarını ayrı YAML dosyalarına ayıklayabilir ve ve az ml environment createkomutlarını az ml model create kullanabilirsiniz. Bu komutlar hakkında daha fazla bilgi edinmek için ve az ml environment create -hkomutunu çalıştırınaz ml model create -h.
az ml environment create -n my-env -v 1 -f ./environment.yaml
Modelinizi varlık olarak kaydetme hakkında daha fazla bilgi için bkz . CLI kullanarak modelinizi Machine Learning'de varlık olarak kaydetme. Ortam oluşturma hakkında daha fazla bilgi için bkz . CLI ve SDK (v2) ile Azure Machine Learning ortamlarını yönetme.
Modeli kaydetme
from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes
file_model = Model(
path="../../model-1/model/",
type=AssetTypes.CUSTOM_MODEL,
name="my-model",
description="Model created from local file.",
)
ml_client.models.create_or_update(file_model)
Ortamı kaydedin:
from azure.ai.ml.entities import Environment
env_docker_conda = Environment(
image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04",
conda_file="../../model-1/environment/conda.yaml",
name="my-env",
description="Environment created from a Docker image plus Conda environment.",
)
ml_client.environments.create_or_update(env_docker_conda)
Dağıtım sırasında kayıtlı adını ve sürümünü belirtebilmeniz için modelinizi varlık olarak kaydetmeyi öğrenmek için bkz . SDK'yı kullanarak modelinizi Machine Learning'de varlık olarak kaydetme.
Ortam oluşturma hakkında daha fazla bilgi için bkz . CLI ve SDK (v2) ile Azure Machine Learning ortamlarını yönetme.
Modeli kaydedin
Model kaydı, çalışma alanında tek bir model dosyası veya birden çok dosya içeren bir dizin içerebilen mantıksal bir varlıktır. Üretim için en iyi uygulama olarak modeli ve ortamı kaydetmeniz gerekir. Bu makalede uç noktayı ve dağıtımı oluşturmadan önce, modeli içeren model klasörünü kaydetmeniz gerekir.
\azureml-examples\cli\endpoints\online\model-1\model Daha önce kopyaladığınız veya indirdiğiniz deponun yerel kopyasından klasörü seçin. İstendiğinde Karşıya Yükle'yi seçin ve karşıya yüklemenin tamamlanmasını bekleyin.
Klasör karşıya yükleme tamamlandıktan sonra İleri'yi seçin.
Model için kolay bir Ad girin. Bu makaledeki adımlarda modelin adı olduğu model-1varsayılır.
kaydı tamamlamak için İleri'yi ve ardından Kaydet'i seçin.
"Ayarlar" sayfasında, ortam için gibi my-env bir ad girin.
"Ortam kaynağını seçin" için mevcut docker görüntüsünü isteğe bağlı conda kaynağıyla kullan'ı seçin.
"Özelleştir" sayfasına gitmek için İleri'yi seçin.
Dosyanın içeriğini \azureml-examples\cli\endpoints\online\model-1\environment\conda.yaml , daha önce kopyaladığınız veya indirdiğiniz deponun yerel kopyasından kopyalayın.
İçeriği metin kutusuna yapıştırın.
"Gözden Geçir" sayfasına gelene kadar İleri'yi seçin.
Oluştur'u seçin.
Stüdyoda ortam oluşturma hakkında daha fazla bilgi için bkz . Ortam oluşturma.
Modeli şablon kullanarak kaydetmek için önce model dosyasını bir Azure Blob deposuna yüklemeniz gerekir. Aşağıdaki örnek, çalışma alanınızın varsayılan depolama alanına dosya yüklemek için komutunu kullanır az storage blob upload-batch :
az storage blob upload-batch -d $AZUREML_DEFAULT_CONTAINER/model -s cli/endpoints/online/model-1/model --account-name $AZURE_STORAGE_ACCOUNT
Dosyayı karşıya yükledikten sonra, model kaydı oluşturmak için şablonu kullanın. Aşağıdaki örnekte parametresi modelin modelUri yolunu içerir:
az deployment group create -g $RESOURCE_GROUP \
--template-file arm-templates/model-version.json \
--parameters \
workspaceName=$WORKSPACE \
modelAssetName="sklearn" \
modelUri="azureml://subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/workspaces/$WORKSPACE/datastores/$AZUREML_DEFAULT_DATASTORE/paths/model/sklearn_regression_model.pkl"
Ortamın bir bölümü, modeli barındırmak için gereken model bağımlılıklarını belirten bir conda dosyasıdır. Aşağıdaki örnekte conda dosyasının içeriğinin ortam değişkenlerine nasıl okunduğu gösterilmektedir:
Aşağıdaki örnekte, ortamı kaydetmek için şablonun nasıl kullanılacağı gösterilmektedir. Önceki adımdaki conda dosyasının içeriği, parametresi kullanılarak şablona condaFile geçirilir:
Dağıtım tanımınızda kayıtlı varlıkları (model ve ortam) kullanın. Aşağıdaki kod parçacığı, bir dağıtımı yapılandırmak için gerekli tüm girişleri içeren dosyayı gösterir endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml :
Stüdyodan dağıtım yaptığınızda, bir uç nokta ve buna eklenecek bir dağıtım oluşturacaksınız. Bu sırada, uç nokta ve dağıtım için ad sağlamanız istenir.
Uç noktayı ve dağıtımı tanımlamak için bu makalede azure resource manager şablonları online-endpoint.json ve online-endpoint-deployment.json kullanılır. Çevrimiçi uç nokta ve dağıtım tanımlama şablonlarını kullanmak için Azure'a Dağıtma bölümüne bakın.
Farklı CPU ve GPU örneği türleri ve görüntüleri kullanma
Hem yerel dağıtım hem de Azure'a dağıtım için dağıtım tanımınızda CPU veya GPU örneği türlerini ve görüntülerini belirtebilirsiniz.
blue-deployment-with-registered-assets.yml dosyasındaki dağıtım tanımınız genel amaçlı bir tür Standard_DS3_v2 örneği ve GPU olmayan bir Docker görüntüsü mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest kullandı. GPU işlemi için bir GPU işlem türü SKU'su ve bir GPU Docker görüntüsü seçin.
Yönetilen uç noktalar yerine Kubernetes'i işlem hedefi olarak kullanmak için bkz . Kubernetes işlem hedefine giriş.
Hem yerel dağıtım hem de Azure'a dağıtım için dağıtım yapılandırmanızda CPU veya GPU örneği türlerini ve görüntülerini belirtebilirsiniz.
Daha önce genel amaçlı bir tür Standard_DS3_v2 örneği ve GPU olmayan bir Docker görüntüsü mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latestkullanan bir dağıtım yapılandırmıştınız. GPU işlemi için bir GPU işlem türü SKU'su ve bir GPU Docker görüntüsü seçin.
Yönetilen uç noktalar yerine Kubernetes'i işlem hedefi olarak kullanmak için bkz . Kubernetes işlem hedefine giriş.
Azure'a dağıtmak için studio kullanırken, dağıtımınız için kullanılacak işlem özelliklerini (örnek türü ve örnek sayısı) ve ortamı belirtmeniz istenir.
Ortamın önceki kaydı, parametresini kullanarak dockerImage değeri şablona environment-version.json geçirerek GPU olmayan bir docker görüntüsü mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04 belirtir. GPU işlemi için, şablona GPU docker görüntüsü için bir değer sağlayın (parametresini dockerImage kullanarak) ve şablona online-endpoint-deployment.json bir GPU işlem türü SKU sağlayın (parametresini skuName kullanarak).
az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
Uç noktanın altında adlı blue dağıtımı oluşturun.
az ml online-deployment create --name blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment-with-registered-assets.yml --all-traffic
Temel alınan ortamın veya görüntünün ilk kez oluşturulup oluşturulmadığına bağlı olarak dağıtım oluşturma işlemi 15 dakika kadar sürebilir. Aynı ortamı kullanan sonraki dağıtımlar daha hızlı işlenir.
İpucu
CLI konsolunuzu engellememek isterseniz komutuna bayrağını --no-wait ekleyebilirsiniz. Ancak, bu seçenek dağıtım durumunun etkileşimli görünümünü durdurur.
Önemli
--all-traffic Dağıtımı oluşturmak için kullanılan koddaki az ml online-deployment create bayrak, uç nokta trafiğinin %100'unu yeni oluşturulan mavi dağıtıma ayırır. Bu, geliştirme ve test amacıyla yararlı olsa da, üretim için trafiği açık bir komutla yeni dağıtıma yönlendirmek isteyebilirsiniz. Örneğin, az ml online-endpoint update -n $ENDPOINT_NAME --traffic "blue=100".
Uç noktayı oluşturun:
endpoint Daha önce tanımladığınız ve MLClient daha önce oluşturduğunuz öğesini kullanarak artık çalışma alanında uç nokta oluşturabilirsiniz. Bu komut uç nokta oluşturmayı başlatır ve uç nokta oluşturma işlemi devam ederken bir onay yanıtı döndürür.
blue_deployment_with_registered_assets Daha önce tanımladığınız ve MLClient daha önce oluşturduğunuz öğesini kullanarak artık dağıtımı çalışma alanında oluşturabilirsiniz. Bu komut dağıtım oluşturmayı başlatır ve dağıtım oluşturma işlemi devam ederken bir onay yanıtı döndürür.
Doğrudan tarayıcınızda yönetilen bir çevrimiçi uç nokta oluşturmak için stüdyoyu kullanın. Stüdyoda yönetilen bir çevrimiçi uç nokta oluşturduğunuzda, ilk dağıtımı tanımlamanız gerekir. Boş bir yönetilen çevrimiçi uç nokta oluşturamazsınız.
Stüdyoda yönetilen çevrimiçi uç nokta oluşturmanın bir yolu Modeller sayfasındandır. Bu yöntem ayrıca mevcut yönetilen çevrimiçi dağıtıma model eklemenin kolay bir yolunu sağlar. Modelinizi ve ortamınızı kaydetme bölümünde daha önce kaydettiğiniz adlı model-1 modeli dağıtmak için:
Adının yanındaki daireyi denetleyerek adlı model-1 modeli seçin.
Gerçek zamanlı uç noktayı dağıt'ı>seçin.
Bu eylem, uç noktanızla ilgili ayrıntıları belirtebileceğiniz bir pencere açar.
Azure bölgesinde benzersiz bir Uç nokta adı girin. Adlandırma kuralları hakkında daha fazla bilgi için bkz . uç nokta sınırları.
Varsayılan seçimi koru: İşlem türü için yönetilir .
Varsayılan seçimi koruyun: kimlik doğrulama türü için anahtar tabanlı kimlik doğrulaması . Kimlik doğrulaması hakkında daha fazla bilgi için bkz . Çevrimiçi uç noktalar için istemcilerin kimliğini doğrulama.
"Dağıtım" sayfasına gelene kadar İleri'yi seçin. Burada Application Insights tanılamasını Etkin olarak değiştirerek uç noktanızın etkinliklerinin grafiklerini daha sonra stüdyoda görüntüleyip Application Insights'ı kullanarak ölçümleri ve günlükleri analiz edebilirsiniz.
"Kod + ortam" sayfasına gitmek için İleri'yi seçin. Burada aşağıdaki seçenekleri belirleyin:
Çıkarım için bir puanlama betiği seçin: Daha önce kopyaladığınız veya indirdiğiniz depodan dosyaya göz atın ve dosyayı seçin \azureml-examples\cli\endpoints\online\model-1\onlinescoring\score.py .
Ortam bölümünü seçin: Özel ortamlar'ı seçin ve ardından daha önce oluşturduğunuz my-env:1 ortamını seçin.
Dağıtımı oluşturmanız istenene kadar Varsayılanları kabul ederek İleri'yi seçin.
Dağıtım ayarlarınızı gözden geçirin ve Oluştur düğmesini seçin.
Alternatif olarak, stüdyodaki Uç Noktalar sayfasından yönetilen bir çevrimiçi uç nokta oluşturabilirsiniz.
Sol gezinti çubuğunda Uç Noktalar sayfasını seçin.
+Oluştur'u seçin.
Bu eylem, modelinizi seçmeniz ve uç noktanız ve dağıtımınızla ilgili ayrıntıları belirtmeniz için bir pencere açar. Daha önce açıklandığı gibi uç noktanızın ve dağıtımınızın ayarlarını girin ve ardından Dağıtımı oluşturun .
Çevrimiçi uç nokta oluşturmak için şablonu kullanın:
Daha fazla parametre belirterek daha fazla bilgi edinebilirsiniz. Örneğin, tablo gibi uç noktaların listesinin çıktısını alın:
print("Kind\tLocation\tName")
print("-------\t----------\t------------------------")
for endpoint in ml_client.online_endpoints.list():
print(f"{endpoint.kind}\t{endpoint.location}\t{endpoint.name}")
Yönetilen çevrimiçi uç noktaları görüntüleme
Tüm yönetilen çevrimiçi uç noktalarınızı Uç Noktalar sayfasında görüntüleyebilirsiniz. Uç nokta URI'si , durum, test araçları, etkinlik izleyicileri, dağıtım günlükleri ve örnek tüketim kodu gibi kritik bilgileri bulmak için uç noktanın Ayrıntılar sayfasına gidin:
Sol gezinti çubuğunda Uç Noktalar'ı seçin. Burada, çalışma alanında tüm uç noktaların listesini görebilirsiniz.
(İsteğe bağlı) Yalnızca Yönetilen işlem türlerini göstermek için İşlem türünde filtre oluşturma.
Uç noktanın Ayrıntılar sayfasını görüntülemek için bir uç nokta adı seçin.
İpucu
Şablonlar kaynakları dağıtmak için yararlı olsa da, kaynakları listelemek, göstermek veya çağırmak için kullanılamaz. Bu işlemleri gerçekleştirmek için Azure CLI, Python SDK veya stüdyoyu kullanın. Aşağıdaki kod Azure CLI'yi kullanır.
show uç nokta ve dağıtım bilgilerini provisioning_state görüntülemek için komutunu kullanın:
az ml online-endpoint show -n $ENDPOINT_NAME
komutunu kullanarak çalışma alanı içindeki tüm uç noktaları tablo biçiminde listeleyin list :
az ml online-endpoint list --output table
Çevrimiçi dağıtımın durumunu denetleme
Modelin hatasız dağıtılıp dağıtılmadığını görmek için günlükleri denetleyin.
Kapsayıcıdan günlük çıktısını görmek için aşağıdaki CLI komutunu kullanın:
az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
Varsayılan olarak, günlükler çıkarım sunucusu kapsayıcısından çekilir. Depolama başlatıcı kapsayıcısından günlükleri görmek için bayrağını --container storage-initializer ekleyin. Dağıtım günlükleri hakkında daha fazla bilgi için bkz . Kapsayıcı günlüklerini alma.
Yöntemini kullanarak günlük çıkışını get_logs görüntüleyebilirsiniz:
Varsayılan olarak, günlükler çıkarım sunucusu kapsayıcısından çekilir. Depolama başlatıcı kapsayıcısından günlükleri görmek için seçeneğini ekleyin container_type="storage-initializer" . Dağıtım günlükleri hakkında daha fazla bilgi için bkz . Kapsayıcı günlüklerini alma.
Günlük çıkışını görüntülemek için uç noktanın sayfasından Günlükler sekmesini seçin. Uç noktanızda birden çok dağıtım varsa, günlüğünü görmek istediğiniz dağıtımı seçmek için açılan listeyi kullanın.
Varsayılan olarak, günlükler çıkarım sunucusundan çekilir. Depolama başlatıcı kapsayıcısından günlükleri görmek için Azure CLI veya Python SDK'sını kullanın (ayrıntılar için her sekmeye bakın). Depolama başlatıcı kapsayıcısından alınan günlükler, kod ve model verilerinin kapsayıcıya başarıyla indirilip indirilmediği hakkında bilgi sağlar. Dağıtım günlükleri hakkında daha fazla bilgi için bkz . Kapsayıcı günlüklerini alma.
İpucu
Şablonlar kaynakları dağıtmak için yararlı olsa da, kaynakları listelemek, göstermek veya çağırmak için kullanılamaz. Bu işlemleri gerçekleştirmek için Azure CLI, Python SDK veya stüdyoyu kullanın. Aşağıdaki kod Azure CLI'yi kullanır.
Kapsayıcıdan günlük çıktısını görmek için aşağıdaki CLI komutunu kullanın:
az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
Varsayılan olarak, günlükler çıkarım sunucusu kapsayıcısından çekilir. Depolama başlatıcı kapsayıcısından günlükleri görmek için bayrağını --container storage-initializer ekleyin. Dağıtım günlükleri hakkında daha fazla bilgi için bkz . Kapsayıcı günlüklerini alma.
Modelinizi kullanarak verileri puan eklemek için uç noktayı çağırma
Uç noktayı çağırmak invoke ve bazı verileri puanlarken istediğiniz komutu veya REST istemcisini kullanın:
az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
Uç noktada kimlik doğrulaması yapmak için kullanılan anahtarı alın:
İpucu
Kimlik doğrulama anahtarını ve izin veren Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/actionMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/actionözel bir role atayarak hangi Microsoft Entra güvenlik sorumlularının kimlik doğrulama anahtarını alabileceğini denetleyebilirsiniz. Çalışma alanlarında yetkilendirmeyi yönetme hakkında daha fazla bilgi için bkz . Azure Machine Learning çalışma alanına erişimi yönetme.
ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -o tsv --query primaryKey)
Verileri puanlama için curl kullanın.
SCORING_URI=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query scoring_uri)
curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --data @endpoints/online/model-1/sample-request.json
Kimlik doğrulama kimlik bilgilerini almak için ve get-credentials komutlarını kullandığınıza show dikkat edin. Ayrıca bayrağını --query yalnızca gerekli öznitelikleri filtrelemek için kullandığınıza da dikkat edin. Bayrak hakkında --query daha fazla bilgi edinmek için bkz . Azure CLI komut çıkışını sorgulama.
Çağırma günlüklerini görmek için yeniden çalıştırın get-logs .
Daha önce oluşturulan öğesini MLClient kullanarak uç noktaya bir tanıtıcı alın. Uç nokta daha sonra aşağıdaki parametrelerle invoke komutu kullanılarak çağrılabilir:
endpoint_name - Uç noktanın adı
request_file - İstek verilerini içeren dosya
deployment_name - Bir uç noktada test etmek için belirli dağıtımın adı
# test the blue deployment with some sample data
ml_client.online_endpoints.invoke(
endpoint_name=endpoint_name,
deployment_name="blue",
request_file="../model-1/sample-request.json",
)
Yönetilen çevrimiçi dağıtımınızı test etmek için uç noktanın ayrıntılar sayfasındaki Test sekmesini kullanın. Örnek girişi girin ve sonuçları görüntüleyin.
Uç noktanın ayrıntı sayfasında Test sekmesini seçin.
Test etmek istediğiniz dağıtımı seçmek için açılan listeyi kullanın.
Şablonlar kaynakları dağıtmak için yararlı olsa da, kaynakları listelemek, göstermek veya çağırmak için kullanılamaz. Bu işlemleri gerçekleştirmek için Azure CLI, Python SDK veya stüdyoyu kullanın. Aşağıdaki kod Azure CLI'yi kullanır.
Uç noktayı çağırmak invoke ve bazı verileri puanlarken istediğiniz komutu veya REST istemcisini kullanın:
az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file cli/endpoints/online/model-1/sample-request.json
Kodu, modeli veya ortamı güncelleştirmek istiyorsanız YAML dosyasını güncelleştirin ve komutunu çalıştırın az ml online-endpoint update .
Not
Örnek sayısını (dağıtımınızı ölçeklendirmek için) diğer model ayarlarıyla (kod, model veya ortam gibi) tek update bir komutta güncelleştirirseniz, önce ölçeklendirme işlemi gerçekleştirilir, ardından diğer güncelleştirmeler uygulanır. Bu işlemleri üretim ortamında ayrı ayrı gerçekleştirmek iyi bir uygulamadır.
YAML dosyasının belirtilmesi ZORUNLU DEĞİlDİ. Örneğin, belirli bir dağıtım için farklı eşzamanlılık ayarını test etmek istiyorsanız, gibi az ml online-deployment update -n blue -e my-endpoint --set request_settings.max_concurrent_requests_per_instance=4 environment_variables.WORKER_COUNT=4bir şey deneyebilirsiniz. Bu, tüm mevcut yapılandırmayı tutar ancak yalnızca belirtilen parametreleri güncelleştirir.
Uç nokta oluşturulduğunda veya güncelleştirildiğinde çalıştırılan işlevi değiştirdiğinizden init() , ileti Updated successfully günlüklerde yer alır. Çalıştırarak günlükleri alın:
az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
Komutu update yerel dağıtımlarla da çalışır. Bayrağıyla --local aynı az ml online-deployment update komutu kullanın.
Kodu, modeli veya ortamı güncelleştirmek istiyorsanız, yapılandırmayı güncelleştirin ve ardından bir dağıtım oluşturmak veya güncelleştirmek için 'nin online_deployments.begin_create_or_update yöntemini çalıştırınMLClient.
Not
Örnek sayısını (dağıtımınızı ölçeklendirmek için) diğer model ayarlarıyla (kod, model veya ortam gibi) tek begin_create_or_update bir yöntemde güncelleştirirseniz, önce ölçeklendirme işlemi gerçekleştirilir, ardından diğer güncelleştirmeler uygulanır. Bu işlemleri üretim ortamında ayrı ayrı gerçekleştirmek iyi bir uygulamadır.
Nasıl begin_create_or_update çalıştığını anlamak için:
Uç nokta oluşturulduğunda veya güncelleştirildiğinde çalıştırılan işlevi değiştirdiğinizden init() , ileti Updated successfully günlüklerde yer alır. Çalıştırarak günlükleri alın:
begin_create_or_update yöntemi yerel dağıtımlarla da çalışır. bayrağıyla local=True aynı yöntemi kullanın.
Şu anda stüdyo, yalnızca bir dağıtımın örnek sayısı için güncelleştirmeler yapmanıza olanak tanır. Örnek sayısını ayarlayarak tek bir dağıtımın ölçeğini büyütmek veya küçültmek için aşağıdaki yönergeleri kullanın:
Dağıtımın adının yanındaki düzenle simgesini (kalem simgesi) seçin.
Dağıtımla ilişkili örnek sayısını güncelleştirin. "Dağıtım ölçek türü" için Varsayılan veya Hedef Kullanım arasında seçim yapabilirsiniz.
Varsayılan'ı seçerseniz, Örnek sayısı için sayısal bir değer de belirtirsiniz.
Hedef Kullanım'ı seçerseniz, dağıtımı otomatik ölçeklendirme sırasında parametreler için kullanılacak değerleri belirtebilirsiniz.
Dağıtımınız için örnek sayılarını güncelleştirmeyi tamamlamak için Güncelleştir'i seçin.
Şu anda ARM şablonu kullanarak dağıtımı güncelleştirme seçeneği yoktur.
Not
Bu bölümdeki dağıtım güncelleştirmesi yerinde sıralı güncelleştirme örneğidir.
Yönetilen çevrimiçi uç nokta için dağıtım, bir kerede %20 düğümle yeni yapılandırmaya güncelleştirilir. Yani, dağıtımın 10 düğümü varsa, bir kerede 2 düğüm güncelleştirilir.
Kubernetes çevrimiçi uç noktası için sistem, yeni yapılandırmayla yinelemeli olarak yeni bir dağıtım örneği oluşturur ve eskisini siler.
Üretim kullanımı için, bir web hizmetini güncelleştirmek için daha güvenli bir alternatif sunan mavi-yeşil dağıtımı göz önünde bulundurmalısınız.
(İsteğe bağlı) Otomatik ölçeklendirmeyi yapılandırma
Otomatik ölçeklendirme uygulamanızdaki yükü işlemek için tam olarak doğru miktarda kaynak çalıştırır. Yönetilen çevrimiçi uç noktalar, Azure İzleyici otomatik ölçeklendirme özelliğiyle tümleştirme aracılığıyla otomatik ölçeklendirmeyi destekler. Otomatik ölçeklendirmeyi yapılandırmak için bkz . Çevrimiçi uç noktaları otomatik ölçeklendirme.
(İsteğe bağlı) Azure İzleyici kullanarak SLA'yı izleme
Ölçümleri görüntülemek ve SLA'nıza göre uyarılar ayarlamak için Çevrimiçi uç noktaları izleme başlığı altında açıklanan adımları tamamlayın.
(İsteğe bağlı) Log Analytics ile tümleştirme
get-logs CLI komutu veya get_logs SDK yöntemi, otomatik olarak seçilen bir örnekten yalnızca son birkaç yüz günlük satırını sağlar. Ancak Log Analytics, günlükleri dur türlü depolamak ve analiz etmek için bir yol sağlar. Günlüğü kullanma hakkında daha fazla bilgi için bkz . Çevrimiçi uç noktaları izleme.