YAML-schema voor beheerde online implementatie met CLI (v2)
VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)
Het JSON-bronschema vindt u op https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json.
Notitie
De YAML-syntaxis die in dit document wordt beschreven, is gebaseerd op het JSON-schema voor de nieuwste versie van de ML CLI v2-extensie. Deze syntaxis werkt gegarandeerd alleen met de nieuwste versie van de ML CLI v2-extensie. U vindt de schema's voor oudere extensieversies op https://azuremlschemasprod.azureedge.net/.
YAML-syntaxis
Sleutel | Type | Description | Toegestane waarden | Default value |
---|---|---|---|---|
$schema |
tekenreeks | Het YAML-schema. Als u de Azure Machine Learning VS Code-extensie gebruikt om het YAML-bestand te ontwerpen, inclusief $schema bovenaan het bestand, kunt u schema- en resourcevoltooiingen aanroepen. |
||
name |
tekenreeks | Vereist. Naam van de implementatie. Hier worden naamgevingsregels gedefinieerd. |
||
description |
tekenreeks | Beschrijving van de implementatie. | ||
tags |
object | Woordenlijst met tags voor de implementatie. | ||
endpoint_name |
tekenreeks | Vereist. De naam van het eindpunt voor het maken van de implementatie onder. | ||
model |
tekenreeks of object | Het model dat moet worden gebruikt voor de implementatie. Deze waarde kan een verwijzing zijn naar een bestaand versiemodel in de werkruimte of een inline modelspecificatie. Als u naar een bestaand model wilt verwijzen, gebruikt u de azureml:<model-name>:<model-version> syntaxis. Als u een model inline wilt definiëren, volgt u het modelschema. Als best practice voor productiescenario's moet u het model afzonderlijk maken en hiernaar verwijzen. Dit veld is optioneel voor aangepaste containerimplementatiescenario's . |
||
model_mount_path |
tekenreeks | Het pad om het model te koppelen in een aangepaste container. Alleen van toepassing op aangepaste containerimplementatiescenario's . Als het model veld is opgegeven, wordt het gekoppeld aan dit pad in de container. |
||
code_configuration |
object | Configuratie voor de scorecodelogica. Dit veld is optioneel voor aangepaste containerimplementatiescenario's . |
||
code_configuration.code |
tekenreeks | Lokaal pad naar de broncodemap voor het scoren van het model. | ||
code_configuration.scoring_script |
tekenreeks | Relatief pad naar het scorebestand in de broncodemap. | ||
environment_variables |
object | Woordenlijst van sleutel-waardeparen van omgevingsvariabelen die moeten worden ingesteld in de implementatiecontainer. U kunt deze omgevingsvariabelen openen vanuit uw scorescripts. | ||
environment |
tekenreeks of object | Vereist. De omgeving die moet worden gebruikt voor de implementatie. Deze waarde kan een verwijzing zijn naar een bestaande versieomgeving in de werkruimte of een inline-omgevingsspecificatie. Als u naar een bestaande omgeving wilt verwijzen, gebruikt u de azureml:<environment-name>:<environment-version> syntaxis. Als u een omgeving inline wilt definiëren, volgt u het omgevingsschema. Als best practice voor productiescenario's moet u de omgeving afzonderlijk maken en hiernaar verwijzen. |
||
instance_type |
tekenreeks | Vereist. De VM-grootte die moet worden gebruikt voor de implementatie. Zie de lijst met beheerde online-eindpunten voor SKU's voor de lijst met ondersteunde grootten. | ||
instance_count |
geheel getal | Vereist. Het aantal exemplaren dat moet worden gebruikt voor de implementatie. Geef de waarde op op basis van de workload die u verwacht. Voor hoge beschikbaarheid raadt Microsoft u aan deze ten minste 3 in te stellen op . instance_count kan worden bijgewerkt nadat de implementatie is gemaakt met behulp van az ml online-deployment update de opdracht. We reserveren een extra 20% voor het uitvoeren van upgrades. Zie quotatoewijzing voor virtuele machines voor meer informatie voor implementatie. |
||
app_insights_enabled |
boolean | Of u integratie wilt inschakelen met het Azure-toepassing Insights-exemplaar dat is gekoppeld aan uw werkruimte. | false |
|
scale_settings |
object | De schaalinstellingen voor de implementatie. Momenteel wordt alleen het default schaaltype ondersteund, dus u hoeft deze eigenschap niet op te geven. Met dit default schaaltype kunt u het aantal exemplaren handmatig omhoog en omlaag schalen na het maken van de implementatie door de instance_count eigenschap bij te werken of een beleid voor automatisch schalen te maken. |
||
scale_settings.type |
tekenreeks | Het schaaltype. | default |
default |
data_collector |
object | Instellingen voor gegevensverzameling voor de implementatie. Zie DataCollector voor de set configureerbare eigenschappen. | ||
request_settings |
object | Scoreaanvraaginstellingen voor de implementatie. Zie RequestSettings voor de set configureerbare eigenschappen. | ||
liveness_probe |
object | Instellingen voor livenesstest voor het regelmatig controleren van de status van de container. Zie ProbeSettings voor de set configureerbare eigenschappen. | ||
readiness_probe |
object | Instellingen voor gereedheidstests om te valideren of de container gereed is om verkeer te verwerken. Zie ProbeSettings voor de set configureerbare eigenschappen. | ||
egress_public_network_access |
tekenreeks | Opmerking: deze sleutel is van toepassing wanneer u de verouderde netwerkisolatiemethode gebruikt om uitgaande communicatie voor een implementatie te beveiligen. We raden u ten zeerste aan uitgaande communicatie te beveiligen voor implementaties met behulp van een door een werkruimte beheerd VNet . Met deze vlag wordt de implementatie beveiligd door de communicatie tussen de implementatie en de Azure-resources te beperken die door de implementatie worden gebruikt. Ingesteld om ervoor te disabled zorgen dat het downloaden van het model, de code en de installatiekopieën die nodig zijn voor uw implementatie, worden beveiligd met een privé-eindpunt. Deze vlag is alleen van toepassing op beheerde online-eindpunten. |
enabled , disabled |
enabled |
RequestSettings
Sleutel | Type | Description | Default value |
---|---|---|---|
request_timeout_ms |
geheel getal | De time-out voor scoren in milliseconden. Houd er rekening mee dat de toegestane maximumwaarde milliseconden is 180000 . Zie limieten voor online-eindpunten voor meer informatie. |
5000 |
max_concurrent_requests_per_instance |
geheel getal | Het maximum aantal gelijktijdige aanvragen per exemplaar dat is toegestaan voor de implementatie. Opmerking: als u Azure Machine Learning-deductieserver of Azure Machine Learning-deductieinstallatiekopieën gebruikt, moet uw model zijn geconfigureerd om gelijktijdige aanvragen af te handelen. Hiervoor geeft u door WORKER_COUNT: <int> als een omgevingsvariabele. Zie Azure Machine Learning-deductieserverparameters voor meer informatie over WORKER_COUNT Opmerking: Stel dit in op het aantal aanvragen dat uw model gelijktijdig op één knooppunt kan verwerken. Als u deze waarde hoger instelt dan de werkelijke gelijktijdigheid van uw model, kan dit leiden tot hogere latenties. Als u deze waarde te laag instelt, kan dit leiden tot minder gebruikte knooppunten. Het instellen van te laag kan er ook toe leiden dat aanvragen worden geweigerd met een HTTP-statuscode van 429, omdat het systeem ervoor kiest om snel te mislukken. Zie Problemen met online-eindpunten oplossen: HTTP-statuscodes voor meer informatie. |
1 |
max_queue_wait_ms |
geheel getal | (Afgeschaft) De maximale tijdsduur in milliseconden van een aanvraag blijft in de wachtrij. (Verhoog nu request_timeout_ms om rekening te houden met eventuele netwerk-/wachtrijvertragingen) |
500 |
ProbeSettings
Sleutel | Type | Description | Default value |
---|---|---|---|
initial_delay |
geheel getal | Het aantal seconden nadat de container is gestart voordat de test wordt gestart. Minimumwaarde is 1 . |
10 |
period |
geheel getal | Hoe vaak (in seconden) de test moet worden uitgevoerd. | 10 |
timeout |
geheel getal | Het aantal seconden waarna er een time-out optreedt voor de test. Minimumwaarde is 1 . |
2 |
success_threshold |
geheel getal | De minimale opeenvolgende successen voor de test worden beschouwd als geslaagd nadat deze is mislukt. De minimumwaarde is 1 voor de gereedheidstest. De waarde voor de livenesstest is opgelost als 1 . |
1 |
failure_threshold |
geheel getal | Wanneer een test mislukt, probeert failure_threshold het systeem tijden voordat het opgeeft. Als u een livenesstest opgeeft, wordt de container opnieuw opgestart. In het geval van een gereedheidstest wordt de container gemarkeerd als Ongelezen. Minimumwaarde is 1 . |
30 |
DataCollector
Sleutel | Type | Description | Default value |
---|---|---|---|
sampling_rate |
zwevend | Het percentage dat wordt weergegeven als een decimaal percentage van de gegevens die moeten worden verzameld. Een waarde van 1,0 vertegenwoordigt bijvoorbeeld het verzamelen van 100% van de gegevens. | 1.0 |
rolling_rate |
tekenreeks | De snelheid voor het partitioneren van de gegevens in de opslag. Waarde kan zijn: Minuut, Uur, Dag, Maand, Jaar. | Hour |
collections |
object | Set afzonderlijke collection_name s en hun respectieve instellingen voor deze implementatie. |
|
collections.<collection_name> |
object | Logische groepering van productiedeductiegegevens die moeten worden verzameld (voorbeeld: model_inputs ). Er zijn twee gereserveerde namen: request en response , die respectievelijk overeenkomen met het verzamelen van nettoladinggegevens voor HTTP-aanvragen en antwoorden. Alle andere namen zijn willekeurig en definieerbaar door de gebruiker. Opmerking: elk collection_name moet overeenkomen met de naam van het Collector object dat in de implementatie score.py wordt gebruikt om de productiedeductiegegevens te verzamelen. Zie Gegevens verzamelen van modellen in productie voor meer informatie over het verzamelen van nettoladinggegevens en het verzamelen van gegevens met de meegeleverde Python SDK. |
|
collections.<collection_name>.enabled |
boolean | Hiermee wordt aangegeven of het verzamelen van gegevens voor de opgegeven gegevens moet worden ingeschakeld collection_name . |
'False'' |
collections.<collection_name>.data.name |
tekenreeks | De naam van de gegevensasset die moet worden geregistreerd bij de verzamelde gegevens. | <endpoint>-<deployment>-<collection_name> |
collections.<collection_name>.data.path |
tekenreeks | Het volledige Azure Machine Learning-gegevensarchiefpad waarin de verzamelde gegevens moeten worden geregistreerd als een gegevensasset. | azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name> |
collections.<collection_name>.data.version |
geheel getal | De versie van de gegevensasset die moet worden geregistreerd bij de verzamelde gegevens in Blob Storage. | 1 |
Opmerkingen
De az ml online-deployment
opdrachten kunnen worden gebruikt voor het beheren van beheerde onlineimplementaties van Azure Machine Learning.
Voorbeelden
Voorbeelden zijn beschikbaar in de GitHub-voorbeeldenopslagplaats. Hieronder ziet u een aantal.
YAML: basic
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: green
endpoint_name: my-endpoint
model:
path: ../../model-2/model/
code_configuration:
code: ../../model-2/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-2/environment/conda.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
YAML: door het systeem toegewezen identiteit
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score_managedidentity.py
environment:
conda_file: ../../model-1/environment/conda-managedidentity.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
STORAGE_ACCOUNT_NAME: "storage_place_holder"
STORAGE_CONTAINER_NAME: "container_place_holder"
FILE_NAME: "file_place_holder"
YAML: door de gebruiker toegewezen identiteit
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score_managedidentity.py
environment:
conda_file: ../../model-1/environment/conda-managedidentity.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
STORAGE_ACCOUNT_NAME: "storage_place_holder"
STORAGE_CONTAINER_NAME: "container_place_holder"
FILE_NAME: "file_place_holder"
UAI_CLIENT_ID: "uai_client_id_place_holder"
YAML: data_collector
$schema: http://azureml/sdk-2-0/OnlineDeployment.json
endpoint_name: my_endpoint
name: blue
model: azureml:my-model-m1:1
environment: azureml:env-m1:1
data_collector:
collections:
model_inputs:
enabled: 'True'
model_outputs:
enabled: 'True'
$schema: http://azureml/sdk-2-0/OnlineDeployment.json
endpoint_name: my_endpoint
name: blue
model: azureml:my-model-m1:1
environment: azureml:env-m1:1
data_collector:
collections:
request:
enabled: 'True'
data:
name: my_request_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/request
version: 1
response:
enabled: 'True'
data:
name: my_response_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/response
version: 1
model_inputs:
enabled: 'True'
data:
name: my_model_inputs_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_inputs
version: 1
model_outputs:
enabled: 'True'
data:
name: my_model_outputs_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_outputs
version: 1