モデル・アーティファクトの準備
モデルのトレーニング後、モデル・アーティファクトを作成して、モデル・カタログにモデルとともに保存する必要があります。
これにより、モデル・メタデータを追跡するためのモデル・アーティファクトの一元化されたストレージが作成されます。
モデル・アーティファクトは、モデル・デプロイメントとしてモデルをデプロイする、またはノートブック・セッションに再度ロードするために必要なファイルのzipアーカイブです。
様々な機械学習フレームワークおよびモデル形式のモデル・アーティファクトを含む様々なモデル・カタログの例が提供されています。ONNX、Scikit-learn、Keras、PyTorch、LightGBMおよびXGBoostモデルの例があります。次のファイルを含むモデル・アーティファクト・テンプレートを取得して開始します:
ファイル | 説明 |
---|---|
score.py |
シリアライズされたモデル・オブジェクトをメモリーにロードするためのカスタム・ロジックを含み、推論エンドポイント(predict() )を定義します。 |
runtime.yaml |
データ・サイエンス・モデル・デプロイメントを使用してモデルをデプロイするときに使用するconda環境について説明します。 |
README.md |
モデル・アーティファクトを準備し、モデル・カタログに保存するための一連のステップバイステップの指示を提供します。このステップに従うことを強くお薦めします。 |
artifact-introspection-test/requirements.txt |
イントロスペクション・テストを実行する前にローカル環境にインストールする必要があるサードパーティの依存関係をリストします。 |
artifact-introspection-test/model_artifact_validate.py |
モデル・アーティファクトをモデル・カタログに保存する前にモデル・アーティファクトに対して実行できるオプションの一連のテスト定義を提供します。これらのモデル・イントロスペクション・テストは、モデル・アーティファクトを準備する際の最も一般的なエラーの多くを取得します。 |
モデル・アーティファクトのディレクトリ構造は、次の例と一致する必要があります:
.
|-- runtime.yaml
|-- score.py
|--<your-serialized-model>
|--<your-custom-module.py>
score.py
でインポートされるその他のPythonモジュール。推測に使用されるコードは、score.py
と同じレベルまたはその下のレベルで圧縮することをお薦めします。必要なファイルがscore.py
ファイルの前のフォルダ・レベルにある場合、ファイルは無視され、デプロイメントが失敗する可能性があります。
score.pyファイル
このファイルには、モデルをメモリーにロードし、予測を行うために必要な関数定義が含まれています。
load_model()
およびpredict()
という2つの関数がコールされます。関数のパラメータはカスタマイズできません。たとえば、エスティメータ・オブジェクトの推測メソッドをコールする前に、predict()
でデータ変換を定義できます。複数のエスティメータ・オブジェクトをメモリーにロードし、アンサンブル評価を実行できます。predict()
関数は、モデル・デプロイメントの/predict
エンドポイントの背後にあります。predict()
のdata
パラメータのデータ型が、モデル・デプロイメントで予想されるペイロード形式と一致していることを確認します。
モデル・デプロイメントでは、JSONペイロードおよびバイトのみがサポートされます。predict()
のデータ・パラメータがJSON BLOBまたはバイトであることを確認します。
ADS (oracle-ads
)は、モデル登録フレームワーク固有のクラスを提供します。たとえば、SklearnModel
クラスを.prepare()
とともに使用すると、デフォルトでADSはモデルをjoblibにシリアライズします。XgboostModel
を使用すると、デフォルトで.prepare()
はモデルをJSONファイルに保存します。
score.py
テンプレートは、load_model()
を使用してモデル・エスティメータ・オブジェクトを返します。predict()
関数は、データおよびload_model()
によって返されたモデル・オブジェクトを引数とします。どちらの関数もカスタマイズ可能で、定義が必要です。predict()
の本体には、モデル予測が行われる前に、データ変換およびその他のデータ操作タスクを含めることができます。カスタムPythonモジュールは、アーティファクト・ファイルで使用可能な場合はscore.py
でインポートでき、テンプレートなどの推論目的で使用されるconda環境の一部として使用できます。
predict()
で呼び出される他のヘルパー関数は、score.py
で定義できます。たとえば、カスタム変換を定義するdata_transformation()
関数を定義できます。
これらのファイルを効果的に作成するには、モデル・アーティファクトのベスト・プラクティスを確認してください。
score.py
ファイルを含む様々なモデル・カタログの例およびテンプレートが提供されています。ONNX、scikit-learn、Keras、PyTorch、LightGBMおよびXGBoostモデルの例があります。