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 |
---|---|
|
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. |
|
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. |
|
Type de l'environnement conda à utiliser à des fins de déploiement et de scoring. Deux valeurs sont possibles : |
|
Chemin Object Storage de l'environnement conda à utiliser à des fins de déploiement et de scoring. Le chemin suit cette syntaxe, |
|
Version Python de l'environnement conda à utiliser pour le déploiement de modèle. Les versions de Python prises en charge sont |
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
oujson
-
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 quescore.py
ou à un niveau inférieur. Si des fichiers requis sont présents au niveau des dossiers au-dessus du fichierscore.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.
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.