Oracle Machine Learningモデルの使用

Oracle Machine Learning Servicesは、Oracle Databaseをバックエンド・リポジトリとして使用する中間層Webアプリケーションです。Oracle Machine Learning Servicesでは、Oracle Machine LearningモデルおよびONNX形式モデルのモデル・デプロイメントをサポートしています。モデルのデプロイメントとは、機械学習モデルを本番環境に統合する方法のことです。

サポートされる機能

Oracle Machine Learning ServicesのREST APIでは、Oracle Machine LearningモデルおよびONNX形式モデルに対して次の機能がサポートされています。
  • デプロイ済モデルの格納、削除およびリスト
  • モデルのメタデータおよびコンテンツの取得
  • ネームスペースでのモデルの編成
  • モデル・エンドポイントの作成、削除およびリスト
  • モデル・エンドポイントのSwaggerドキュメントの取得
  • モデルの詳細の取得
  • エンドポイント詳細の取得
  • モデル・エンドポイントを使用したスコアリング

サポートされる機械学習モデル

Oracle Machine Learning ServicesのREST APIでは、次の機械学習モデルがサポートされています:
  • 分類モデル
  • クラスタリング・モデル
  • 特徴抽出モデル
  • 回帰モデル

ノート:

パーティション化されたモデルも含まれます。
数値列、カテゴリ列、テキスト列およびネストした列をサポートしています。予測の詳細は、数値列およびカテゴリ列ではサポートされますが、ネストした列およびテキスト列ではサポートされません。

ノート:

SQL変換が埋め込まれたモデルはサポートされていません。

デプロイメント方法

cURLコマンド

この項では、次のことのためのcURLコマンドを示します:
  • Oracle Machine Learning ServicesのREST APIの表示
  • 保存済モデルのリストの取得
  • モデルIDの参照による特定のモデルの表示
  • モデル名でフィルタされたモデルのリストの取得
  • バージョンおよびネームスペースでフィルタされたモデルのリストの取得

1: Oracle Machine Learning ServicesのREST APIの表示

この例では、OML ServicesのREST APIを表示する方法を示します。

次のcURLコマンドを実行して、Oracle Machine Learning ServicesのREST APIを表示します。
curl -i -X GET --header "Authorization: Bearer ${token}" "<oml-cloud-service-location-url>/omlmod/v1/api"
このコマンドは、次の情報を返し、Oracle Machine Learning ServicesのAPIを表示します。
HTTP/1.1 200 OK
Date: Tue, 10 Nov 2021 18:03:08 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, DELETE, PUT
Access-Control-Allow-Headers: X-Requested-With, Content-Type
{
  "openapi": "3.0.0",
  "info": {
    "title": "OML Services APIs",
    "description": "APIs for the Oracle Machine Learning Services.",
    "termsOfService": "http://swagger.io/terms/",
    "contact": {
      "name": "Simeon Greene",
      "url": "http://www.oracle.com",
      "email": "simeon.m.greene@oracle.com"
    },
    "version": "1.0.0"
  },
  "servers": 
  ..
  ..

2: 保存済モデルのリストの取得

この例では、リポジトリに保存されているすべてのOMLモデルのリストを取得する方法を示します。

次のcURLコマンドを実行して、保存済モデルのリストを取得します。
curl -X GET --header "Authorization: Bearer ${token}" "<oml-cloud-service-location-url>/omlmod/v1/models" | jq
このコマンドは、格納されているすべてのOMLモデルのリストをモデル・メタデータとともに返します。
{
  "items": [
    {
      "version": "1.5",
      "modelType": "OML",
      "createdBy": "OMLUSER",
      "modelId": "1b6fed66-bacb-48c7-8549-14542abe2a82",
      "modelName": "OML_Insurance_Affinity",
      "links": [
        {
          "rel": "self",
          "href": "https://qtraya2braestch-omldb.adb.us-sanjose-1.oraclecloudapps.com/omlmod/v1/models/1b6fed66-bacb-48c7-8549-14542abe2a82"
        }
      ],
      "namespace": "OML_MODELS",
      "shared": true,
      "storedOn": "2021-11-16T20:43:28.733Z"
    },
    {
      "version": "1.4",
      "modelType": "ONNX",
      "createdBy": "OMLUSER",
      "modelId": "228707fa-218a-4fb9-b1e7-bc111059a04f",
      "modelName": "onnxTitanicModel",
      "links": [
        {
          "rel": "self",
          "href": "https://qtraya2braestch-omldb.adb.us-sanjose-1.oraclecloudapps.com/omlmod/v1/models/228707fa-218a-4fb9-b1e7-bc111059a04f"
        }
      ],
      "namespace": "ONNX_MODELS",
      "shared": true,
      "storedOn": "2021-11-16T21:07:13.291Z"
    },
...
...
}
  ]
}

3: モデルIDの参照による特定のモデルの表示

この例では、モデルIDを参照して特定のモデルを表示する方法を示します。

ノート:

モデルIDを参照してモデルを表示するには、最初にmodel_Idをエクスポートする必要があります。
次のコマンドを実行して、モデルIDを変数$model_Idにエクスポートします。
export model_Id=bc5cf626-d4f6-45ba-8a50-c3e57a008bd7

この例では、bc5cf626-d4f6-45ba-8a50-c3e57a008bd7model_Idです。

次のcURLコマンドを実行して、model_Idを参照してモデルを表示します。
curl -X GET --header "Authorization: Bearer ${token}" "<oml-cloud-service-location-url>/omlmod/v1/models/$model_Id" | jq
このコマンドは、model_Id bc5cf626-d4f6-45ba-8a50-c3e57a008bd7のモデルについて次の情報を返します。
{
  "version": "1.0",
  "modelType": "OML",
  "createdBy": "OMLUSER",
  "modelId": "bc5cf626-d4f6-45ba-8a50-c3e57a008bd7",
  "modelName": "GLM_MODEL",
  "links": [
    {
      "rel": "self",
      "href": "https://qtraya2braestch-omldb.adb.us-sanjose-1.oraclecloudapps.com/omlmod/v1/models/bc5cf626-d4f6-45ba-8a50-c3e57a008bd7"
    }
  ],
  "namespace": "OML_MODELS",
  "shared": true,
  "storedOn": "2021-11-06T22:16:29.387Z"
}

4: モデル名でフィルタされたモデルのリストの取得

この例では、モデル名でフィルタされたモデルのリストを取得する方法を示します。

次のコマンドを実行して、modelNameでフィルタされたモデルのリストを取得します。この例では、GLM_MODELmodelNameです。

curl -X GET --header "Authorization: Bearer $token" "<oml-cloud-service-location-url>/omlmod/v1/models?modelName=GLM_MODEL" | jq
このコマンドは、次の情報を返します。
{
  "items": [
    {
      "version": "1.5",
      "modelType": "OML",
      "createdBy": "OMLUSER",
      "modelId": "bc5cf626-d4f6-45ba-8a50-c3e57a008bd7",
      "modelName": "GLM_Model",
      "links": [
        {
          "rel": "self",
          "href": "https://qtraya2braestch-omldb.adb.us-sanjose-1.oraclecloudapps.com/omlmod/v1/models/1b6fed66-bacb-48c7-8549-14542abe2a82"
        }
      ],
      "namespace": "OML_MODELS",
      "shared": true,
      "storedOn": "2021-11-16T20:43:28.733Z"
    },
  }
  ]
}

5: バージョンおよびネームスペースでフィルタされたモデルのリストの取得

この例では、モデルのバージョンおよびネームスペースでフィルタされたモデルのリストを取得する方法を示します。

次のcURLコマンドを実行して、version=1.0およびnamespace=OML_MODELSでフィルタされたモデルのリストを取得します。
curl -X GET --header "Authorization: Bearer $token" "<oml-cloud-service-location-url>/omlmod/v1/models?version=1.0&namespace=OML_MODELS" | jq
このコマンドは、次の情報を返します。
{
  "items": [
    {
      "version": "1.0",
      "modelType": "OML",
      "createdBy": "OMLUSER",
      "modelId": "bc5cf626-d4f6-45ba-8a50-c3e57a008bd7",
      "modelName": "GLM_MODEL",
      "links": [
        {
          "rel": "self",
          "href": "https://qtraya2braestch-omldb.adb.us-sanjose-1.oraclecloudapps.com/omlmod/v1/models/bc5cf626-d4f6-45ba-8a50-c3e57a008bd7"
        }
      ],
      "namespace": "OML_MODELS",
      "shared": true,
      "storedOn": "2021-11-06T22:16:29.387Z"
    }
  ],
  "links": [
    {
      "rel": "self",
      "href": "https://qtraya2braestch-omldb.adb.us-sanjose-1.oraclecloudapps.com/omlmod/v1/models"
    }
  ]
}