Angeben des bereitzustellenden Modells zur Verwendung in einem Onlineendpunkt
GILT FÜR:Azure CLI ML-Erweiterung v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)
In diesem Artikel erfahren Sie mehr über die verschiedenen Möglichkeiten zum Angeben der Modelle, die Sie für Onlinebereitstellungen verwenden möchten. Wenn Sie ein Modell auf einem Azure Machine Learning-Onlineendpunkt bereitstellen, müssen Sie das Modell auf eine von zwei Arten angeben:
- Bereitstellen des Pfads zum Speicherort des Modells auf Ihrem lokalen Computer
- Bereitstellen eines Verweises auf ein Modell mit Versionsangabe, das bereits in Ihrem Arbeitsbereich registriert ist
Wie Sie Ihr Modell für die Bereitstellung eines Onlineendpunkts angeben, hängt vom Speicherort des Modells ab.
Nachdem Sie Ihre Bereitstellung erstellt haben, verweist die Umgebungsvariable AZUREML_MODEL_DIR
in Azure Machine Learning auf den Speicherort in Azure, an dem Ihr Modell gespeichert ist.
Bereitstellung für lokal gespeicherte Modelle
In diesem Abschnitt wird das folgende Beispiel einer lokalen Ordnerstruktur verwendet, um zu veranschaulichen, wie Sie Modelle zur Verwendung in einer Onlinebereitstellung angeben können:
Bereitstellung für ein einzelnes lokales Modell
Wenn Sie ein einzelnes Modell verwenden möchten, das auf Ihrem lokalen Computer in einer Bereitstellung enthalten ist, geben Sie den Pfad (path
) des Modells (model
) in Ihrer YAML-Konfigurationsdatei für die Bereitstellung an. Der folgende Code zeigt ein Beispiel für die YAML-Bereitstellungsdatei mit dem lokalen Pfad /Downloads/multi-models-sample/models/model_1/v1/sample_m1.pkl
:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: /Downloads/multi-models-sample/models/model_1/v1/sample_m1.pkl
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
Nachdem Sie Ihre Bereitstellung auf einem Onlineendpunkt erstellt haben, verweist die Umgebungsvariable AZUREML_MODEL_DIR
in Azure Machine Learning auf den Speicherort in Azure, an dem Ihr Modell gespeichert ist. Beispielsweise enthält /var/azureml-app/azureml-models/aaa-aaa-aaa-aaa-aaa/1
jetzt das Modell sample_m1.pkl
.
In Ihrem Bewertungsskript (score.py
) können Sie das Modell (in diesem Beispiel sample_m1.pkl
) in der init()
-Funktion des Skripts laden:
def init():
model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR")), "sample_m1.pkl")
model = joblib.load(model_path)
Bereitstellung für mehrere lokale Modelle
Die Azure CLI, das Python SDK und andere Clienttools ermöglichen es Ihnen zwar, nur ein Modell pro Bereitstellung in der Bereitstellungsdefinition anzugeben, aber Sie können weiterhin mehrere Modelle in einer Bereitstellung verwenden, indem Sie einen Modellordner registrieren, der alle Modelle als Dateien oder Unterverzeichnisse enthält. Weitere Informationen zum Registrieren Ihrer Ressourcen (z. B. Modelle), damit Sie während der Bereitstellung die registrierten Namen und Versionen angeben können, finden Sie unter Registrieren Ihres Modells und Ihrer Umgebung.
Im obigen Beispiel einer lokalen Ordnerstruktur sehen Sie mehrere Modelle im Ordner models
. Um diese Modelle in Ihrer YAML-Bereitstellung verwenden zu können, geben Sie den Pfad zum Ordner models
wie folgt an:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: /Downloads/multi-models-sample/models/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
Nachdem Sie Ihre Bereitstellung erstellt haben, verweist die Umgebungsvariable AZUREML_MODEL_DIR
auf den Speicherort in Azure, an dem Ihre Modelle gespeichert sind. Beispielsweise enthält /var/azureml-app/azureml-models/bbb-bbb-bbb-bbb-bbb/1
jetzt die Modelle und die Dateistruktur.
In diesem Beispiel sieht der Inhalt des Ordners AZUREML_MODEL_DIR
wie folgt aus:
In Ihrem Bewertungsskript (score.py
) können Sie Ihre Modelle in der init()
-Funktion laden: Mit dem folgenden Code wird das Modell sample_m1.pkl
geladen:
def init():
model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR")), "models","model_1","v1", "sample_m1.pkl ")
model = joblib.load(model_path)
Ein Beispiel zum Bereitstellen mehrerer Modelle in einer Bereitstellung finden Sie unter Bereitstellen mehrerer Modelle in einer Bereitstellung (CLI-Beispiel) und Bereitstellen mehrerer Modelle in einer Bereitstellung (SDK-Beispiel).
Tipp
Wenn Sie mehr als 1.500 Dateien registrieren müssen, komprimieren Sie beim Registrieren der Modelle die Dateien oder Unterverzeichnisse ggf. als „.tar.gz“. Um die Modelle zu nutzen, können Sie die Dateien oder Unterverzeichnisse in der init()
-Funktion des Bewertungsskripts entpacken. Alternativ können Sie beim Registrieren der Modelle die Eigenschaft azureml.unpack
auf True
festlegen, um die Dateien oder Unterverzeichnisse automatisch zu entpacken. In beiden Fällen wird das Entpacken der Dateien einmal in der Initialisierungsphase ausgeführt.
Bereitstellung für Modelle, die in Ihrem Arbeitsbereich registriert sind
Sie können registrierte Modelle in Ihrer Bereitstellungsdefinition verwenden, indem Sie in der YAML-Bereitstellung auf die Namen der Modelle verweisen. Die folgende Bereitstellungs-YAML-Konfiguration gibt beispielsweise den registrierten model
-Namen als azureml:local-multimodel:3
an:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model: azureml:local-multimodel:3
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
Beachten Sie in diesem Beispiel, dass local-multimodel:3
die folgenden Modellartefakte enthält, die auf der Registerkarte Modelle im Azure Machine Learning Studio angezeigt werden können:
Nachdem Sie Ihre Bereitstellung erstellt haben, verweist die Umgebungsvariable AZUREML_MODEL_DIR
auf den Speicherort in Azure, an dem Ihre Modelle gespeichert sind. Beispielsweise enthält /var/azureml-app/azureml-models/local-multimodel/3
die Modelle und die Dateistruktur. AZUREML_MODEL_DIR
verweist auf den Ordner, der den Stamm der Modellartefakte enthält. In diesem Beispiel sieht der Inhalt des Ordners AZUREML_MODEL_DIR
wie folgt aus:
In Ihrem Bewertungsskript (score.py
) können Sie Ihre Modelle in der init()
-Funktion laden: Laden Sie beispielsweise das Modell diabetes.sav
:
def init():
model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR"), "models", "diabetes", "1", "diabetes.sav")
model = joblib.load(model_path)
Bereitstellung für Modelle, die im Modellkatalog verfügbar sind
Mit Ausnahme von Modellen in der Azure OpenAI-Sammlung können Sie für jedes Modell im Modellkatalog die auf der Karte des Modells angezeigte Modell-ID für die Bereitstellung verwenden. Modell-IDs weisen das Format azureml://registries/{registry_name}/models/{model_name}/versions/{model_version}
auf. Die Modell-ID für das Modell Meta Llama 3-8 B Instruct lautet beispielsweise azureml://registries/azureml-meta/models/Meta-Llama-3-8B-Instruct/versions/2
.
Einige Modellkarten enthalten Beispielnotebooks, die zeigen, wie Sie die Modell-ID für die Bereitstellung verwenden.
Bereitstellung für Modelle, die in der Registrierung Ihrer Organisation verfügbar sind
Jedes Modell in der Registrierung einer Organisation verfügt über eine Modell-ID im Format azureml://registries/{registry_name}/models/{model_name}/versions/{model_version}
. Sie können auch Umgebungen verwenden, die in derselben Registrierung registriert sind.