Udostępnij za pośrednictwem


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 w fazie projektowania.

Porada

Wdrażanie modelu z Jupyter Notebook w wystąpieniu obliczeniowym w usłudze internetowej na tej samej maszynie wirtualnej jest wdrożeniem lokalnym. W tym 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 wsadowe. Punkty końcowe zapewniają ujednolicony interfejs do wywoływania wdrożeń modelu i zarządzania nimi w różnych typach obliczeniowych. Zobacz Co to są punkty końcowe usługi Azure Machine Learning?.

Wymagania wstępne

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:

  1. W 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.

  2. Znajdź notes sklonowany w kroku 1, wybierz lub utwórz wystąpienie obliczeniowe, aby uruchomić notes.

    Zrzut ekranu przedstawiający uruchomioną usługę lokalną w notesie

  3. W notesie zostanie wyświetlony adres URL i port, na którym jest uruchomiona 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.

    Zrzut ekranu przedstawiający uruchomiony port usługi lokalnej

  4. 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

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 usługi Azure Active Directory. Wywołanie metody interactive_auth.get_authentication_header() w przykładowym kodzie uwierzytelnia Użytkownika przy użyciu usługi AAD i zwraca nagłówek, którego następnie można 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 Azure Kubernetes Service lub Azure Container Instances jest używana inna metoda uwierzytelniania. Aby uzyskać więcej informacji na ten temat, zobacz Configure authentication for Azure Machine models deployed as web services (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