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.pyruntime.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.
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 : 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
|
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 Note : Si le champ Le module d'exécution
|
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,hdf5oujson. -
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 dansscore.py, compressez tout code utilisé pour l'inférence au même niveau quescore.py(ou dans un répertoire enfant). Si des fichiers requis sont présents à des niveaux de répertoire supérieurs au fichierscore.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.
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.