Fichier runtime.yaml
Le fichier runtime.yaml définit la configuration d'exécution requise pour déployer un modèle à l'aide de la fonctionnalité de déploiement de modèle du service Data Science.
Un artefact de modèle doit inclure les deux éléments suivants :
score.pyruntime.yaml
Le fichier runtime.yaml indique l'environnement Conda utilisé lors de l'inférence, ce qui garantit que le modèle déployé est exécuté avec les dépendances d'exécution correctes.
Plusieurs exemples de catalogue de modèles incluent des exemples de fichiers runtime.yaml.
Nous fournissons divers exemples de catalogue de modèles contenant des fichiers runtime.yaml.
Champs pris en charge
Les champs pris en charge dans runtime.yaml sont les suivants.
Au fur et à mesure de l'évolution de la structure d'artefact de modèle, le schéma runtime.yaml peut également changer. Les champs pris en charge correspondent au fichier MODEL_ARTIFACT_VERSION (3.0) actuel.
De plus, assurez-vous que
INFERENCE_PYTHON_VERSION et INFERENCE_ENV_PATH sont compatibles les uns avec les autres pour éviter les erreurs de déploiement.| Champ | Requis | Description |
|---|---|---|
MODEL_ARTIFACT_VERSION |
Oui | Version de ce format d'artefact. La version ici est 3.0. Elle est automatiquement extraite par ADS lorsque le modèle est enregistré dans une session de bloc-notes. |
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_SLUG |
Oui | Slug de l'environnement conda à utiliser à des fins de déploiement et de scoring. Habituellement, l'environnement d'inférence est le même que l'environnement d'entraînement pensé qui ne doit pas être le cas. Par exemple, vous pouvez entraîner un modèle dans l'environnement conda, le sérialiser comme modèle d'apprentissage automatique général, puis utiliser l'environnement conda d'apprentissage automatique général pour le déployer. |
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_TYPE |
Oui | Type d'environnement conda à utiliser à des fins de déploiement et de scoring. Deux valeurs sont possibles : data_science ou published. |
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_PATH |
Oui |
Chemin Object Storage de l'environnement conda à utiliser à des fins de déploiement et de scoring. Le chemin utilise la syntaxe suivante : Remarque : si les champs d'environnement conda d'inférence ne sont pas indiqués, le service revient automatiquement à un environnement conda par défaut géré par l'équipe de service. L'exécution
|
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_PYTHON_VERSION |
Oui |
Version Python de l'environnement conda à utiliser pour le déploiement de modèle. La version de Python prise en charge est Remarque : si le champ L'exécution
|
Exigences de comportement et de compatibilité par défaut
Si aucun champ d'environnement conda d'inférence n'est indiqué, le service revient à une exécution par défaut gérée par le service.
Valeurs INFERENCE_ENV_PATH par défaut :
- AMD (x86_64) :
service_pack/cpu/General_Machine_Learning_for_CPUs_on_Python_3.12/1.0/generalml_p312_cpu_x86_64_v1 - ARM (aarch64) :
service_pack/cpu/ARM_Pack_for_Machine_Learning_on_Python_3.12/1.0/armml_p312_cpu_aarch64_v1
La valeur par défaut INFERENCE_PYTHON_VERSION est Python 3.12.
La restauration des paramètres par défaut peut entraîner l'échec de la création du déploiement de modèle. Assurez-vous que INFERENCE_ENV_PATH et INFERENCE_PYTHON_VERSION référencent des versions d'environnement compatibles.
Schéma
Le schéma du fichier runtime.yaml est le suivant.
{
"title": "Model Artifact schema",
"type": "object",
"properties": {
"MODEL_ARTIFACT_VERSION": {"type":"string"},
"MODEL_DEPLOYMENT": {
"type": "object",
"title": "Model Deployment",
"properties": {
"INFERENCE_CONDA_ENV": {
"type": "object",
"title": "Inference Conda Env",
"properties": {
"INFERENCE_ENV_SLUG": {"type":"string"},
"INFERENCE_ENV_TYPE": {"type":"string", "enum": ["published", "data_science"]},
"INFERENCE_ENV_PATH": {"type":"string"},
"INFERENCE_PYTHON_VERSION": {"type":"string"}
},
"required": [
"INFERENCE_ENV_SLUG",
"INFERENCE_ENV_TYPE",
"INFERENCE_ENV_PATH",
"INFERENCE_PYTHON_VERSION"
]
}
}
}
}
}
Exemple de fichier pour un déploiement de modèle
Voici l'exemple de fichier runtime.yaml pour une ressource du déploiement d'un modèle Data Science :
MODEL_ARTIFACT_VERSION: '3.0'
MODEL_DEPLOYMENT:
INFERENCE_CONDA_ENV:
INFERENCE_ENV_SLUG: envslug
INFERENCE_ENV_TYPE: published
INFERENCE_ENV_PATH: oci://<bucket-name>@<namespace>/<prefix>/<env>.tar.gz
INFERENCE_PYTHON_VERSION: '3.12'
Autres fichiers d'artefact
Outre score.py et runtime.yaml, vous pouvez inclure tous les fichiers nécessaires à l'exécution du modèle dans votre artefact. Il peut s'agir des éléments suivants :
-
Une représentation sérialisée de l'objet d'estimateur, comme
onnx,pkl,hdf5oujson -
Un fichier CSV, une table de données de recherche, etc.
- Des modules Python supplémentaires importés dans
score.pyImportant
Pour les modules Python supplémentaires qui sont importés dansscore.py, compressez tout code utilisé pour l'inférence au même niveau quescore.py(ou dans un répertoire enfant). Si des fichiers requis sont présents à un niveau supérieur à celui du fichierscore.py, ils seront ignorés, ce qui peut entraîner l'échec du déploiement.
Si votre modèle est enregistré à l'aide de la console Oracle Cloud, de l'interface de Web ou des kit SDK, compressez simplement les fichiers avec le fichier score.py et runtime.yaml.
Si vous utilisez ADS pour enregistrer le modèle, copiez tous les fichiers dans le répertoire où l'artefact est temporairement créé avant d'enregistrer le modèle dans le catalogue. ADS compresse l'intégralité du répertoire de l'artefact et l'envoie au catalogue de modèles.
L'artefact prend désormais en charge les modèles non compressés jusqu'à 6 Go lorsque le modèle est enregistré à l'aide d'ADS, de l'interface de ligne de commande ou de kits SDK. La limite est de 100 Mo lorsque vous utilisez la console Oracle Cloud.