Il file runtime.yaml
Il file runtime.yaml definisce la configurazione di runtime necessaria per distribuire un modello utilizzando la funzione Distribuzione modello del servizio Data Science.
Un artifact del modello deve includere entrambi:
score.pyruntime.yaml
Il file runtime.yaml specifica l'ambiente Honda utilizzato durante l'inferenza, assicurando che il modello distribuito venga eseguito con le dipendenze di runtime corrette.
Diversi esempi di catalogo modelli includono file runtime.yaml di esempio.
Sono stati forniti vari esempio di catalogo dei modelli, inclusi i file runtime.yaml.
Campi supportati
Di seguito sono riportati i campi supportati in runtime.yaml.
Man mano che la struttura di artifact del modello si evolve, anche lo schema runtime.yaml potrebbe cambiare. I campi supportati corrispondono all'indirizzo MODEL_ARTIFACT_VERSION (3.0) corrente.
Inoltre, assicurarsi che
INFERENCE_PYTHON_VERSION e INFERENCE_ENV_PATH siano compatibili tra loro per evitare errori di distribuzione.| Campo | Obbligatorio | descrizione; |
|---|---|---|
MODEL_ARTIFACT_VERSION |
Sì | La versione di questo formato artifact. Questa versione è 3.0. Questo viene estratto automaticamente da ADS quando il modello viene salvato in una sessione notebook. |
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_SLUG |
Sì | Slug dell'ambiente Conda che si desidera utilizzare a scopo di distribuzione e assegnazione punteggio. Di solito, l'ambiente di inferenza è lo stesso dell'ambiente di formazione pensato che non deve essere il caso. Ad esempio, è possibile addestrare un modello in un unico ambiente Conda, serializzarlo come modello ML generale e quindi utilizzare un ambiente Conda ML generale per distribuirlo. |
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_TYPE |
Sì | Il tipo di ambiente Conda che si desidera utilizzare per la distribuzione e l'assegnazione punteggio. Due valori possibili, data_science o published. |
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_PATH |
Sì |
Percorso nello storage degli oggetti dell'ambiente Conda che si desidera utilizzare a scopo di distribuzione e assegnazione punteggio. Il percorso utilizza la sintassi seguente: Nota: se i campi dell'ambiente Conda di inferenza non vengono specificati, il servizio torna automaticamente a un ambiente Conda predefinito gestito dal team di servizi. Il runtime
|
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_PYTHON_VERSION |
Sì |
Versione Python dell'ambiente Conda che si desidera utilizzare per la distribuzione del modello. Le versioni Python supportate sono Nota: se il campo Il runtime
|
Requisiti predefiniti di comportamento e compatibilità
Se uno o più campi dell'ambiente Conda di inferenza non vengono specificati, il servizio torna a un runtime predefinito gestito dal servizio.
Valori INFERENCE_ENV_PATH predefiniti:
- AMD (x86_64):
service_pack/cpu/General_Machine_Learning_for_CPUs_on_Python_3.12/1.0/generalml_p312_cpu_x86_64_v1 - BRACCIO (aarch64):
service_pack/cpu/ARM_Pack_for_Machine_Learning_on_Python_3.12/1.0/armml_p312_cpu_aarch64_v1
Il valore predefinito INFERENCE_PYTHON_VERSION è Python 3.12.
Il fallback alle impostazioni predefinite può comunque causare il fallimento della creazione della distribuzione del modello. Verificare che le versioni degli ambienti compatibili con INFERENCE_ENV_PATH e INFERENCE_PYTHON_VERSION facciano riferimento a tali versioni.
Schema
Di seguito è riportato lo schema del file 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"
]
}
}
}
}
}
File di esempio per la distribuzione del modello
Di seguito è riportato un file runtime.yaml di esempio per una risorsa di distribuzione del modello 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.12'
Altri file artifact
Oltre a score.py e runtime.yaml, è possibile includere altri file necessari per eseguire il modello nell'artifact. tra cui:
-
Rappresentazione in serie dell'oggetto valutatore. Ad esempio,
onnx,pkl,hdf5ojson. -
File CSV, tabella dati di ricerca e così via.
- Moduli Python extra importati in
score.py.Importante
Per i moduli Python extra importati inscore.py, inserire il CAP di qualsiasi codice utilizzato per l'inferenza allo stesso livello discore.py(o in una directory figlio). Se sono presenti file richiesti a livelli di directory superiori al filescore.py, questi vengono ignorati e potrebbero causare un errore di distribuzione.
Se si sta salvando il modello utilizzando la console, l'interfaccia CLI o gli SDK di Oracle Cloud, comprimere i file insieme ai file score.py e runtime.yaml.
Se si utilizza ADS per salvare il modello, copiare tutti i file nella directory in cui l'artifact viene creato temporaneamente prima di salvare il modello nel catalogo. ADS comprime l'intera directory artifact e la invia al catalogo modelli.
L'artifact ora supporta modelli non compressi fino a 6 GB quando il modello viene salvato utilizzando ADS, CLI o SDK. Il limite è di 100 MB quando si utilizza la console di Oracle Cloud.