Die Datei runtime.yaml

Die Datei runtime.yaml definiert die Laufzeitkonfiguration, die für das Deployment eines Modells mit dem Modell-Deployment-Feature des Data Science-Service erforderlich ist.

Ein Modellartefakt muss beides enthalten:

  • score.py
  • runtime.yaml

Die Datei runtime.yaml gibt die Conda-Umgebung an, die während der Inferenz verwendet wird. Dadurch wird sichergestellt, dass das bereitgestellte Modell mit den richtigen Laufzeitabhängigkeiten ausgeführt wird.

Einige Modellkatalogbeispiele umfassen runtime.yaml-Beispieldateien.

Wir haben verschiedene Modellkatalogbeispiele bereitgestellt, darunter runtime.yaml-Dateien.

Unterstützte Felder

Die folgenden Felder werden in runtime.yaml unterstützt.

Wenn sich die Modellartefaktstruktur weiterentwickelt, kann sich auch das Schema runtime.yaml ändern. Unterstützte Felder entsprechen der aktuellen MODEL_ARTIFACT_VERSION (3.0).

Wichtig

Stellen Sie außerdem sicher, dass INFERENCE_PYTHON_VERSION und INFERENCE_ENV_PATH miteinander kompatibel sind, um Deployment-Fehler zu vermeiden.
Feld Erforderlich Beschreibung
MODEL_ARTIFACT_VERSION Ja Die Version dieses Artefaktformats. Diese Version lautet 3.0. Sie wird automatisch von ADS extrahiert, wenn das Modell in einer Notizbuchsession gespeichert wird.
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_SLUG Ja Der Slug der Conda-Umgebung, die Sie für Deployment- und Scoringzwecke verwenden möchten. In der Regel ist die Inferenzumgebung die gleiche wie die Trainingsumgebung gedacht, die nicht der Fall sein muss. Beispiel: Sie können ein Modell in einer Conda-Umgebung trainieren, es als allgemeines ML-Modell serialisieren und dann eine allgemeine ML-Conda-Umgebung zum Bereitstellen verwenden.
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_TYPE Ja Der Typ der Conda-Umgebung, die Sie für Deployment- und Scoringzwecke verwenden möchten. Zwei mögliche Werte, entweder data_science oder published.
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_PATH Ja

Der Objektspeicherpfad der Conda-Umgebung, die Sie für Deployment- und Scoringzwecke verwenden möchten. Der Pfad verwendet die folgende Syntax: oci://<bucket-name>@<namespace>/<file-path>

Hinweis: Wenn die Inferenz-Conda-Umgebungsfelder nicht angegeben sind, greift der Service automatisch auf eine vom Serviceteam verwaltete Standard-Conda-Umgebung zurück.

Die Standardlaufzeit INFERENCE_ENV_PATH verwendet Folgendes:

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 Ja

Die Python-Version der Conda-Umgebung, die Sie für das Modell-Deployment verwenden möchten.

Die unterstützten Python-Versionen sind 3.10, 3.11 und 3.12.

Hinweis: Wenn das Feld INFERENCE_PYTHON_VERSION nicht angegeben ist, greift der Service automatisch auf eine vom Serviceteam verwaltete Standard-Python-Version zurück.

Die Standardlaufzeit INFERENCE_PYTHON_VERSION verwendet Python 3.12.

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

Standardanforderungen für Verhalten und Kompatibilität

Wenn mindestens ein Inferenz-Conda-Umgebungsfeld nicht angegeben ist, greift der Service auf eine vom Service verwaltete Standardlaufzeit zurück.

Standardwerte für INFERENCE_ENV_PATH:

  • 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

Die Standard-INFERENCE_PYTHON_VERSION ist Python 3.12.

Ein Fallback auf die Standardeinstellungen kann weiterhin dazu führen, dass das Modell-Deployment nicht erfolgreich erstellt wird. Stellen Sie sicher, dass INFERENCE_ENV_PATH und INFERENCE_PYTHON_VERSION kompatible Umgebungsversionen referenzieren.

Schema

Im Folgenden finden Sie das Schema der Datei 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"
                    ]
                }
            }
        }
    } 
}

Beispieldatei für ein Modell-Deployment

Die folgende runtime.yaml-Beispieldatei für eine Data Science-Modell-Deployment-Ressource:

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'

Andere Artefaktdateien

Zusätzlich zu score.py und runtime.yaml können Sie weitere Dateien, die zum Ausführen des Modells erforderlich sind, in Ihr Artefakt aufnehmen. Dazu können die folgenden Dateien gehören:

  • Eine serialisierte Darstellung Ihres Schätzerobjekts. Beispiel: onnx, pkl, hdf5 oder json.

  • Eine CSV-Datei, eine Lookup-Datentabelle usw.

  • Zusätzliche Python-Module, die in score.py importiert werden.
    Wichtig

    Bei zusätzlichen Python-Modulen, die in score.py importiert werden, muss jeder Code, der für Inferenz verwendet wird, auf derselben Ebene wie score.py (oder in einem untergeordneten Verzeichnis) komprimiert werden. Wenn erforderliche Dateien auf Verzeichnerebenen über der Datei score.py vorhanden sind, werden diese ignoriert und können zu einem Deployment-Fehler führen.

Wenn sie Ihr Modell mit der Oracle Cloud-Konsole, der CLI oder dem SDKs speichern, komprimieren sie die Dateien einfach zusammen mit den Dateien score.py und runtime.yaml.

Wenn Sie das Modell mit ADS speichern, kopieren Sie alle Dateien in das Verzeichnis, in dem das Artefakt vorübergehend erstellt wird, bevor Sie das Modell im Katalog speichern. ADS komprimiert das gesamte Artefaktverzeichnis und sendet es an den Modellkatalog.

Hinweis

Das Artefakt unterstützt jetzt nicht komprimierte Modelle mit bis zu 6 GB, wenn das Modell mit ADS, der CLI oder SDKs gespeichert wird. Das Limit beträgt 100 MB, wenn Sie die Oracle Cloud-Konsole verwenden.