Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
VAN TOEPASSING OP:
Azure CLI ml-extensie v1Python SDK azureml v1
Belangrijk
Dit artikel biedt informatie over het gebruik van de Azure Machine Learning SDK v1. SDK v1 is vanaf 31 maart 2025 afgeschaft. Ondersteuning voor het zal eindigen op 30 juni 2026. U kunt SDK v1 tot die datum installeren en gebruiken. Uw bestaande werkstromen met SDK v1 blijven werken na de einddatum van de ondersteuning. Ze kunnen echter worden blootgesteld aan beveiligingsrisico's of incompatibiliteit door wijzigingen in de architectuur van het product.
We raden aan dat u overstapt naar SDK v2 vóór 30 juni 2026. Zie Wat is Azure Machine Learning CLI en Python SDK v2? en de SDK v2-verwijzing voor meer informatie over SDK v2.
In dit artikel wordt beschreven hoe u een machine learning-model kunt profileren om te bepalen hoeveel CPU en geheugen u moet toewijzen voor het model bij het implementeren als een webservice.
Belangrijk
Dit artikel is van toepassing op CLI v1 en SDK v1. Deze profileringstechniek is niet beschikbaar voor v2 van CLI of SDK.
Belangrijk
Sommige Azure CLI-opdrachten in dit artikel gebruiken de azure-cli-mlextensie (of v1) voor Azure Machine Learning. Ondersteuning voor CLI v1 is beëindigd op 30 september 2025. Microsoft biedt geen technische ondersteuning of updates meer voor deze service. Uw bestaande werkstromen met CLI v1 blijven werken na de einddatum van de ondersteuning. Ze kunnen echter worden blootgesteld aan beveiligingsrisico's of incompatibiliteit door wijzigingen in de architectuur van het product.
U wordt aangeraden zo snel mogelijk over te stappen op de mlextensie of v2. Zie de Azure Machine Learning CLI-extensie en Python SDK v2 voor meer informatie over de v2-extensie.
Vereisten
In dit artikel wordt ervan uitgegaan dat u een model traint en registreert bij Azure Machine Learning. Zie de voorbeeldzelfstudie hier voor een voorbeeld van het trainen en registreren van een scikit-learn-model met Azure Machine Learning.
Beperkingen
- Profilering werkt niet wanneer azure Container Registry (ACR) voor uw werkruimte zich achter een virtueel netwerk bevindt.
De profiler uitvoeren
Nadat u uw model hebt geregistreerd en de andere onderdelen hebt voorbereid die nodig zijn voor de implementatie, kunt u de CPU en het geheugen bepalen dat de geïmplementeerde service nodig heeft. Profilering test de service die uw model uitvoert en retourneert informatie zoals het CPU-gebruik, geheugengebruik en reactielatentie. Het biedt ook een aanbeveling voor de CPU en het geheugen op basis van resourcegebruik.
Als u uw model wilt profilen, hebt u het volgende nodig:
- Een geregistreerd model.
- Een deductieconfiguratie op basis van uw invoerscript en definitie van de deductieomgeving.
- Een tabellaire gegevensset met één kolom, waarbij elke rij een tekenreeks bevat die voorbeeldaanvraaggegevens voorstelt.
Belangrijk
Azure Machine Learning biedt alleen ondersteuning voor het profileren van services die verwachten dat hun aanvraaggegevens een tekenreeks zijn, bijvoorbeeld geserialiseerde json, tekst, geserialiseerde tekenreeksafbeelding, enzovoort. De inhoud van elke rij van de gegevensset (tekenreeks) wordt in de hoofdtekst van de HTTP-aanvraag geplaatst en verzonden naar de service waarin het model wordt ingekapseld voor scoren.
Belangrijk
We ondersteunen alleen profilering tot 2 CPU's in de regio ChinaEast2 en USGovArizona.
Hier volgt een voorbeeld van hoe u een invoergegevensset kunt maken om een service te profilen die verwacht dat de binnenkomende aanvraaggegevens geserialiseerde json bevatten. In dit geval hebben we een gegevensset gemaakt op basis van 100 exemplaren van dezelfde aanvraaggegevensinhoud. In praktijkscenario's raden we u aan om grotere gegevenssets te gebruiken die verschillende invoer bevatten, met name als het resourcegebruik/gedrag van uw model afhankelijk is van invoer.
VAN TOEPASSING OP:
Azure Machine Learning SDK v1 voor 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)
Zodra de gegevensset met voorbeeldaanvraaggegevens gereed is, maakt u een deductieconfiguratie. De deductieconfiguratie is gebaseerd op de score.py en de omgevingsdefinitie. In het volgende voorbeeld ziet u hoe u de deductieconfiguratie maakt en profilering uitvoert:
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()
VAN TOEPASSING OP:
Azure CLI ml-extensie v1
De volgende opdracht laat zien hoe u een model kunt profilen met behulp van de 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>
Aanbeveling
Als u de informatie wilt behouden die wordt geretourneerd door profilering, gebruikt u tags of eigenschappen voor het model. Met behulp van tags of eigenschappen worden de gegevens opgeslagen met het model in het modelregister. In de volgende voorbeelden ziet u hoe u een nieuwe tag toevoegt die de requestedCpu en requestedMemoryInGb informatie bevat:
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
Volgende stappen
- Problemen met een mislukte implementatie oplossen
- Implementeren in Azure Kubernetes Service
- Clienttoepassingen maken om webservices te gebruiken
- Webservice bijwerken
- Een model implementeren met behulp van een aangepaste Docker-installatiekopieën
- TLS gebruiken om een webservice te beveiligen via Azure Machine Learning
- Uw Azure Machine Learning-modellen bewaken met Application Insights
- Gegevens verzamelen voor modellen in productie
- Gebeurteniswaarschuwingen en triggers maken voor modelimplementaties