ベクトル・データ型

ベクトル・データ型

この機能には、データベース内のベクトル類似性検索を可能にする、組込みのVECTORデータ型が用意されています。

VECTORデータ型が組み込まれているため、ビジネス・データを別のベクトル・データベースに移動するのではなく、データベース内でAIを利用したベクトル類似性検索を実行できます。データの移動を回避することで、複雑さを軽減し、セキュリティを向上させ、現在のデータを検索できます。また、シンプルで直感的なSQLとコンバージド・データベース(JSON、グラフ、テキスト、空間、リレーショナルおよびベクター)のフルパワーを使用して、高度なビジネス・データ検索をAIベクトル類似性検索と組み合せることで、Oracle AI Vector Searchでさらに強力な検索を、単一の問合せで実行することもできます。

ドキュメントの表示に関する項

AI Vector Search: SQL実行

AI Vector SearchのSQL実行では、データベース内のベクトル列に構築されたベクトル索引のSQL実行サポートが追加されます。また、ベクトル型に関連するSQL関数のサポートを提供し、パーティションのSQL問合せで行レベル制限機能を使用できます。

この機能により、ベクトル・データ型でより簡単に構築できるため、AI主導のアプリケーションを迅速に開発できます。

ドキュメントの表示に関する項

疎ベクトル

疎ベクトルは通常、多数のディメンションを持つベクトルですが、一部のディメンションにゼロ以外の値があります。これらのベクトルは、SPLADEやBM25などのスパース・エンコーディング・モデルによって生成されることがよくあります。概念的には、疎ベクトルの各ディメンションは、特定の語彙からのキーワードを表します。特定のドキュメントでは、ベクトルのゼロ以外のディメンション値は、そのドキュメントに表示されるキーワード(およびそのバリエーション)に対応します。

SPLADEやBM25などのモデルによって生成される疎ベクトルは、多くの場合、ドメイン外の検索におけるキーワードの感度と有効性の観点から、BERTなどのモデルの密ベクトルを上回ります。この優れたパフォーマンスは、特に法律や学術研究など、正確なキーワード・マッチングが重要なアプリケーションで役立ちます。また、疎ベクトルはハイブリッド・ベクトル検索によく使用されます。ここでは、密ベクトルとともに使用して、セマンティック検索とキーワード検索を結合し、より関連性の高い検索結果を提供できます。

ドキュメントの表示に関する項

AI Vector Search: 算術および集計演算

日付、タイムスタンプ、間隔および数値を加算(+)、減算(-)または乗算(*)できるのと同様に、これらの算術演算子をベクトルに適用できるようになりました。算術演算は、ベクトルの各ディメンション要素で実行されます。また、ベクトルのセットのSUMまたはAVGを計算することもできます。

ベクトルの算術演算により、AIシステムは抽象概念を操作および結合できるため、言語やデータをより高度な方法で理解および処理する能力が向上します。

ドキュメントの表示に関する項

AI Vector Search: オプティマイザ

この機能により、全表スキャンを実行するのではなく、新しいVectorデータ型で構築された索引を使用するようオプティマイザがサポートされます。

オプティマイザで使用されるベクトル索引のサポートにより、ベクトル問合せを効率的に計算できるため、開発者は次世代のAI搭載ソリューションを構築できます。

ドキュメントの表示に関する項

AI Vector Search: PL/SQL

この機能により、新しいベクトル型がPL/SQL型システムに追加され、ベクトルのセットで類似性検索を実行する際に役立つ一連のベクトル操作が追加されます。

PL/SQLでの新しいベクトル・データ型のサポートにより、開発者が堅牢で効率的なAIドリブン・アプリケーションを構築するための新たな可能性が生まれます。

ドキュメントの表示に関する項

BINARYベクトル・ディメンション形式

BINARYは、VECTORデータ型で使用できる新しいディメンション形式です。BINARYベクトルの各ディメンションは、単一ビット(0または1)で表すことができます。BINARYベクトル自体は、圧縮されたUINT8配列として表されます。たとえば、単一のUINT8値は、BINARYベクトルの8つのディメンションを表します。BINARYベクトルは、Cohereが提供する埋込みモデル(embed v3など)、Hugging Face Sentence Transformersなどを使用して生成できます。

BINARYベクトルには、FLOAT32ベクトルと比較して2つの主な利点があります:

  1. BINARYベクトルのストレージ・フットプリントは32Xより小さいです
  2. BINARYベクトルの距離計算は40倍まで高速化でき、ベクトル検索が高速化されます

BINARYベクトルでは、FLOAT32ベクトルと比較して精度が低下する場合があります。しかし、様々なデータセットに対する評価は、FLOAT32ベクトルの90%以上の精度を達成できることを示しています。

ドキュメントの表示に関する項

疎ベクトルのクライアント・サポート

疎ベクトルは、JDBCおよびOPD.NETクライアント・ドライバでサポートされるようになりました。

疎ベクトルは通常、多数のディメンションを持つベクトルですが、それらのディメンションのうちゼロ以外の値を持つのはごく一部にすぎません。疎ベクトルはゼロ以外の値しか格納しないため、それらの使用によって効率が向上し、ストレージ領域が節約されます。ODP.NETおよびJDBCでは、疎ベクトル型がサポートされるようになり、これらのクライアント・ドライバを介して疎ベクトル・データとの効率的なやり取りが可能になります。
 

ドキュメントの表示に関する項

JDBCでのベクトル・データ型のサポート

SQLType、DatabaseMetaData、ResultSetMetaDataおよびParameterMetaData、VectorMetaData、PreparedStatementおよびCallableStatementを使用したJavaからSQLへの変換、CallableStatementを使用したSQLからJavaへの変換、CallableStatmentおよびResultSetを使用したSQLからJavaへの変換、VECTOR Datumクラスなどの、AI Vector Searchデータ型をサポートするために必要なコンポーネントがこの機能によってJDBCドライバに追加されます。

Vectorデータ型のJDBCサポートにより、開発者は人工知能に重点を置いて、堅牢でスケーラブルで高パフォーマンスのJavaアプリケーションを構築できます。

ドキュメントの表示に関する項

ベクトル型に対するOracle Call Interfaceのサポート

Oracle Call Interface (OCI)では、Vectorデータ型がサポートされるようになりました。OCIを使用するアプリケーションで、Oracle AI Databaseでの新しいベクトル・データ型を利用できるようになりました。

この機能により、OCIベースのアプリケーションを通じてOracle AI Databaseの機能を最大限に活用し、次世代のAI搭載ソリューションを作成できるようになります。

ドキュメントの表示に関する項

PL/SQL BINARYベクトル・サポート

PL/SQLでは、SQLにあわせて、ベクトル型の新しいディメンション形式としてBINARYがサポートされます。

BINARYベクトルは、テキスト・ドキュメントなどの一部のエンティティが特定の機能、リストの単語または語句を含むかどうかを表すために頻繁に使用されます。BINARY形式には2つの利点があります。ベクトルのストレージ・フットプリントは、デフォルトのFLOAT32ベクトルと比較して32倍減らすことができます。また、BINARYベクトルの距離計算は、最大で40倍高速です。

BINARYベクトルのサポートは、PL/SQLが他のディメンション形式のベクトルをサポートするのと同じ方法でバイナリ・ベクトルを処理できることを意味します。

ドキュメントの表示に関する項

26aiでのAI Vector Searchの新機能を有効にするにはCOMPATIBLEを23.6.0に設定

COMPATIBLEパラメータが23.6に設定されている場合は、Oracle AI Database 26aiリリース更新23.6以降で、AI Vector Searchの新機能を使用できます。

COMPATIBLEパラメータについて:

  1. Oracle AI Database 26aiリリース更新23.6を直接インストールする新規のお客様:
    • リリース更新23.6の新規インストール、およびdb createの使用では、デフォルトで、COMPATIBLEパラメータが23.6.0に設定されます。
    • インストール後は、COMPATIBLEパラメータをそれより低い値にダウングレードできなくなります。
  2. Oracle AI Database 26aiリリース更新23.4および23.5のお客様:
    • パッチ適用前のCOMPATIBLEパラメータは、23.0.0または23.4.0または23.5.0です。
    • リリース更新23.6へのパッチ適用時は、AI Vector Searchの新機能にアクセスするには、手動でCOMPATIBLEパラメータを23.6.0に設定する必要があります。
    • ノート: リリース更新23.6では、COMPATIBLEパラメータの更新には停止時間が必要です。パッチ適用の一環として自動的に実行されるわけではありません。データベースのCOMPATIBLE設定の更新を選択する必要があります。
  3. Oracle Database 19cまたは21cのお客様:
    • データベースをOracle AI Database 26aiにアップグレードした場合、COMPATIBLEパラメータは、ソース・データベースで以前に設定した値のままになります。
    • AI Vector Searchの新機能を使用する必要がある場合は、手動でCOMPATIBLEパラメータを23.6.0に設定する必要があります。
    • ノート: 26aiへのアップグレードの場合の許可されている最小のCOMPATIBLE設定は19.0.0です。つまり、Oracle Database 12cまたは18cからOracle AI Database 26aiに直接アップグレードすることはできません。

ドキュメントの表示に関する項

AI Vector Searchのシャーディング・サポート

ベクトル検索のGlobally Distributed Databaseサポートにより、ベクトルを含む表が、ハードウェアを共有しないOracleデータベースのプールに自動的に分散およびレプリケートされます。類似性検索は、シャード間で自動的にパラレル化されるか、シャーディング・キーが指定されている場合は特定のシャードに転送されます。

Globally Distributed Database AI Vector Searchは、複数のマシンにベクトルを分散させることによるスケーラビリティの向上、シャード間でベクトル検索をパラレル化することによるパフォーマンスの向上、一方のシャードがダウンした場合、もう一方のシャードは引き続き動作できることによるデータの回復力の向上など、いくつかの利点をもたらします。また、単一の論理データベースが複数の地理に分散される分散データベースの一部としてベクトル検索をデプロイすることもできます。

ドキュメントの表示に関する項

PL/SQLでの疎ベクトルのサポート

PL/SQLで疎ベクトルがサポートされるようになりました。

疎ベクトルは通常、多数のディメンションを持つベクトルですが、それらのディメンションのうちゼロ以外の値を持つのはごく一部にすぎません。疎ベクトルはゼロ以外の値しか格納しないため、それらの使用によって効率が向上し、ストレージ領域が節約されます。PL/SQLでのネイティブ・サポートにより、疎ベクトルをPL/SQL内から直接作成して使用できます。

ドキュメントの表示に関する項

JSONタイプ(OSON)でのVectorデータ型のサポート

この機能により、新しいVectorデータ型が含まれるように、標準のJSONスカラー型が拡張されます。すべてのOracle JSON構造体で完全にサポートされており、ベクトル・スカラーJSON値はJSON配列の数値に置き換えることができ、その逆も可能です。

JSONタイプ・データへのベクトル値の埋込みは、SQL値とJSON値の間の相互運用性のために重要です。たとえば、VECTOR列を含む表をJSONデータに公開すると、データ型情報が失われることなく、開発者は次世代のAIアプリケーションを作成できます。

ドキュメントの表示に関する項

ユーザー定義のベクトル距離関数

AIベクトル検索では、カスタムのユーザー定義距離メトリックがサポートされています。独自の距離メトリックまたはドメイン固有の距離メトリック(あるいはその両方)が、標準の組込み距離メトリックに加えて使用できます。

ベクトル検索操作は、ユークリッド、コサイン、ドット製品などの標準の距離メトリックに基づくことがよくあります。しかし、ドメイン固有のメトリックや独自のメトリックが必要となる場合があります。ユーザー定義のベクトル距離関数を使用すると、ユーザーはJavaScript関数を使用して独自のカスタム・メトリックを作成できます。

ドキュメントの表示に関する項

外部表でのベクトル・データ型のサポート

データベースの外部(ファイル・システムまたはクラウド・オブジェクト・ストア)に格納されているベクトル・データに簡単にアクセスして、外部表を使用して類似性検索を実行できます。

データベースの外部で作成されたベクトル埋込みは、外部表および標準SQLを使用して迅速かつ簡単にロードできます。また、データベースの外部に格納されているベクトル埋込みに対して類似性検索を実行し、それらの検索をデータベース内に格納されているデータとシームレスに結合することもできます。

ドキュメントの表示に関する項