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.pyruntime.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).
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: 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
|
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 Hinweis: Wenn das Feld Die Standardlaufzeit
|
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,hdf5oderjson. -
Eine CSV-Datei, eine Lookup-Datentabelle usw.
- Zusätzliche Python-Module, die in
score.pyimportiert werden.Wichtig
Bei zusätzlichen Python-Modulen, die inscore.pyimportiert werden, muss jeder Code, der für Inferenz verwendet wird, auf derselben Ebene wiescore.py(oder in einem untergeordneten Verzeichnis) komprimiert werden. Wenn erforderliche Dateien auf Verzeichnerebenen über der Dateiscore.pyvorhanden 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.
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.