Model opgeven dat moet worden geïmplementeerd voor gebruik in een online-eindpunt
VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
In dit artikel leert u over de verschillende manieren om modellen op te geven die u wilt gebruiken in online implementaties. Wanneer u een model implementeert in een online-eindpunt van Azure Machine Learning, moet u het model op twee manieren opgeven:
- Geef het pad op naar de locatie van het model op uw lokale computer
- Geef een verwijzing op naar een versiemodel dat al is geregistreerd in uw werkruimte.
Hoe u uw model opgeeft voor de implementatie van een online-eindpunt, is afhankelijk van waar het model is opgeslagen.
Nadat u uw implementatie hebt gemaakt, verwijst de omgevingsvariabele AZUREML_MODEL_DIR
in Azure naar de opslaglocatie in Azure waar uw model is opgeslagen.
Implementatie voor modellen die lokaal zijn opgeslagen
In deze sectie wordt dit voorbeeld van een lokale mapstructuur gebruikt om te laten zien hoe u modellen kunt opgeven voor gebruik in een onlineimplementatie:
Implementatie voor één lokaal model
Als u één model wilt gebruiken dat u op uw lokale computer in een implementatie hebt, geeft u de path
waarde op in het model
YAML-configuratiebestand van uw implementatie. De volgende code is een voorbeeld van de YAML-implementatie met het lokale pad /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
Nadat u in Azure Machine Learning uw implementatie hebt gemaakt naar een online-eindpunt, verwijst de omgevingsvariabele AZUREML_MODEL_DIR
naar de opslaglocatie in Azure waar uw model wordt opgeslagen. Bevat nu bijvoorbeeld /var/azureml-app/azureml-models/aaa-aaa-aaa-aaa-aaa/1
het model sample_m1.pkl
.
Binnen uw scorescript (score.py
) kunt u uw model laden (in dit voorbeeld sample_m1.pkl
) in de functie van init()
het script:
def init():
model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR")), "sample_m1.pkl")
model = joblib.load(model_path)
Implementatie voor verschillende lokale modellen
Hoewel u met de Azure CLI, Python SDK en andere clienthulpprogramma's slechts één model per implementatie kunt opgeven in de implementatiedefinitie, kunt u nog steeds meerdere modellen in een implementatie gebruiken door een modelmap te registreren die alle modellen als bestanden of submappen bevat. Zie Uw model en omgeving registreren voor meer informatie over het registreren van uw assets, zoals modellen, zodat u hun geregistreerde namen en versies tijdens de implementatie kunt opgeven.
In de voorbeeldstructuur van de lokale map ziet u dat er verschillende modellen in de models
map staan. Als u deze modellen wilt gebruiken, geeft u in uw YAML-implementatie het pad naar de models
map als volgt op:
$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
Nadat u de implementatie hebt gemaakt, verwijst de omgevingsvariabele AZUREML_MODEL_DIR
naar de opslaglocatie in Azure waar uw modellen worden opgeslagen. Bevat nu bijvoorbeeld /var/azureml-app/azureml-models/bbb-bbb-bbb-bbb-bbb/1
de modellen en de bestandsstructuur.
In dit voorbeeld ziet de inhoud van de AZUREML_MODEL_DIR
map er als volgt uit:
Binnen uw scorescript (score.py
) kunt u uw modellen laden in de init()
functie. Met de volgende code wordt het sample_m1.pkl
model 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)
Zie Meerdere modellen implementeren in één implementatie (CLI-voorbeeld) en Meerdere modellen implementeren in één implementatie (SDK-voorbeeld) voor een voorbeeld van het implementeren van meerdere modellen in één implementatie.
Tip
Als u meer dan 1500 bestanden wilt registreren, kunt u overwegen de bestanden of submappen te comprimeren als .tar.gz bij het registreren van de modellen. Als u de modellen wilt gebruiken, kunt u de bestanden of submappen uitpakken in de init()
functie van het scorescript. Als u de modellen registreert, kunt u de azureml.unpack
eigenschap True
ook instellen op , zodat de bestanden of submappen automatisch worden uitgepakt. In beide gevallen gebeurt het uitpakken van de bestanden eenmaal in de initialisatiefase.
Implementatie voor modellen die zijn geregistreerd in uw werkruimte
U kunt geregistreerde modellen in uw implementatiedefinitie gebruiken door te verwijzen naar hun namen in uw YAML-implementatie. Met de volgende YAML-implementatieconfiguratie wordt bijvoorbeeld de geregistreerde model
naam opgegeven als azureml:local-multimodel:3
:
$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
Houd voor dit voorbeeld rekening met local-multimodel:3
de volgende modelartefacten, die kunnen worden weergegeven op het tabblad Modellen in de Azure Machine Learning-studio:
Nadat u de implementatie hebt gemaakt, verwijst de omgevingsvariabele AZUREML_MODEL_DIR
naar de opslaglocatie in Azure waar uw modellen worden opgeslagen. Bevat bijvoorbeeld /var/azureml-app/azureml-models/local-multimodel/3
de modellen en de bestandsstructuur. AZUREML_MODEL_DIR
verwijst naar de map met de hoofdmap van de modelartefacten. Op basis van dit voorbeeld ziet de inhoud van de AZUREML_MODEL_DIR
map er als volgt uit:
Binnen uw scorescript (score.py
) kunt u uw modellen laden in de init()
functie. Laad bijvoorbeeld het diabetes.sav
model:
def init():
model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR"), "models", "diabetes", "1", "diabetes.sav")
model = joblib.load(model_path)
Implementatie voor modellen die beschikbaar zijn in de modelcatalogus
Voor elk model in de modelcatalogus, met uitzondering van modellen die zich in de Azure OpenAI-verzameling bevinden, kunt u de model-id gebruiken die wordt weergegeven in de kaart van het model voor implementatie. Model-id's zijn van de vorm azureml://registries/{registry_name}/models/{model_name}/versions/{model_version}
. Een model-id voor het Meta Llama 3-8 B Instruct-model is azureml://registries/azureml-meta/models/Meta-Llama-3-8B-Instruct/versions/2
bijvoorbeeld .
Sommige modelkaarten bevatten voorbeeldnotebooks die laten zien hoe u de model-id voor de implementatie gebruikt.
Implementatie voor modellen die beschikbaar zijn in het register van uw organisatie
Elk model in het register van een organisatie heeft een model-id van het formulier azureml://registries/{registry_name}/models/{model_name}/versions/{model_version}
. U kunt er ook voor kiezen om omgevingen te gebruiken die zijn geregistreerd in hetzelfde register.