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.py
  • runtime.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.

Important

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 : oci://<bucket-name>@<namespace>/<file-path>

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 INFERENCE_ENV_PATH par défaut utilise les éléments suivants :

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

** Fallback to default setting may lead to deployment failure **

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 3.10, 3.11 et 3.12.

Remarque : si le champ INFERENCE_PYTHON_VERSION n'est pas indiqué, le service revient automatiquement à une version Python par défaut gérée par l'équipe de service.

L'exécution INFERENCE_PYTHON_VERSION par défaut utilise Python 3.12.

** Fallback to default setting may lead to deployment failure **

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, hdf5 ou json

  • Un fichier CSV, une table de données de recherche, etc.

  • Des modules Python supplémentaires importés dans score.py
    Important

    Pour les modules Python supplémentaires qui sont importés dans score.py, compressez tout code utilisé pour l'inférence au même niveau que score.py (ou dans un répertoire enfant). Si des fichiers requis sont présents à un niveau supérieur à celui du fichier score.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.

Remarque

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.