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プロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
データ・ダンプのディレクトリ名。たとえば、 |
|
|
ONNXモデルのファイル名を指定する |
|
|
|
|
|
これはモデルのONNX表現を保持する |
|
|
モデルを記述するメタデータのJSONによる記述。このメタデータには、モデルでサポートされている機械学習関数を少なくとも記述する必要があります。モデルのメタデータ・パラメータの詳細は、「ONNXモデルのJSONメタデータ・パラメータ」を参照してください。 |
external_data_file_name |
外部データファイル・メタデータのファイル名が所定の形式( デフォルト値は |
例
次の例では、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_dataにBLOB形式を使用したLOAD_ONNX_MODEL構文が使用されている場合、model_data引数に指定できるサイズは2 GBまでです。モデルをロードするための十分な総PGAメモリーがない場合は、ロードに失敗することがあります。このプロシージャ構文のこのバージョンでは、外部イニシャライザなしのモデルのみロードできます。
関連項目:
- 機械学習タスクにONNXモデルを使用する例については、『Oracle Machine Learning for SQLユーザーズ・ガイド』を参照してください
- 外部イニシャライザについては、Oracle Machine Learning for SQLユーザーズ・ガイド
- ONNXモデルのJSONメタデータ・パラメータ
IMPORT_ONNX_MODEL(DBMS_DATA_MINING)、LOAD_ONNX_MODEL(DBMS_VECTOR)またはLOAD_ONNX_MODEL_CLOUD(DBMS_VECTOR)プロシージャを使用してモデルをインポートする場合は、メタデータをJSONパラメータとして指定します。
親トピック: DBMS_VECTOR