Sdílet prostřednictvím


Místní nasazení modelu

Zjistěte, jak pomocí služby Azure Machine Učení nasadit model jako webovou službu na výpočetní instanci Azure Machine Učení. Pokud platí jedna z následujících podmínek, použijte výpočetní instance:

  • Potřebujete rychle nasadit a ověřit model.
  • Testujete model, který je ve vývoji.

Tip

Nasazení modelu z poznámkového bloku Jupyter do webové služby na stejném virtuálním počítači je místní nasazení. V tomto případě je výpočetní instancí "místní" počítač.

Poznámka:

Koncové body služby Azure Machine Učení (v2) poskytují vylepšené a jednodušší prostředí pro nasazení. Koncové body podporují scénáře odvození v reálném čase i dávkového odvozu. Koncové body poskytují jednotné rozhraní pro vyvolání a správu nasazení modelu napříč typy výpočetních prostředků. Podívejte se, co jsou koncové body azure machine Učení?

Předpoklady

Nasazení do výpočetních instancí

Ukázkový poznámkový blok, který ukazuje místní nasazení, je součástí výpočetní instance. Pomocí následujících kroků načtěte poznámkový blok a nasaďte model jako webovou službu na virtuálním počítači:

  1. V studio Azure Machine Learning vyberte Poznámkové bloky a pak v části Ukázkové poznámkové bloky vyberte how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.ipynb. Naklonujte tento poznámkový blok do složky uživatele.

  2. Vyhledejte naklonovaný poznámkový blok v kroku 1 a zvolte nebo vytvořte výpočetní instanci, která poznámkový blok spustí.

    Screenshot of the running local service on notebook

  3. V poznámkovém bloku se zobrazí adresa URL a port, na kterém je služba spuštěná. Například, https://localhost:6789. Můžete také spustit buňku obsahující print('Local service port: {}'.format(local_service.port)) k zobrazení portu.

    Screenshot of the running local service port

  4. K otestování služby z výpočetní instance použijte https://localhost:<local_service.port> adresu URL. Pokud chcete testovat ze vzdáleného klienta, získejte veřejnou adresu URL služby spuštěné ve výpočetní instanci. Veřejnou adresu URL lze určit pomocí následujícího vzorce;

    • Virtuální počítač poznámkového bloku: https://<vm_name>-<local_service_port>.<azure_region_of_workspace>.notebooks.azureml.net/score.
    • Výpočetní instance: https://<vm_name>-<local_service_port>.<azure_region_of_workspace>.instances.azureml.net/score.

    Příklad:

    • Virtuální počítač poznámkového bloku: https://vm-name-6789.northcentralus.notebooks.azureml.net/score
    • Výpočetní instance: https://vm-name-6789.northcentralus.instances.azureml.net/score

Testování služby

K odeslání ukázkových dat do spuštěné služby použijte následující kód. Nahraďte hodnotu service_url adresou URL z předchozího kroku:

Poznámka:

Při ověřování nasazení ve výpočetní instanci se ověřování provádí pomocí ID Microsoft Entra. Volání interactive_auth.get_authentication_header() v ukázkovém kódu vás ověří pomocí ID Microsoft Entra a vrátí hlavičku, která se pak dá použít k ověření ve službě ve výpočetní instanci. Další informace najdete v tématu Nastavení ověřování pro prostředky a pracovní postupy azure machine Učení.

Při ověřování nasazení ve službě Azure Kubernetes Service nebo Azure Container Instances se použije jiná metoda ověřování. Další informace najdete v tématu Konfigurace ověřování pro modely počítačů Azure nasazené jako webové služby.

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)

Další kroky