Archivo runtime.yaml

El archivo runtime.yaml define la configuración de tiempo de ejecución necesaria para desplegar un modelo mediante la función Despliegue de modelo del servicio Data Science.

Un artefacto de modelo debe incluir ambos:

  • score.py
  • runtime.yaml

El archivo runtime.yaml especifica el entorno Conda utilizado durante la inferencia, lo que garantiza que el modelo desplegado se ejecute con las dependencias de tiempo de ejecución correctas.

Varios ejemplos de catálogo de modelos incluyen archivos runtime.yaml de ejemplo.

Hemos proporcionado varios ejemplos de catálogo de modelos, incluidos los archivos runtime.yaml.

Campos soportados

A continuación, se muestran los campos soportados en runtime.yaml.

A medida que la estructura de artefacto de modelo evoluciona, el esquema runtime.yaml también puede cambiar. Los campos admitidos corresponden al MODEL_ARTIFACT_VERSION (3.0) actual.

Importante

Además, asegúrese de que INFERENCE_PYTHON_VERSION y INFERENCE_ENV_PATH sean compatibles entre sí para evitar errores de despliegue.
Campo Necesario Descripción
MODEL_ARTIFACT_VERSION Versión de este formato de artefacto. Esta versión es la 3.0. ADS lo extrae automáticamente cuando el modelo se guarda en una sesión de bloc de notas.
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_SLUG Nombre para URL del entorno conda que desea utilizar para fines de despliegue y puntuación. Por lo general, el entorno de inferencia es el mismo que el entorno de entrenamiento pensado que no tiene que ser el caso. Por ejemplo, puede entrenar un modelo en el entorno conda, serializarlo como modelo de AA general y, a continuación, utilizar un entorno conda de AA general para desplegarlo.
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_TYPE Tipo de entorno conda que desea utilizar para fines de despliegue y puntuación. Dos valores posibles, data_science o published.
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_PATH

Ruta de acceso en Object Storage del entorno conda que desea utilizar para fines de despliegue y puntuación. La ruta utiliza la siguiente sintaxis: oci://<bucket-name>@<namespace>/<file-path>

Nota: Si no se especifican los campos de entorno Conda de inferencia, el servicio vuelve automáticamente a un entorno Conda por defecto gestionado por el equipo de servicio.

El tiempo de ejecución INFERENCE_ENV_PATH por defecto utiliza lo siguiente:

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

Versión de Python del entorno conda que desea utilizar para el despliegue del modelo.

Las versiones admitidas de Python son 3.10, 3.11 y 3.12.

Nota: Si no se especifica el campo INFERENCE_PYTHON_VERSION, el servicio vuelve automáticamente a una versión de Python por defecto gestionada por el equipo de servicio.

El tiempo de ejecución INFERENCE_PYTHON_VERSION por defecto utiliza Python 3.12.

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

Requisitos predeterminados de compatibilidad y comportamiento

Si no se especifican uno o más campos de entorno Conda de inferencia, el servicio vuelve a un tiempo de ejecución por defecto gestionado por el servicio.

Valores INFERENCE_ENV_PATH por defecto:

  • ENMIENDA (x86_64): service_pack/cpu/General_Machine_Learning_for_CPUs_on_Python_3.12/1.0/generalml_p312_cpu_x86_64_v1
  • BRAZO (aarch64): service_pack/cpu/ARM_Pack_for_Machine_Learning_on_Python_3.12/1.0/armml_p312_cpu_aarch64_v1

El valor por defecto INFERENCE_PYTHON_VERSION es Python 3.12.

La reserva a la configuración por defecto puede hacer que falle la creación del despliegue de modelo. Asegúrese de que INFERENCE_ENV_PATH y INFERENCE_PYTHON_VERSION hagan referencia a versiones de entorno compatibles.

Esquema

A continuación se muestra el esquema del archivo 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"
                    ]
                }
            }
        }
    } 
}

Archivo de ejemplo para el despliegue de modelo

A continuación, se muestra un archivo runtime.yaml de ejemplo para un recurso del despliegue del modelo de 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'

Otros archivos de artefacto

Además de score.py y runtime.yaml, puede incluir cualquier archivo necesario para ejecutar el modelo en el artefacto. Entre ellos, se incluyen:

  • Una representación serializada del objeto de estimador. Por ejemplo, onnx, pkl, hdf5 o json.

  • Un archivo CSV, una tabla de datos de consulta, etc.

  • Módulos Python adicionales que se importan en score.py.
    Importante

    Para módulos Python adicionales que se importan en score.py, comprima cualquier código utilizado para la inferencia en el mismo nivel que score.py (o en un directorio secundario). Si hay archivos necesarios presentes en niveles de directorio por encima del archivo score.py, estos se ignorarán y lo cual puede provocar un fallo de despliegue.

Si va a guardar su modelo utilizando la consola, la CLI o el SDK de Oracle Cloud, solo tiene que compprimir en zip los archivos junto con los archivos score.py y runtime.yaml.

Si utiliza ADS para guardar el modelo, copie todos los archivos en el directorio en el que se ha creado temporalmente el artefacto antes de guardar el modelo en el catálogo. ADS comprime el directorio de artefactos completo y lo envía al catálogo de modelos.

Nota

El artefacto ahora soporta modelos sin comprimir de hasta 6 GB cuando el modelo se guarda mediante ADS, la CLI o los SDK. El límite es de 100 MB cuando se utiliza la consola de Oracle Cloud.