LOAD_ONNX_MODEL

このプロシージャにより、ONNX形式の埋込みモデルをデータベースにロードできます。

構文

DBMS_VECTOR.LOAD_ONNX_MODEL (
     directory                IN  VARCHAR2,
     file_name                IN  VARCHAR2,
     model_name               IN  VARCHAR2,
     metadata                 IN  JSON DEFAULT JSON('{"function" : "embedding", '|| 
                                       '"embeddingOutput" : "embedding", "input": {"input":["DATA"]}}'),
     external_data_file_name  IN  VARCHAR2  DEFAULT NULL);
DBMS_VECTOR.LOAD_ONNX_MODEL(
    model_name        IN  VARCHAR2,
    model_data        IN  BLOB,
    metadata          IN  JSON DEFAULT JSON('{"function" : "embedding", '|| 
                               '"embeddingOutput" : "embedding", "input": {"input":["DATA"]}}'));

パラメータ

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

パラメータ 説明

directory

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

file_name

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

model_name

[schema_name.]model_nameという形式の、そのモデルのユーザー定義名。これは、そのモデルがOMLにおいて最上位クラスのデータベース・オブジェクトとして持つことになる名前です。スキーマを指定しない場合は、ユーザー独自のスキーマが使用されます。

model_data

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

metadata

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

外部データファイル・メタデータのファイル名が所定の形式(<file_name>_external_data.json)と一致しない場合にそのファイル名を指定するために使用する、VARCHAR2型のパラメータ。

デフォルト値はNULLです。

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

EXECUTE DBMS_VECTOR.LOAD_ONNX_MODEL(
    directory  => 'DM_DUMP', 
    file_name  => 'my_embedding_model.onnx', 
    model_name => 'doc_model', 
    metadata   => JSON('{"function" : "embedding", 
                   "embeddingOutput" : "embedding", 
                   "input": {"input": ["DATA"]}}'));
DBMS_VECTOR.LOAD_ONNX_MODEL(
    model_name => 'my_embedding_model.onnx',
    model_data => :blob_bind_variable, 
    metadata   => 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文字に制限されており、引用符なしの識別子のルールに従う必要があります。名前に使用できるのは、英数字、アンダースコア(_)、ドル記号($)およびシャープ記号(#)のみです。最初の文字は、英字にする必要があります。
  • モデル・サイズの上限は2 GBです。
  • Pythonユーティリティによって準備されるモデルの入出力属性には、デフォルトの入力名および出力名があります。これらのモデルは、JSONパラメータなしでロードできます。次に例を示します。

    EXECUTE DBMS_VECTOR.LOAD_ONNX_MODEL('DM_DUMP', 'my_embedding_model.onnx', 'doc_model'));
  • 外部イニシャライザありのONNXモデルとしてロードするには、指定したディレクトリに<file_name>_external_data.jsonという形式のファイルが存在する必要があります。その名前が付いたファイルが存在せず、external_data_file_nameパラメータを使用して代替ファイル名が指定されていない場合は、そのONNXモデルは外部イニシャライザなしでロードされます。そのファイルが存在する場合は、それが検証され、そのモデルが、外部イニシャライザありのONNXモデルとしてインポートされます。.onnxファイルと各外部データファイルの累積サイズは、2 GBを超える可能性があります。ただし、総PGAメモリーが十分にない場合は、ロードに失敗することがあります。PGA上限の制御に使用するパラメータについては、Oracle AI DatabaseリファレンスPGA_AGGREGATE_LIMITを参照してください。
  • model_dataBLOB形式を使用したLOAD_ONNX_MODEL構文が使用されている場合、model_data引数に指定できるサイズは2 GBまでです。モデルをロードするための十分な総PGAメモリーがない場合は、ロードに失敗することがあります。このプロシージャ構文のこのバージョンでは、外部イニシャライザなしのモデルのみロードできます。

関連項目: