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.

İpucu

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

Not

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ı nedir?.

Önkoşullar

İş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" seçeneğini belirleyin ve ardından "Örnek not defterleri" bölümünden nasıl yapılır-kullanılır-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 kopyalanan not defterini bulun, not defterini çalıştırmak için bir İşlem Örneği seçin veya oluşturun.

    Not defterinde çalışan yerel hizmetin ekran görüntüsü

  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.

    Çalışan yerel hizmet bağlantı noktasının ekran görüntüsü

  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:

Not

İşlem örneğindeki bir dağıtımda kimlik doğrulaması yapılırken, kimlik doğrulaması Azure Active Directory kullanılarak yapılır. Örnek koddaki çağrısı interactive_auth.get_authentication_header() AAD kullanarak kimliğinizi doğrular ve daha sonra işlem örneğinde 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 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