Die Datei runtime.yaml
Zusätzlich zu score.py
muss auch die Datei runtime.yaml
in einem Modellartefakt vorhanden sein.
Zweck von runtime.yaml
:
Bereitstellen der erforderlichen Laufzeit-Conda-Umgebungsreferenz für Modell-Deployment-Zwecke. Dies ist erforderlich, um ein Modell mit dem Modell-Deployment-Feature des Data Science-Service bereitzustellen.
Wir haben verschiedene Modellkatalogbeispiele bereitgestellt, darunter runtime.yaml
-Dateien.
Im Folgenden finden Sie eine Beschreibung der einzelnen Felder in runtime.yaml
. Bei Änderungen der Modellartefaktstruktur ändert sich auch diese Datei, ebenso wie die Version. Felder für die aktuelle Version MODEL_ARTIFACT_VERSION (3.0)
:
Feld | Beschreibung |
---|---|
|
Die Version dieses Artefaktformats. Diese Version lautet 3.0. Sie wird automatisch von ADS extrahiert, wenn das Modell in einer Notizbuchsession gespeichert wird. |
|
Der Slug der Conda-Umgebung, die Sie für Deployment- und Scoringzwecke verwenden möchten. Normalerweise ist die Inferenzumgebung die gleiche wie die Trainingsumgebung, die nicht der Fall sein muss. Beispiel: Sie können ein Modell in einer Conda-Umgebung trainieren, als ONNX-Modell serialisieren und dann mit einer ONNX-Conda-Umgebung bereitstellen. |
|
Der Typ der Conda-Umgebung, die Sie für Deployment- und Scoringzwecke verwenden möchten. Zwei mögliche Werte: |
|
Der Objektspeicherpfad der Conda-Umgebung, die Sie für Deployment- und Scoringzwecke verwenden möchten. Der Pfad folgt der Syntax |
|
Die Python-Version der Conda-Umgebung, die Sie für das Modell-Deployment verwenden möchten. Die unterstützten Python-Versionen sind |
runtime.yaml-Schema
{
"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"}
}
}
}
}
}
}
Beispieldatei für ein Modell-Deployment
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.7'
Andere Artefaktdateien
Zusätzlich zu score.py
und runtime.yaml
können Sie weitere Dateien aufnehmen, die zum Ausführen des Modells erforderlich sind. Dazu können die folgenden Dateien gehören:
-
Eine serialisierte Darstellung Ihres Schätzerobjekts. Beispiel:
onnx
,pkl
,hdf5
oderjson
. -
Eine CSV-Datei, eine Lookup-Datentabelle usw.
-
Zusätzliche Python-Module, die in
score.py
importiert werden.Wichtig
Zusätzliche Python-Module, die in
score.py
importiert werden. Jeder Code, der für Inferenz verwendet wird, muss auf derselben Ebene wiescore.py
oder einer Ebene darunter komprimiert werden. Wenn erforderliche Dateien auf Ordnerebenen über der Dateiscore.py
vorhanden sind, werden sie ignoriert und können zu einem Deployment-Fehler führen.
Wenn Sie Ihr Modell mit der OCI-Konsole, der CLI oder den 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 unkomprimierte Modelle mit bis zu 6 GB, wenn das Modell mit ADS, der CLI oder SDKs gespeichert wird. Bei Verwendung der OCI-Konsole beträgt der Grenzwert 100 MB.