Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье
С помощью пакета SDK или CLI версии 1 можно развертывать модели в ACI или AKS в виде веб-служб. Существующие развертывания моделей версии 1 и веб-службы будут продолжать работать так же, как они есть, но использование пакета SDK/CLI версии 1 для развертывания моделей в ACI или AKS в качестве веб-служб теперь считается устаревшим. Для новых развертываний моделей рекомендуется обновить до версии 2.
В версии 2 мы предлагаем управляемые конечные точки или конечные точки Kubernetes. Сравнение версий 1 и 2 см. в разделе "Конечные точки" и "Развертывание".
Существует несколько воронок развертывания, таких как управляемые сетевые конечные точки, сетевые конечные точки Kubernetes (включая Служба Azure Kubernetes и Kubernetes с поддержкой Arc) в версии 2, а также веб-службы Kubernetes (ACI) Экземпляры контейнеров Azure и Веб-службы Kubernetes (AKS) версии 1. В этой статье мы рассмотрим сравнение развертывания веб-служб ACI (версии 1) и управляемых сетевых конечных точек (версии 2).
Примеры в этой статье показано, как:
- Развертывание модели в Azure
- Оценка с помощью конечной точки
- Удаление веб-службы или конечной точки
- Пакет SDK версии 1
Настройте модель, среду и скрипт оценки:
# configure a model. example for registering a model from azureml.core.model import Model model = Model.register(ws, model_name="bidaf_onnx", model_path="./model.onnx") # configure an environment from azureml.core import Environment env = Environment(name='myenv') python_packages = ['nltk', 'numpy', 'onnxruntime'] for package in python_packages: env.python.conda_dependencies.add_pip_package(package) # configure an inference configuration with a scoring script from azureml.core.model import InferenceConfig inference_config = InferenceConfig( environment=env, source_directory="./source_dir", entry_script="./score.py", )
Настройте и разверните веб-службу ACI:
from azureml.core.webservice import AciWebservice # defince compute resources for ACI deployment_config = AciWebservice.deploy_configuration( cpu_cores=0.5, memory_gb=1, auth_enabled=True ) # define an ACI webservice service = Model.deploy( ws, "myservice", [model], inference_config, deployment_config, overwrite=True, ) # create the service service.wait_for_deployment(show_output=True)
Дополнительные сведения о регистрации моделей см. в разделе "Регистрация модели" из локального файла.
Пакет SDK версии 2
Настройте модель, среду и скрипт оценки:
from azure.ai.ml.entities import Model # configure a model model = Model(path="../model-1/model/sklearn_regression_model.pkl") # configure an environment from azure.ai.ml.entities import Environment env = Environment( conda_file="../model-1/environment/conda.yml", image="mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04:20210727.v1", ) # configure an inference configuration with a scoring script from azure.ai.ml.entities import CodeConfiguration code_config = CodeConfiguration( code="../model-1/onlinescoring", scoring_script="score.py" )
Настройте и создайте конечную точку в Сети:
import datetime from azure.ai.ml.entities import ManagedOnlineEndpoint # create a unique endpoint name with current datetime to avoid conflicts online_endpoint_name = "endpoint-" + datetime.datetime.now().strftime("%m%d%H%M%f") # define an online endpoint endpoint = ManagedOnlineEndpoint( name=online_endpoint_name, description="this is a sample online endpoint", auth_mode="key", tags={"foo": "bar"}, ) # create the endpoint: ml_client.begin_create_or_update(endpoint)
Настройте и создайте сетевое развертывание:
from azure.ai.ml.entities import ManagedOnlineDeployment # define a deployment blue_deployment = ManagedOnlineDeployment( name="blue", endpoint_name=online_endpoint_name, model=model, environment=env, code_configuration=code_config, instance_type="Standard_F2s_v2", instance_count=1, ) # create the deployment: ml_client.begin_create_or_update(blue_deployment) # blue deployment takes 100 traffic endpoint.traffic = {"blue": 100} ml_client.begin_create_or_update(endpoint)
Дополнительные сведения о концепциях конечных точек и развертываний см. в статье "Что такое сетевые конечные точки?
Пакет SDK версии 1
import json data = { "query": "What color is the fox", "context": "The quick brown fox jumped over the lazy dog.", } data = json.dumps(data) predictions = service.run(input_data=data) print(predictions)
Пакет SDK версии 2
# test the endpoint (the request will route to blue deployment as set above) ml_client.online_endpoints.invoke( endpoint_name=online_endpoint_name, request_file="../model-1/sample-request.json", ) # test the specific (blue) deployment ml_client.online_endpoints.invoke( endpoint_name=online_endpoint_name, deployment_name="blue", request_file="../model-1/sample-request.json", )
Пакет SDK версии 1
service.delete()
Пакет SDK версии 2
ml_client.online_endpoints.begin_delete(name=online_endpoint_name)
Функции пакета SDK версии 1 | Грубое сопоставление в пакете SDK версии 2 |
---|---|
класс azureml.core.model.Model.Model | класс azure.ai.ml.entities.Model |
класс azureml.core.Environment | класс azure.ai.ml.entities.Environment |
класс azureml.core.model.InferenceConfig | класс azure.ai.ml.entities.CodeConfiguration |
класс azureml.core.webservice.AciWebservice | класс azure.ai.ml.entities.OnlineDeployment (и класс azure.ai.ml.entities.ManagedOnlineEndpoint) |
Model.deploy или Webservice.deploy | ml_client.begin_create_or_update(online_deployment) |
Webservice.run | ml_client.online_endpoints.invoke |
Webservice.delete | ml_client.online_endpoints.delete |
Дополнительные сведения см. в разделе
Документация версии 2.
- Что такое конечные точки?
- Развертывание моделей машинного обучения для управляемой конечной точки в Интернете с помощью пакета SDK для Python версии 2
Документация версии 1: