Lokalne wdrażanie modelu
Dowiedz się, jak za pomocą usługi Azure Machine Learning wdrożyć model jako usługę internetową w wystąpieniu obliczeniowym usługi Azure Machine Learning. Użyj wystąpień obliczeniowych, jeśli spełniony jest jeden z następujących warunków:
- Musisz szybko wdrożyć i zweryfikować model.
- Testujesz model, który jest opracowywany.
Napiwek
Wdrażanie modelu z notesu Jupyter Notebook w wystąpieniu obliczeniowym w usłudze internetowej na tej samej maszynie wirtualnej jest wdrożeniem lokalnym. W takim przypadku komputer "lokalny" jest wystąpieniem obliczeniowym.
Uwaga
Punkty końcowe usługi Azure Machine Learning (wersja 2) zapewniają ulepszone, prostsze środowisko wdrażania. Punkty końcowe obsługują scenariusze wnioskowania w czasie rzeczywistym i wsadowego. Punkty końcowe zapewniają ujednolicony interfejs do wywoływania wdrożeń modeli i zarządzania nimi w różnych typach obliczeniowych. Zobacz Co to są punkty końcowe usługi Azure Machine Learning?.
Wymagania wstępne
- Obszar roboczy usługi Azure Machine Learning z uruchomionym wystąpieniem obliczeniowym. Aby uzyskać więcej informacji, zobacz Tworzenie zasobów, aby rozpocząć pracę.
Wdrażanie w wystąpieniach obliczeniowych
Przykładowy notes, który demonstruje wdrożenia lokalne, jest uwzględniony w wystąpieniu obliczeniowym. Wykonaj następujące kroki, aby załadować notes i wdrożyć model jako usługę internetową na maszynie wirtualnej:
W usłudze Azure Machine Learning Studio wybierz pozycję "Notesy", a następnie wybierz pozycję how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.ipynb w obszarze "Przykładowe notesy". Sklonuj ten notes do folderu użytkownika.
Znajdź notes sklonowany w kroku 1, wybierz lub utwórz wystąpienie obliczeniowe, aby uruchomić notes.
W notesie zostanie wyświetlony adres URL i port, na którym działa usługa. Na przykład
https://localhost:6789
. Możesz również uruchomić komórkę zawierającąprint('Local service port: {}'.format(local_service.port))
, aby wyświetlić port.Aby przetestować usługę z wystąpienia obliczeniowego, użyj
https://localhost:<local_service.port>
adresu URL. Aby przetestować z klienta zdalnego, uzyskaj publiczny adres URL usługi uruchomionej w wystąpieniu obliczeniowym. Publiczny adres URL można określić przy użyciu następującej formuły;- Maszyna wirtualna notesu:
https://<vm_name>-<local_service_port>.<azure_region_of_workspace>.notebooks.azureml.net/score
. - Wystąpienie obliczeniowe:
https://<vm_name>-<local_service_port>.<azure_region_of_workspace>.instances.azureml.net/score
.
Na przykład:
- Maszyna wirtualna notesu:
https://vm-name-6789.northcentralus.notebooks.azureml.net/score
- Wystąpienie obliczeniowe:
https://vm-name-6789.northcentralus.instances.azureml.net/score
- Maszyna wirtualna notesu:
Testowanie usługi
Aby przesłać przykładowe dane do uruchomionej usługi, użyj następującego kodu. Zastąp wartość service_url
adresem URL z poprzedniego kroku:
Uwaga
Podczas uwierzytelniania we wdrożeniu w wystąpieniu obliczeniowym uwierzytelnianie jest wykonywane przy użyciu identyfikatora Entra firmy Microsoft. Wywołanie metody interactive_auth.get_authentication_header()
w przykładowym kodzie uwierzytelnia Użytkownika przy użyciu identyfikatora Entra firmy Microsoft i zwraca nagłówek, który następnie może służyć do uwierzytelniania w usłudze w wystąpieniu obliczeniowym. Aby uzyskać więcej informacji, zobacz Konfigurowanie uwierzytelniania dla zasobów i przepływów pracy usługi Azure Machine Learning.
Podczas uwierzytelniania we wdrożeniu w usłudze Azure Kubernetes Service lub Azure Container Instances jest używana inna metoda uwierzytelniania. Aby uzyskać więcej informacji, zobacz Konfigurowanie uwierzytelniania dla modeli maszyn platformy Azure wdrożonych jako usługi internetowe.
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)
Następne kroki
- Jak wdrożyć model przy użyciu niestandardowego obrazu platformy Docker
- Rozwiązywanie problemów z wdrażaniem
- Zabezpieczanie usługi internetowej za pomocą usługi Azure Machine Learning przy użyciu protokołu TLS
- Korzystanie z modelu uczenia maszynowego wdrożonego jako usługa internetowa
- Monitorowanie modeli usługi Azure Machine Learning za pomocą usługi Application Insights
- Zbieranie danych dla modeli w środowisku produkcyjnym