モデル・カタログ
データ・サイエンス・モデル・カタログの操作方法について学習します。
モデル・カタログ
モデル・カタログは、モデル・アーティファクトの一元管理されたリポジトリです。モデル・カタログに格納されているモデルは、チームのメンバー間で共有でき、ノートブック・セッションに再度ロードできます。たとえば、モデル・カタログのモデルは、モデル・デプロイメントを使用してHTTPエンドポイントとしてデプロイすることもできます。
モデル・カタログのモデル・エントリには、次の2つのコンポーネントがあります:
-
モデル・アーティファクトは、保存済モデル・オブジェクトを含むzipアーカイブです。推論を目的としたモデルの使用方法を説明するPythonスクリプト(
score.py
)、およびモデルのランタイム環境をドキュメント化するファイル(runtime.yaml
)。アーティファクト、score.py
およびruntime.yaml
の例は、Githubから取得できます。 -
Git関連情報やカタログへのモデルのプッシュに使用されるスクリプトまたはノートブックなど、モデルの来歴に関するメタデータ。モデルがトレーニングされたリソース(ノートブック・セッションまたはジョブ実行のいずれか)およびトレーニング・ソース・コードへのGit参照をドキュメント化できます。モデル・アーティファクトをADSで保存すると、このメタデータがノートブック・セッション環境から自動的に抽出されます。
モデル・カタログに格納されているモデル・アーティファクトは、設計上不変です。モデルに変更を適用するには、新しいモデルを作成する必要があります。不変性により、不要な変更が防止され、モデル予測の背後にある正確なアーティファクトまで、本番環境のモデルを追跡できるようになります。
コンソールから保存する場合、アーティファクトの最大サイズ制限100MBです。サイズ制限がADS、OCI SDKおよびCLIから削除されました。大規模モデルには、最大400 GBのアーティファクトの制限があります。
モデルの記録
次のオプションを使用して、モデルのトレーニング方法、ユース・ケースおよび必要な予測機能をドキュメント化できます。
ADSでモデルを保存すると、ADSはユーザーにかわって来歴とタクソノミを自動的に取り込みます。
- 来歴
-
モデルの来歴は、モデルの再現性と監査性の向上に役立つドキュメントです。モデルがトレーニングされたリソース(ノートブック・セッションまたはジョブ実行のいずれか)およびトレーニング・ソース・コードへのGit参照をドキュメント化できます。これらのパラメータは、ADS SDKでモデルを保存すると自動的に抽出されます。
Gitリポジトリ内で操作している場合、ADSはGit情報を取得し、モデルの来歴メタデータ・フィールドに自動的に移入できます。
- タクソノミ
-
タクソノミでは、モデル・カタログに保存するモデルを記述できます。事前設定フィールドを使用して、次の情報をドキュメント化できます:
-
機械学習ユース・ケース
-
機械学習モデル・フレームワーク
-
バージョン
-
エスティメータ・オブジェクト
-
ハイパーパラメータ
-
アーティファクト・テスト結果
または、カスタム・メタデータを作成できます。
-
- モデル・イントロスペクション・テスト
-
機械学習モデルのコンテキストにおけるイントロスペクションは、モデル・アーティファクトに対して実行される一連のテストとチェックで、モデルの運用上の健全性のあらゆる側面をテストします。これらのテストは、
score.py
およびruntime.yaml
をターゲットとし、モデル・アーティファクトの一般的なエラーおよび問題を取得することを目的としています。イントロスペクション・テストの結果は、事前定義済のモデル・メタデータの一部です。コンソールを使用してモデルを保存する場合、「ドキュメント・モデル・タクソノミ」を選択したときに、テスト結果を「アーティファクト・テスト結果」フィールドにJSON形式で格納できます。OCI Python SDKを使用してモデルを保存する場合は、ArtifactTestResults
メタデータ・キーを使用します。モデル・アーティファクト・テンプレートの一部として、一連のイントロスペクション・テスト定義を含むPythonスクリプトが含まれています。これらのテストはオプションで、モデルをモデル・カタログに保存する前に実行できます。その後、テスト結果をモデル・メタデータの一部として保存して、OCIコンソールに表示できます。
データ・サイエンスのブログには、モデル・イントロスペクションの使用方法の詳細が記載されています。
- モデル入力および出力スキーマ
-
スキーマ定義は、モデル予測を成功させるために必要な特徴を記述したものです。スキーマ定義は、モデルのクライアントが提供する必要がある必須入力ペイロードを定義するコントラクトです。入力および出力スキーマ定義は、このリリースのモデル・カタログではドキュメント目的でのみ使用されます。スキーマはJSONファイル形式です。
両方のスキーマを定義します。少なくとも、モデル予測には入力スキーマが必要です。
出力スキーマが必ずしも必要なわけではありません。たとえば、モデルが単純な浮動小数点値を返す場合、そのような単純な出力のスキーマを定義することにそれほど価値はありません。モデルの説明でその情報を伝えることができます。