Freigeben über


Erstellen eines Profils Ihres Modells zur Bestimmung der Ressourcenverwendung

GILT FÜR:Azure CLI-ML-Erweiterungv1Python SDK azureml v1

Wichtig

Dieser Artikel enthält Informationen zur Verwendung des Azure Machine Learning SDK v1. SDK v1 ist ab dem 31. März 2025 veraltet. Der Support für sie endet am 30. Juni 2026. Sie können SDK v1 bis zu diesem Datum installieren und verwenden. Ihre vorhandenen Workflows mit SDK v1 funktionieren weiterhin nach dem Enddatum des Supports. Sie können jedoch Sicherheitsrisiken oder Breaking Changes im Falle von Architekturänderungen im Produkt ausgesetzt sein.

Es wird empfohlen, vor dem 30. Juni 2026 zum SDK v2 zu wechseln. Weitere Informationen zu SDK v2 finden Sie unter Was ist Azure Machine Learning CLI und Python SDK v2? und die SDK v2-Referenz.

In diesem Artikel wird gezeigt, wie Sie ein Machine Learning modellieren, um zu bestimmen, wie viel CPU und Arbeitsspeicher Sie für das Modell zuordnen müssen, wenn Sie es als Webdienst bereitstellen.

Wichtig

Dieser Artikel gilt für CLI v1 und SDK v1. Diese Profilerstellungsmethode ist für v2 von CLI oder SDK nicht verfügbar.

Wichtig

Einige Azure CLI-Befehle in diesem Artikel verwenden die Erweiterung azure-cli-ml oder v1 für Azure Machine Learning. Der Support für CLI v1 endete am 30. September 2025. Microsoft stellt keinen technischen Support oder keine Updates für diesen Dienst mehr bereit. Ihre vorhandenen Workflows, die CLI v1 verwenden, funktionieren weiterhin nach dem Enddatum des Supports. Sie können jedoch Sicherheitsrisiken oder Breaking Changes im Falle von Architekturänderungen im Produkt ausgesetzt sein.

Es wird empfohlen, so bald wie möglich auf die mlErweiterung bzw. v2 umzusteigen. Weitere Informationen zur v2-Erweiterung finden Sie unter Azure Machine Learning CLI-Erweiterung und Python SDK v2.

Voraussetzungen

In diesem Artikel wird davon ausgegangen, dass Sie ein Modell bei Azure Machine Learning trainieren und registrieren. Ein Beispiel zum Trainieren und Registrieren eines Scikit-learn-Modells mit Azure Machine Learning finden Sie in diesem Beispieltutorial.

Einschränkungen

  • Die Profilerstellung funktioniert nicht, wenn sich die Azure Container Registry (ACR) für Ihren Arbeitsbereich hinter einem virtuellen Netzwerk befindet.

Ausführen des Profilers

Nachdem Sie Ihr Modell registriert und die anderen Komponenten vorbereitet haben, die für die Bereitstellung erforderlich sind, können Sie die CPU und den Arbeitsspeicher ermitteln, den der bereitgestellte Dienst benötigt. Die Profilerstellung testet den Dienst, der Ihr Modell ausführt, und gibt Informationen wie CPU-Auslastung, Speicherauslastung und Antwortlatenz zurück. Sie bietet auch eine Empfehlung für die CPU und den Speicher auf der Grundlage der Ressourcenverwendung.

Um Ihr Modell zu profilieren, benötigen Sie Folgendes:

  • Ein registriertes Modell.
  • Eine Rückschlusskonfiguration basierend auf Ihrem Eingabeskript und der Definition der Rückschlussumgebung.
  • Ein einspaltiges Tabellendataset, bei dem jede Zeile eine Zeichenfolge enthält, die Beispielanforderungsdaten darstellt.

Wichtig

Azure Machine Learning unterstützt nur die Profilerstellung von Diensten, die erwarten, dass ihre Anforderungsdaten eine Zeichenfolge sind, z. B. Zeichenfolge serialisiert json, Text, serialisiertes Zeichenfolgenbild usw. Der Inhalt jeder Zeile des Datasets (Zeichenfolge) wird in den Textkörper der HTTP-Anforderung eingefügt und an den Dienst gesendet, der das Modell zur Bewertung kapselt.

Wichtig

Wir unterstützen nur die Profilerstellung von bis zu 2 CPUs in den Regionen „China, Osten 2“ und „US Gov Arizona“.

Im Folgenden finden Sie ein Beispiel dafür, wie Sie ein Eingabedatenset erstellen können, um einen Dienst zu profilieren, der erwartet, dass die eingehenden Anforderungsdaten serialisierte JSON enthalten. In diesem Fall haben Sie ein Dataset erstellt, das auf 100 Instanzen desselben Anforderungsdateninhalts basiert. In realen Szenarien wird empfohlen, dass Sie größere Datasets mit verschiedenen Eingaben verwenden, insbesondere wenn die Nutzung bzw. das Verhalten Ihrer Modellressourcen von Eingaben abhängig ist.

GILT 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)

Sobald Sie das Dataset mit den Beispielanforderungsdaten bereit haben, erstellen Sie eine Rückschlusskonfiguration. Die Rückschlusskonfiguration basiert auf der „score.py“ und der Umgebungsdefinition. Im folgenden Beispiel wird veranschaulicht, wie die Rückschlusskonfiguration erstellt und die Profilerstellung ausgeführt wird:

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()

GILT FÜR:Azure CLI-ML-Erweiterung v1

Der folgende Befehl veranschaulicht, wie ein Modell mithilfe der CLI profiliert wird:

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>

Tipp

Um die durch die Profilerstellung zurückgegebenen Informationen beizubehalten, verwenden Sie Tags oder Eigenschaften für das Modell. Die Verwendung von Tags oder Eigenschaften speichert die Daten mit dem Modell in der Modellregistrierung. Die folgenden Beispiele zeigen das Hinzufügen eines neuen Tags, das die Informationen requestedCpu und requestedMemoryInGb enthält:

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ächste Schritte