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 örneği çalışan 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:
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.
1. adımda kopyalanan not defterini bulun, not defterini çalıştırmak için bir İşlem Örneği seçin veya oluşturun.
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çerenprint('Local service port: {}'.format(local_service.port))
hücreyi de çalıştırabilirsiniz.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
- Not Defteri VM'si:
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
- Özel Docker görüntüsü kullanarak model dağıtma
- Dağıtım sorunlarını giderme
- TLS kullanarak Azure Machine Learning aracılığıyla web hizmetinin güvenliğini sağlama
- Web hizmeti olarak dağıtılan ml modelini kullanma
- Application Insights ile Azure Machine Learning modellerinizi izleme
- Üretimde modeller için veri toplama