Fichier runtime.yaml

En plus du fichier score.py, le fichier runtime.yaml doit figurer dans un artefact de modèle.

L'objectif du fichier runtime.yaml est le suivant :

Fournir la référence d'environnement conda d'exécution nécessaire à des fins de déploiement de modèle. Ce fichier est requis pour déployer un modèle à l'aide de la fonctionnalité de déploiement de modèle du service Data Science.

Nous fournissons divers exemples de catalogue de modèles contenant des fichiers runtime.yaml.

Vous trouverez ci-dessous une description de chaque champ du fichier runtime.yaml. A mesure que la structure de l'artefact de modèle change, ce fichier évolue, de même que sa version. Voici les champs en cours pour MODEL_ARTIFACT_VERSION (3.0).

Champ Description

MODEL_ARTIFACT_VERSION

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

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 de formation pensé qui ne doit 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 ONNX, puis utiliser un environnement conda ONNX pour le déployer.

MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_TYPE

Type de l'environnement conda à utiliser à des fins de déploiement et de scoring. Deux valeurs sont possibles : data_science et published.

MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_PATH

Chemin Object Storage de l'environnement conda à utiliser à des fins de déploiement et de scoring. Le chemin suit cette syntaxe, oci://<bucket-name>@<namespace>/<file-path>.

MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_PYTHON_VERSION

Version Python de l'environnement conda à utiliser pour le déploiement de modèle. Les versions de Python prises en charge sont 3.7, 3.8, 3.9, 3.10 et 3.11.

Schéma 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"}
                    }
                }
            }
        }
    }
 
}

Exemple de fichier pour un déploiement de modèle

Voici un exemple de fichier runtime.yaml pour une ressource de déploiement de 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.7'

Autres fichiers d'artefact

Outre score.py et runtime.yaml, vous pouvez inclure tous les autres 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

    Des modules Python supplémentaires importés dans score.py Tout code utilisé pour l'inférence doit être compressé au même niveau que score.py ou à un niveau inférieur. Si des fichiers requis sont présents au niveau des dossiers au-dessus du fichier score.py, ils sont ignorés et peuvent entraîner l'échec du déploiement.

Si vous enregistrez le modèle à l'aide de la console OCI, de l'interface de ligne de commande ou des kits SDK, compressez simplement les fichiers avec les fichiers 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 OCI.