CREATE_VOCABULARY
独自のトークン語彙ファイルをデータベースにロードするには、DBMS_VECTOR_CHAIN.CREATE_VOCABULARY
チャンカ・ヘルパー・プロシージャを使用します。
用途
ベクトル埋込みモデルで使用されるトークナイザによって認識されるカスタム・トークン語彙を作成します。
語彙には、モデルの統計トレーニング処理中に収集される一連のトークン(単語および単語の断片)が含まれています。このデータをチャンカに供給すると、埋込みモデルのトークナイザによって課される最大入力制限に近いテキスト・サイズを正確に選択するのに役立ちます。
使用上の注意
-
通常、サポートされている語彙ファイル(認識されたトークンを含む)は、モデルの配布の一部として含まれています。対象のモデルに関連付けられた語彙ファイルを使用するようにお薦めします。
語彙ファイルが使用できない場合は、トークナイザのタイプに応じて、次のいずれかのファイルをダウンロードできます:-
WordPiece:
"bert-base-uncased" (英語)または"bert-base-multilingual-cased"モデルの語彙ファイル(
vocab.txt
) -
バイトペア・エンコーディング(BPE):
"GPT2"モデルの語彙ファイル(
vocab.json
)次のpythonスクリプトを使用して、ファイルを抽出します:import json import sys with open(sys.argv[1], encoding="utf-8") as f: d = json.load(f) for term in d: print(term)
-
SentencePiece:
"xlm-roberta-base"モデルの語彙ファイル(
tokenizer.json
)次のpythonスクリプトを使用して、ファイルを抽出します:import json import sys with open(sys.argv[1], encoding="utf-8") as f: d = json.load(f) for entry in d["model"]["vocab"]: print(entry[0])
語彙ファイルは必ず
UTF-8
エンコーディングで保存してください。 -
-
ユーザー指定の語彙名(
VOCABULARY_NAME
)を使用して、schema.table.column
にロードされたトークンに基づいて語彙を作成できます。語彙データのロード後、
by vocabulary
チャンク化モード(VECTOR_CHUNKS
またはUTL_TO_CHUNKS
を使用)を使用して、トークン数をカウントすることで入力データを分割できます。 -
次のデータ・ディクショナリ・ビューに問い合せると、既存の語彙データにアクセスできます。
-
ALL_VECTOR_VOCAB
には、使用可能なすべての語彙が表示されます。 -
USER_VECTOR_VOCAB
には、現在のユーザーのスキーマの語彙が表示されます。 -
ALL_VECTOR_VOCAB_TOKENS
には、使用可能なすべての語彙のトークンのリストが表示されます。 -
USER_VECTOR_VOCAB_TOKENS
には、現在のユーザーが所有する語彙のトークンのリストが表示されます。
-
構文
DBMS_VECTOR_CHAIN.CREATE_VOCABULARY(
PARAMS IN JSON default NULL
);
PARAMS
{
table_name,
column_name,
vocabulary_name,
format,
cased
}
表12-20 パラメータの詳細
パラメータ | 説明 | 必須 | デフォルト値 |
---|---|---|---|
|
語彙ファイルをロードする表の名前(およびオプションの表の所有者) |
はい |
値なし |
|
語彙ファイルをロードする語彙テーブルの列名 |
はい |
値なし |
|
語彙のユーザー指定の名前とオプションの所有者名(現在の所有者以外の場合) |
はい |
値なし |
|
|
はい |
値なし |
|
語彙の大文字と小文字の区別。つまり、語彙が大文字または小文字のいずれとして扱われるか |
いいえ |
|
例
DECLARE
params clob := '{"table_name" : "doc_vocabtab",
"column_name" : "token",
"vocabulary_name" : "doc_vocab",
"format" : "bert",
"cased" : false}';
BEGIN
dbms_vector_chain.create_vocabulary(json(params));
END;
/
エンドツーエンドの例:
このプロシージャを使用してエンドツーエンドのシナリオ例を実行するには、「カスタム語彙の作成および使用」を参照してください。
関連トピック
親トピック: DBMS_VECTOR_CHAIN