データベースからOracle Machine Learning Servicesへのデータベース内モデルのデプロイ
この例では、データベースからOracle Machine Learning Servicesにモデルをデプロイする方法を示します。
Linuxユーティリティ
jq
を使用して、JSON出力を読取り可能な形式に解析できます。jq
ユーティリティは、主要なLinux配布リポジトリのすべてに含まれています。Oracle LinuxおよびRed Hatシステムでは、次のコマンドを使用してインストールされます。 $ sudo yum install jq
ノート:
cURLコマンドでjq
を使用しても、HTTPレスポンスは返されません。HTTPレスポンスを返すには、jq
を削除し、curlコマンドに-i
フラグを追加します。
この例では、分類モデル
CLASS_MODEL
をデータベースからOMLサービス・リポジトリにデプロイする方法を示します。ここでは、次のステップを実行します:
- データベースからOracle Machine Learning Servicesにモデルをインポートする
- モデル・スコアリング・エンドポイントを作成する
- エンドポイント詳細の取得
- そのモデルを使用してスコアリングする
モデルをデプロイするには:
- モデルのインポート: データベースからOMLサービスにモデルをインポートするには、次のcURLコマンドを実行します:
curl -i -X POST --header "Authorization: Bearer ${token}" \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ "<oml-cloud-service-location-url>/omlmod/v1/models" \ -d '{"dbModelName":"CLASS_MODEL", "modelSchemaName": "OMLUSER", "modelName":"CLASS_MODEL", "modelType":"OML", "description": "testing JSON structure", "namespace": "OML_MODELS", "shared": true, "version": "1.0"}'
次のパラメータを指定する必要があります:dbModelName:
これは、データベース内のモデル名です。modelSchemaName:
これは、データベース内モデルのスキーマです。デフォルトはユーザー・スキーマです。ただし、ユーザーは、別のスキーマ内のモデルに対する権限がある場合でも、それをOracle Machine Learning Servicesリポジトリに格納できます。modelName:
これは、Oracle Machine Learning Servicesリポジトリに格納する、既存のPOSTコール内と同じ名前です。modelType:
description:
このモデルの説明を入力します。namespace:
モデル・ネームスペースの名前を入力します。shared:
TRUE
と入力すると、データベース・スキーマへのアクセス権を持つユーザーはモデルを表示およびデプロイできます。そうしない場合は、FALSE
と入力します。version:
モデルのバージョンを入力します。バージョンの形式はxx.xx
にする必要があります。ここで、x
は数値です。
このコマンドでは、モデルがリポジトリに格納されます。この例では、モデルIDは308a5b01-1d2c-4f7b-b612-e9951814689f
です。このコマンドにより、次の情報が返されます。HTTP/1.1 201 Created Date: Wed, 07 May 2025 14:29:13 GMT Content-Type: application/json Content-Length: 205 Connection: keep-alive Strict-Transport-Security: max-age=31536000;includeSubDomains X-Content-Type-Options: nosniff Location: https://qtraya2braestch-omlla.adb.us-sanjose-1.oraclecloudapps.com/omlmod/v1/models/308a5b01-1d2c-4f7b-b612-e9951814689f {"modelId":"308a5b01-1d2c-4f7b-b612-e9951814689f","links":[{"rel":"self","href":https://qtraya2braestch-omlla.adb.us-sanjose-1.oraclecloudapps.com/omlmod/v1/models/308a5b01-1d2c-4f7b-b612-e9951814689f}]}
- スコアリング・エンドポイントの作成: OMLモデル・スコアリング・エンドポイントを作成するには、次のcURLコマンドを実行します。
curl -X POST "$<oml-cloud-service-location-url>/omlmod/v1/deployment" \ --header 'Content-Type: application/json' \ --header "Authorization: Bearer ${token}" \ --data '{ "modelId":"308a5b01-1d2c-4f7b-b612-e9951814689f", "uri":"CLASS_MODEL2" }'
このコマンドは、スコアリング・エンドポイントを作成し、次の情報を返します:{"links":[{"rel":"self","href":"<oml-cloud-service-location-url>/omlmod/v1/deployment/CLASS_MODEL2"}],"modelId":"308a5b01-1d2c-4f7b-b612-e9951814689f","uri":"CLASS_MODEL2","deployedOn":"2025-05-07T14:34:09.289424Z"}
- エンドポイント詳細の取得: URIで識別されるモデル・エンドポイント詳細を取得するには、次のcURLコマンドを実行します。
curl -X GET "$<oml-cloud-service-location-url>/omlmod/v1/deployment/CLASS_MODEL2" \ --header "Authorization: Bearer $token" | jq
この例では、CLASS_MODEL2
がそのURIです。このコマンドは、次のモデル・エンドポイント詳細を返します。{"links":[{"rel":"self","href":https://qtraya2braestch-omlla.adb.us-sanjose-1.oraclecloudapps.com/omlmod/v1/deployment/CLASS_MODEL2}],"modelId":"308a5b01-1d2c-4f7b-b612-e9951814689f","uri":"CLASS_MODEL2","deployedOn":"2025-05-07T14:34:09.(base) bash-4.4$ curl -X GET "$<oml-cloud-service-location-url>/omlmod/v1/deployment/CLASS_MODEL2" \ > --header "Authorization: Bearer $token" | jq { "version": "1.0", "modelType": "OML", "createdBy": "OMLUSER", "modelId": "308a5b01-1d2c-4f7b-b612-e9951814689f", "description": "testing JSON structure", "modelName": "CLASS_MODEL", "metadata": { "miningFunction": "CLASSIFICATION", "algorithm": "DECISION_TREE", "attributes": [ { "name": "PETAL.LENGTH", "attributeType": "NUMERICAL" }, { "name": "PETAL.WIDTH", "attributeType": "NUMERICAL" } ], "output": { "name": "SPECIES", "attributeType": "CATEGORICAL" }, "labels": [ "setosa", "versicolor", "virginica" ], "modelName": "CLASS_MODEL" }, "links": [ { "rel": "self", "href": https://qtraya2braestch-omlla.adb.us-sanjose-1.oraclecloudapps.com/omlmod/v1/deployment/CLASS_MODEL2 } ], "namespace": "OML_MODELS", "shared": true, "uri": "CLASS_MODEL2", "deployedOn": "2025-05-07T14:34:09.289424Z" }
- モデルによるスコアリング: URIで識別されるエンドポイントを使用してOMLモデルでスコアリングするには、次のcURLコマンドを実行します:
curl -X POST "$<oml-cloud-service-location-url>/omlmod/v1/deployment/CLASS_MODEL/score" \ --header "Authorization: Bearer ${token}" \ --header 'Content-Type: application/json' \ -d '{"inputRecords":[{"SPECIES":"virginica"}],"topN":2, "topNdetails":2}' }'
この例では、CLASS_MODEL2
がそのURIです。このコマンドは、モデルでスコアリングします。ここでは、次のスコアリング結果で示されているように、topN
によって分類結果がフィルタされて、最も高い確率がN
個表示されます:{"scoringResults":[{"classifications":[{"label":"setosa","probability":1.0},{"label":"versicolor","probability":0.0}],"details":[{"columnName":"PETAL.LENGTH","weight":0.667}]}]}
- スコアリング・エンドポイントの削除: URIで識別されるスコアリング・エンドポイントを削除するには、次のcURLコマンドを実行します:
curl -i -X DELETE "<oml-cloud-service-location-url>/omlmod/v1/deployment/CLASS_MODEL2" \ --header "Authorization: Bearer $token"
この例では、CLASS_MODEL
がURIです。このコマンドは、スコアリング・エンドポイントを削除し、次の情報を返します。HTTP/1.1 204 No Content Date: Tue, 06 May 2025 01:11:20 GMT Connection: keep-alive Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET, POST, DELETE, PUT Access-Control-Allow-Headers: X-Requested-With, Content-Type
- モデルの削除: modelIdで識別されるモデルを削除するには、次のcURLコマンドを実行します。
curl -i -X DELETE "<oml-cloud-service-location-url>/omlmod/v1/models/074abec1-72e3-413e-bc4a-d6f9f486de20" \ --header "Authorization: Bearer $token"
この例では、074abec1-72e3-413e-bc4a-d6f9f486de20
がmodelId.
です。このコマンドは、モデルを削除し、次の情報を返します。HTTP/1.1 204 No Content Date: Tue, 06 May 2025 01:12:13 GMT Connection: keep-alive Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET, POST, DELETE, PUT Access-Control-Allow-Headers: X-Requested-With, Content-Type