LOAD_ONNX_MODEL

この手順では、ONNXモデルをデータベースにロードできます。

構文

DBMS_VECTOR.LOAD_ONNX_MODEL (
     directory  VARCHAR2,
     file_name   VARCHAR2,
     model_name  VARCHAR2,
     metadata   JSON);
DBMS_VECTOR.LOAD_ONNX_MODEL(
model_name  IN  VARCHAR2,
model_data  IN  BLOB,
metadata    IN  JSON);

パラメータ

表12-7 LOAD_ONNX_MODELプロシージャのパラメータ

パラメータ 説明

directory

データ・ダンプのディレクトリ名。たとえば、DM_DUMPです。

file_name

ONNXモデルの名前を指定するVARCHAR2型のパラメータ。

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、ユーザー独自のスキーマが使用されます。

model_data

これはモデルのONNX表現を保持するBLOBです。このBLOBには、ONNXファイルに格納されているものと同じバイト・シーケンスが含まれています。

metadata

モデルを記述するメタデータのJSONによる記述。このメタデータには、モデルでサポートされている機械学習関数を少なくとも記述する必要があります。モデルのメタデータ・パラメータの詳細は、「ONNXモデルのJSONメタデータ・パラメータ」を参照してください。

次の例は、DBMS_VECTOR.LOAD_ONNX_MODELプロシージャを使用したコード・スニペットを示しています。完全なステップバイステップの例は、ONNXモデルのインポートおよび埋込みの生成で説明しています。

EXECUTE DBMS_VECTOR.LOAD_ONNX_MODEL(
	'DM_DUMP', 
	'my_embedding_model.onnx', 
	'doc_model', 
	JSON('{"function" : "embedding", "embeddingOutput" : "embedding", "input": {"input": ["DATA"]}}'));
DBMS_VECTOR.LOAD_ONNX_MODEL('my_embedding_model.onnx',
                                             :blob_bind_variable, 
                                              JSON('{"function" : "embedding", 
                                                     "embeddingOutput" : "embedding" ,
                                                      "input":{"input": ["DATA"]}}'));

BLOB変数を定義し、LOAD_ONNX_MODELプロシージャで使用する方法を示す完全な例として、次のものがあります:

CREATE OR REPLACE MY_LOAD_EMBEDDING_MODEL(embedding_model_name VARCHAR2, onnx_blob BLOB) IS 
BEGIN
DBMS_VECTOR.LOAD_ONNX_MODEL(embedding_model_name,
                            onnx_blob, 
                            JSON('{"function" : "embedding", 
                                   "embeddingOutput" : "embedding" ,
                                   "input":{"input": ["DATA"]}}'));
END;
/

使用上の注意

モデルの名前は、次のような他の機械学習モデルで使用されるものと同じ制限に従います。

  • スキーマ名を指定する場合は、128文字に制限されます。
  • モデル名は123文字に制限されており、引用符なしの識別子のルールに従う必要があります。名前に使用できるのは、英数字、アンダースコア(_)、ドル記号($)およびシャープ記号(#)のみです。最初の文字は、英字にする必要があります。
  • モデルのサイズは1GBに制限されます。
  • モデルは外部イニシャライザに依存しないようにします。イニシャライザおよびその他のONNXの概念の詳細は、https://onnx.ai/onnx/intro/concepts.htmlを参照してください。
  • Pythonユーティリティによって準備されるモデルの入出力属性には、デフォルトの入力名および出力名があります。これらのモデルは、JSONパラメータなしでロードできます。次に例を示します。

    EXECUTE DBMS_VECTOR.LOAD_ONNX_MODEL('DM_DUMP', 'my_embedding_model.onnx', 'doc_model'));

関連項目:

機械学習タスクにONNXモデルを使用する例については、『Oracle Machine Learning for SQLユーザーズ・ガイド』を参照してください