Fichier runtime.yaml

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

Le but de runtime.yaml est de :

Fournir la référence d'environnement Conda d'exécution nécessaire à des fins de déploiement de modèle. Cela est nécessaire pour déployer un modèle à l'aide de la fonction de déploiement de modèle du service de science des données.

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

Vous trouverez ci-dessous une description de chaque champ de runtime.yaml. À mesure que la structure de l'artefact du modèle change, ce fichier évolue, ainsi que la version. Il s'agit des champs pour la version courante MODEL_ARTIFACT_VERSION (3.0).

Champ Description

MODEL_ARTIFACT_VERSION

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

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 ONNX, puis utiliser un environnement Conda ONNX pour le déployer.

MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_TYPE

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

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

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

Autres fichiers d'artefact

En plus des fichiers score.py et runtime.yaml, vous pouvez inclure tous les autres fichiers nécessaires pour exécuter le modèle dans l'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

    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 figurent dans des dossiers au-dessus du fichier score.py, ils sont ignorés et pourraient entraîner un échec du déploiement.

Si vous enregistrez votre modèle à l'aide de la console OCI, de l'interface de ligne de commande ou des SDK, compressez 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 quand la console OCI est utilisée.