runtime.yamlファイル

runtime.yamlファイルは、データ・サイエンス・サービスのモデル・デプロイメント機能を使用してモデルをデプロイするために必要なランタイム構成を定義します。

モデル・アーティファクトには、次の両方を含める必要があります。

  • score.py
  • runtime.yaml

runtime.yamlファイルは、推論中に使用されるConda環境を指定し、デプロイされたモデルが正しいランタイム依存関係で実行されるようにします。

モデル・カタログの例には、サンプルruntime.yamlファイルが含まれています。

runtime.yamlファイルを含む様々なモデル・カタログの例が提供されています。

サポートされているフィールド

次に、runtime.yamlでサポートされているフィールドを示します。

モデル・アーティファクト構造が進化すると、runtime.yamlスキーマも変更される可能性があります。サポートされているフィールドは、現在のMODEL_ARTIFACT_VERSION (3.0)に対応します。

重要

また、デプロイメント・エラーを防ぐために、INFERENCE_PYTHON_VERSIONINFERENCE_ENV_PATHが相互に互換性があることを確認してください。
フィールド 必須 説明
MODEL_ARTIFACT_VERSION はい このアーティファクト形式のバージョン。このバージョンは3.0です。モデルがノートブック・セッションに保存されると、ADSによって自動的に抽出されます。
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_SLUG はい デプロイメントおよびスコアリングに使用するconda環境のスラグ。通常、推論環境は、そうである必要がないと考えるトレーニング環境と同じです。たとえば、1つのconda環境でモデルをトレーニングし、一般的なMLモデルとしてシリアライズしてから、一般的なML conda環境を使用してデプロイできます。
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_TYPE はい デプロイメントおよびスコアリングに使用するconda環境のタイプ。使用可能な値は、data_scienceまたはpublishedのいずれかです。
MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_ENV_PATH はい

デプロイメントおよびスコアリングの目的で使用するconda環境のオブジェクト・ストレージ上のパス。パスは次の構文を使用します: oci://<bucket-name>@<namespace>/<file-path>

ノート:推論Conda環境フィールドが指定されていない場合、サービスはサービス・チームによって管理されるデフォルトのConda環境に自動的にフォールバックします。

デフォルトの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

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

MODEL_DEPLOYMENT.INFERENCE_CONDA_ENV.INFERENCE_PYTHON_VERSION はい

モデル・デプロイメントに使用するconda環境のPythonのバージョン。

サポートされているPythonのバージョンは、3.103.11および3.12です。

ノート: INFERENCE_PYTHON_VERSIONフィールドが指定されていない場合、サービスはサービス・チームによって管理されるデフォルトのPythonバージョンに自動的にフォールバックします。

デフォルトのINFERENCE_PYTHON_VERSIONランタイムは、Python 3.12を使用します。

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

デフォルトの動作および互換性の要件

1つ以上の推論Conda環境フィールドが指定されていない場合、サービスはサービス管理のデフォルト・ランタイムにフォールバックします。

デフォルトの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

デフォルトのINFERENCE_PYTHON_VERSIONはPython 3.12です。

デフォルト設定にフォールバックしても、モデル・デプロイメントの作成が失敗する可能性があります。INFERENCE_ENV_PATHおよびINFERENCE_PYTHON_VERSIONが互換性のある環境バージョンを参照していることを確認します。

スキーマ

次に、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"
                    ]
                }
            }
        }
    } 
}

モデル・デプロイメントのサンプル・ファイル

データ・サイエンス・モデル・デプロイメント・リソースのruntime.yamlファイルの例は次のとおりです:

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'

その他のアーティファクト・ファイル

score.pyおよびruntime.yamlに加えて、アーティファクトでモデルを実行するために必要な追加のファイルを組み込めます。これには次のようなものがあります:

  • エスティメータ・オブジェクトをシリアライズしたもの。たとえば、onnxpklhdf5またはjsonです。

  • CSVファイル、参照データ表など。

  • score.pyでインポートされる追加のPythonモジュール。
    重要

    score.pyにインポートされる追加のPythonモジュールの場合、score.py (または子ディレクトリ)と同じレベルで推論に使用されるコードを省略します。必要なファイルがscore.pyファイルより上のディレクトリ・レベルにある場合、それらのファイルは無視され、デプロイメントが失敗する可能性があります。

Oracle Cloudコンソール、CLIまたはSDKを使用してモデルを保存する場合は、score.pyおよびruntime.yamlファイルとともにファイルを圧縮するだけです。

モデルの保存にADSを使用している場合は、モデルをカタログに保存する前に、アーティファクトが一時的に作成されるディレクトリですべてのファイルをコピーします。ADSはアーティファクト・ディレクトリ全体を圧縮し、モデル・カタログに送信します。

ノート

アーティファクトでは、ADS、CLIまたはSDKを使用してモデルを保存するときに、6 GBまでの非圧縮モデルがサポートされるようになりました。Oracle Cloudコンソールを使用する場合、制限は100MBです。