Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR:
Azure CLI ml-tillägget v1Python SDK azureml v1
Viktigt!
Den här artikeln innehåller information om hur du använder Azure Machine Learning SDK v1. SDK v1 är inaktuell från och med den 31 mars 2025. Stödet för det upphör den 30 juni 2026. Du kan installera och använda SDK v1 fram till det datumet. Dina befintliga arbetsflöden med SDK v1 fortsätter att fungera efter supportdatumet. De kan dock utsättas för säkerhetsrisker eller förändringar som bryter kompatibiliteten vid arkitektoniska förändringar i produkten.
Vi rekommenderar att du övergår till SDK v2 före den 30 juni 2026. Mer information om SDK v2 finns i Vad är Azure Machine Learning CLI och Python SDK v2? och SDK v2-referensen.
Den här artikeln visar hur du profilerar en maskininlärning till modell för att avgöra hur mycket processor och minne du behöver allokera för modellen när du distribuerar den som en webbtjänst.
Viktigt!
Den här artikeln gäller för CLI v1 och SDK v1. Den här profileringstekniken är inte tillgänglig för v2 av varken CLI eller SDK.
Viktigt!
Viktigt!
Några av Azure CLI-kommandona i den här artikeln använder azure-cli-mltillägget , eller v1, för Azure Machine Learning. Stödet för CLI v1 upphörde den 30 september 2025. Microsoft tillhandahåller inte längre teknisk support eller uppdateringar för den här tjänsten. Dina befintliga arbetsflöden med CLI v1 fortsätter att fungera efter supportdatumet. De kan dock utsättas för säkerhetsrisker eller förändringar som bryter kompatibiliteten vid arkitektoniska förändringar i produkten.
Vi rekommenderar att du övergår till mltillägget , eller v2, så snart som möjligt. Mer information om v2-tillägget finns i Azure Machine Learning CLI-tillägget och Python SDK v2.
Förutsättningar
Den här artikeln förutsätter att du tränar och registrerar en modell med Azure Machine Learning. I exempelguiden här finns ett exempel på hur du tränar och registrerar en scikit-learn-modell med Azure Machine Learning.
Begränsningar
- Profilering fungerar inte när Azure Container Registry (ACR) för din arbetsyta ligger bakom ett virtuellt nätverk.
Kör profileraren
När du har registrerat din modell och förberett de andra komponenterna som behövs för distributionen kan du fastställa processorn och minnet som den distribuerade tjänsten behöver. Profilering testar tjänsten som kör din modell och returnerar information som cpu-användning, minnesanvändning och svarstid. Det ger också en rekommendation för processorn och minnet baserat på resursanvändning.
För att profilera din modell behöver du:
- En registrerad modell.
- En slutsatsdragningskonfiguration som baseras på startskriptet och definitionen för slutsatsdragningsmiljön.
- En tabelldatauppsättning med en kolumn, där varje rad innehåller en sträng som representerar exempelbegärandedata.
Viktigt!
Azure Machine Learning stöder endast profilering av tjänster som förväntar sig att deras begärandedata ska vara en sträng, till exempel sträng serialiserad json, text, sträng serialiserad bild osv. Innehållet i varje rad i datamängden (strängen) placeras i brödtexten i HTTP-begäran och skickas till tjänsten som kapslar in modellen för bedömning.
Viktigt!
Vi stöder endast profilering av upp till två processorer i regionen ChinaEast2 och USGovArizona.
Följande är ett exempel på hur du kan konstruera en indatauppsättning för att profilera en tjänst som förväntar sig att inkommande begärandedata ska innehålla serialiserad json. I det här fallet skapade vi en datauppsättning baserad på 100 instanser av samma innehåll för begärandedata. I verkliga scenarier föreslår vi att du använder större datamängder som innehåller olika indata, särskilt om din modellresursanvändning/beteende är beroende av indata.
GÄLLER FÖR:
Azure Machine Learning SDK v1 för Python
import json
from azureml.core import Datastore
from azureml.core.dataset import Dataset
from azureml.data import dataset_type_definitions
input_json = {'data': [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]]}
# create a string that can be utf-8 encoded and
# put in the body of the request
serialized_input_json = json.dumps(input_json)
dataset_content = []
for i in range(100):
dataset_content.append(serialized_input_json)
dataset_content = '\n'.join(dataset_content)
file_name = 'sample_request_data.txt'
f = open(file_name, 'w')
f.write(dataset_content)
f.close()
# upload the txt file created above to the Datastore and create a dataset from it
data_store = Datastore.get_default(ws)
data_store.upload_files(['./' + file_name], target_path='sample_request_data')
datastore_path = [(data_store, 'sample_request_data' +'/' + file_name)]
sample_request_data = Dataset.Tabular.from_delimited_files(
datastore_path, separator='\n',
infer_column_types=True,
header=dataset_type_definitions.PromoteHeadersBehavior.NO_HEADERS)
sample_request_data = sample_request_data.register(workspace=ws,
name='sample_request_data',
create_new_version=True)
När du har datauppsättningen som innehåller exempelbegärandedata redo skapar du en slutsatsdragningskonfiguration. Inferenskonfigurationen baseras på score.py och miljödefinitionen. I följande exempel visas hur du skapar inferenskonfigurationen och kör profilering:
from azureml.core.model import InferenceConfig, Model
from azureml.core.dataset import Dataset
model = Model(ws, id=model_id)
inference_config = InferenceConfig(entry_script='path-to-score.py',
environment=myenv)
input_dataset = Dataset.get_by_name(workspace=ws, name='sample_request_data')
profile = Model.profile(ws,
'unique_name',
[model],
inference_config,
input_dataset=input_dataset)
profile.wait_for_completion(True)
# see the result
details = profile.get_details()
GÄLLER FÖR:
Azure CLI ml-tillägget v1
Följande kommando visar hur du profilerar en modell med hjälp av CLI:
az ml model profile -g <resource-group-name> -w <workspace-name> --inference-config-file <path-to-inf-config.json> -m <model-id> --idi <input-dataset-id> -n <unique-name>
Dricks
Om du vill spara den information som returneras genom profilering använder du taggar eller egenskaper för modellen. Med hjälp av taggar eller egenskaper lagras data med modellen i modellregistret. Följande exempel visar hur du lägger till en ny tagg som innehåller requestedCpu informationen och requestedMemoryInGb :
model.add_tags({'requestedCpu': details['requestedCpu'],
'requestedMemoryInGb': details['requestedMemoryInGb']})
az ml model profile -g <resource-group-name> -w <workspace-name> --i <model-id> --add-tag requestedCpu=1 --add-tag requestedMemoryInGb=0.5
Nästa steg
- Felsöka en misslyckad distribution
- Distribuera till Azure Kubernetes Service
- Skapa klientprogram för att använda webbtjänster
- Uppdatera webbtjänsten
- Distribuera en modell med en anpassad Docker-avbildning
- Använda TLS för att skydda en webbtjänst via Azure Machine Learning
- Övervaka dina Azure Machine Learning-modeller med Application Insights
- Samla in data för modeller i produktion
- Skapa händelseaviseringar och utlösare för modelldistributioner