Aracılığıyla paylaş


Modeli yerel olarak dağıtma

Azure Machine Learning işlem örneğinizde bir modeli web hizmeti olarak dağıtmak için Azure Machine Learning'i kullanmayı öğrenin. Aşağıdaki koşullardan biri doğruysa işlem örneklerini kullanın:

  • Modelinizi hızla dağıtmanız ve doğrulamanız gerekir.
  • Geliştirme aşamasında olan bir modeli test ediyorsunuz.

Bahşiş

Bir işlem örneğindeki Jupyter Not Defteri'nden aynı VM'de bulunan bir web hizmetine model dağıtmak yerel bir dağıtımdır. Bu durumda, 'yerel' bilgisayar işlem örneğidir.

Dekont

Azure Machine Learning Uç Noktaları (v2), geliştirilmiş, daha basit bir dağıtım deneyimi sağlar. Uç noktalar hem gerçek zamanlı hem de toplu çıkarım senaryolarını destekler. Uç noktalar, işlem türleri arasında model dağıtımlarını çağırmak ve yönetmek için birleşik bir arabirim sağlar. Bkz. Azure Machine Learning uç noktaları nelerdir?.

Ön koşullar

  • İşlem örneğinin çalıştığı bir Azure Machine Learning çalışma alanı. Daha fazla bilgi için bkz . Başlamak için kaynak oluşturma.

İşlem örneklerine dağıtma

İşlem örneğinize yerel dağıtımları gösteren örnek bir not defteri eklenir. Not defterini yüklemek ve modeli VM'de web hizmeti olarak dağıtmak için aşağıdaki adımları kullanın:

  1. Azure Machine Learning stüdyosu "Not Defterleri" öğesini seçin ve ardından "Örnek not defterleri" bölümünden how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.ipynb öğesini seçin. Bu not defterini kullanıcı klasörünüzde klonlayın.

  2. 1. adımda kopyalanmış not defterini bulun, not defterini çalıştırmak için bir İşlem Örneği seçin veya oluşturun.

    Screenshot of the running local service on notebook

  3. Not defteri, hizmetin üzerinde çalıştığı URL'yi ve bağlantı noktasını görüntüler. Örneğin, https://localhost:6789. Bağlantı noktasını görüntülemek için içeren print('Local service port: {}'.format(local_service.port)) hücreyi de çalıştırabilirsiniz.

    Screenshot of the running local service port

  4. Hizmeti bir işlem örneğinden test etmek için URL'yi https://localhost:<local_service.port> kullanın. Uzak istemciden test etmek için işlem örneğinde çalışan hizmetin genel URL'sini alın. Genel URL aşağıdaki formülü kullanarak belirlenebilir;

    • Not Defteri VM'si: https://<vm_name>-<local_service_port>.<azure_region_of_workspace>.notebooks.azureml.net/score.
    • İşlem örneği: https://<vm_name>-<local_service_port>.<azure_region_of_workspace>.instances.azureml.net/score.

    Örneğin,

    • Not Defteri VM'si: https://vm-name-6789.northcentralus.notebooks.azureml.net/score
    • İşlem örneği: https://vm-name-6789.northcentralus.instances.azureml.net/score

Hizmeti test etme

Çalışan hizmete örnek veriler göndermek için aşağıdaki kodu kullanın. değerini service_url önceki adımdaki URL'si ile değiştirin:

Dekont

İşlem örneğindeki bir dağıtımda kimlik doğrulaması yapılırken, kimlik doğrulaması Microsoft Entra Kimliği kullanılarak yapılır. Örnek koddaki çağrısı interactive_auth.get_authentication_header() , Microsoft Entra Id kullanarak kimliğinizi doğrular ve daha sonra işlem örneğindeki hizmette kimlik doğrulaması yapmak için kullanılabilecek bir üst bilgi döndürür. Daha fazla bilgi için bkz . Azure Machine Learning kaynakları ve iş akışları için kimlik doğrulamasını ayarlama.

Azure Kubernetes Service veya Azure Container Instances'ta bir dağıtımda kimlik doğrulaması yaparken farklı bir kimlik doğrulama yöntemi kullanılır. Hakkında daha fazla bilgi için bkz . Web hizmetleri olarak dağıtılan Azure Machine modelleri için kimlik doğrulamasını yapılandırma.

import requests
import json
from azureml.core.authentication import InteractiveLoginAuthentication

# Get a token to authenticate to the compute instance from remote
interactive_auth = InteractiveLoginAuthentication()
auth_header = interactive_auth.get_authentication_header()

# Create and submit a request using the auth header
headers = auth_header
# Add content type header
headers.update({'Content-Type':'application/json'})

# Sample data to send to the service
test_sample = json.dumps({'data': [
    [1,2,3,4,5,6,7,8,9,10],
    [10,9,8,7,6,5,4,3,2,1]
]})
test_sample = bytes(test_sample,encoding = 'utf8')

# Replace with the URL for your compute instance, as determined from the previous section
service_url = "https://vm-name-6789.northcentralus.notebooks.azureml.net/score"
# for a compute instance, the url would be https://vm-name-6789.northcentralus.instances.azureml.net/score
resp = requests.post(service_url, test_sample, headers=headers)
print("prediction:", resp.text)

Sonraki adımlar