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 fonction de déploiement de modèle du service de science des données.

Un artefact de modèle doit inclure les deux éléments suivants :

  • score.py
  • runtime.yaml

Le fichier runtime.yaml spécifie l'environnement Conda utilisé lors de l'inférence, en veillant à ce que le modèle déployé s'exécute avec les dépendances d'exécution appropriées.

Plusieurs exemples de catalogue de modèles incluent des exemples de fichiers runtime.yaml.

Nous avons fourni divers exemple de catalogue de modèles, notamment les fichiers runtime.yaml.

Champs pris en charge

Les champs pris en charge dans runtime.yaml sont les suivants.

À mesure que la structure d'artefact de modèle évolue, le schéma runtime.yaml peut également être modifié. Les champs pris en charge correspondent au MODEL_ARTIFACT_VERSION (3.0) courant.

Important

De plus, assurez-vous que INFERENCE_PYTHON_VERSION et INFERENCE_ENV_PATH sont compatibles entre eux afin d'éviter les erreurs de déploiement.
Champ Obligatoire Description
MODEL_ARTIFACT_VERSION Oui Version de ce format d'artefact. Il s'agit de la version 3.0. Cette opération est automatiquement extraite par ADS lorsque le modèle est enregistré dans une session de carnet.
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_SLUG Oui Ligne-bloc de l'environnement Conda à utiliser à des fins de déploiement et de notation. Habituellement, l'environnement d'inférence est le même que l'environnement d'entraînement considéré comme n'ayant pas à être le cas. Par exemple, vous pouvez entraîner un modèle dans un environnement Conda, le sérialiser en tant que modèle d'apprentissage automatique général, puis utiliser un environnement Conda d'apprentissage 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 notation. Deux valeurs possibles, data_science ou published.
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_PATH Oui

Dans le service de stockage d'objets, chemin d'accès de l'environnement Conda à utiliser à des fins de déploiement et de notation. Le chemin utilise la syntaxe suivante : oci://<bucket-name>@<namespace>/<file-path>

Note : Si les champs d'environnement Conda d'inférence ne sont pas spécifiés, le service retourne 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.

Les versions Python prises en charge sont 3.10, 3.11 et 3.12.

Note : Si le champ INFERENCE_PYTHON_VERSION n'est pas spécifié, le service retourne automatiquement à une version Python par défaut gérée par l'équipe de service.

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

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

Compatibilité et comportement par défaut requis

Si un ou plusieurs champs d'environnement Conda d'inférence ne sont pas spécifiés, le service revient à une exécution par défaut gérée par le service.

Valeurs INFERENCE_ENV_PATH par défaut :

  • MONTANT (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

INFERENCE_PYTHON_VERSION par défaut est Python 3.12.

Le remplacement des paramètres par défaut peut toujours 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

Voici le schéma du fichier runtime.yaml.

{
    "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 le déploiement de modèle

Voici un exemple de fichier runtime.yaml pour une ressource de déploiement de modèle du service de science des données :

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

En plus de score.py et runtime.yaml, vous pouvez inclure d'autres fichiers nécessaires pour exécuter votre modèle dans votre artefact. Ils peuvent inclure :

  • Une représentation sérialisée de votre objet d'évaluation. Par exemple, onnx, pkl, hdf5 ou json.

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

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

    Pour les modules Python supplémentaires 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 à des niveaux de répertoire supérieurs au fichier score.py, ils sont ignorés et peuvent entraîner l'échec du déploiement.

Si vous enregistrez votre modèle à l'aide de la console Oracle Cloud, de l'interface de ligne de commande ou des trousses SDK, compressez simplement les fichiers avec les fichiers score.py et runtime.yaml.

Si vous utilisez ADS pour enregistrer votre modèle, copiez tous les fichiers du répertoire où l'artefact a été créé temporairement avant d'enregistrer le modèle dans le catalogue. ADS compresse l'intégralité du répertoire d'artefacts et l'envoie au catalogue de modèles.

Note

L'artefact prend désormais en charge les modèles non compressés jusqu'à 6 Go lors de l'enregistrement du modèle à l'aide d'ADS, de l'interface de ligne de commande ou des trousses SDK. La limite est de 100 Mo lors de l'utilisation de la console Oracle Cloud.