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.py
  • runtime.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.

Importante

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 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 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 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

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: oci://<bucket-name>@<namespace>/<file-path>

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 INFERENCE_ENV_PATH predefinito utilizza quanto segue:

AMD (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

** Fallback to default setting may lead to deployment failure **

MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_PYTHON_VERSION

Versione Python dell'ambiente Conda che si desidera utilizzare per la distribuzione del modello.

Le versioni Python supportate sono 3.10, 3.11 e 3.12.

Nota: se il campo INFERENCE_PYTHON_VERSION non viene specificato, il servizio torna automaticamente a una versione Python predefinita gestita dal team di servizi.

Il runtime INFERENCE_PYTHON_VERSION predefinito utilizza Python 3.12.

** Fallback to default setting may lead to deployment failure **

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, hdf5 o json.

  • File CSV, tabella dati di ricerca e così via.

  • Moduli Python extra importati in score.py.
    Importante

    Per i moduli Python extra importati in score.py, inserire il CAP di qualsiasi codice utilizzato per l'inferenza allo stesso livello di score.py (o in una directory figlio). Se sono presenti file richiesti a livelli di directory superiori al file score.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.

Nota

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.