リリース更新23.6 (2024年10月)

Oracle Database 23aiリリース更新23.6でのOracle AI Vector Searchの注目すべき更新が含まれています。

ノート:

特定の機能を使用するには、COMPATIBLE初期化パラメータを手動で更新する必要があります。COMPATIBLEパラメータとその変更方法の詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。

RACインスタンスを使用している場合は、すべてのノードでパッチが有効になっていることを確認するために、Oracle RACの2ステージ・ローリング更新を使用して特定の機能を有効にする必要があります。詳細は、『Oracle Real Application Clusters管理およびデプロイ・ガイド』を参照してください

機能 説明

ハイブリッド・ベクトル索引を使用したハイブリッド検索

ハイブリッド・ベクトル索引を使用すると、データの索引付けおよび全文検索とベクトル類似検索の組合せを使用した問合せを行うことができます。ハイブリッド検索では、Oracle Text索引のキーワード照合機能をベクトル索引のセマンティック精度と統合することで、検索結果の関連性(品質)を高めることができます。

エンドツーエンドの索引付けパイプラインを使用すると、様々なテキスト処理、チャンク化または埋込みの戦略のエキスパートでなくても、ドキュメントの索引付けを容易に行うことができます。

この機能の一部として、ベクトル索引関連の設定を管理するために、既存のDBMS_VECTORおよびDBMS_VECTOR_CHAIN PL/SQLパッケージに新しいプリファレンス・ヘルパー・プロシージャが追加されました。

新しいPL/SQLパッケージDBMS_HYBRID_VECTORも追加されました。このパッケージには、ハイブリッド・ベクトル索引に対して複数の方法で問い合せることができるSEARCH APIが含まれています。

新しいディクショナリ・ビュー<index name>$VECTORSは、すべての索引付きドキュメントの行識別子、チャンクおよび埋込みに関する情報を提供します。

更新されたAIベクトル検索ワークフロー

このガイドに含まれているAI Vector Searchワークフローが更新され、ハイブリッド・ベクトル索引およびハイブリッド検索のサポートが追加されました。

Oracle AI Vector Searchのワークフロー

GenAIプロンプトへのドキュメント・マップの更新

GenAIプロンプトへのドキュメント・マップが更新され、リリース更新23.6で使用可能な新機能が追加されました。

GenAIプロンプトへのベクトル・ドキュメント・マップ

拡張されたSQLクイック・スタート

「データベースにアップロードされたベクトル埋込みモデルの使用によるSQLクイック・スタート」が拡張され、ハイブリッド・ベクトル索引を作成してハイブリッド検索を実行する手順が追加されました。

データベースにアップロードされたベクトル埋込みモデルの使用によるSQLクイック・スタート

Ollamaのサポート

ローカル・ホストのRESTエンドポイント・プロバイダOllamaを使用して、オープン埋込みモデル(mxbai-embed-large、nomic-embed-text、all-minilmなど)および大規模言語モデル(Llama 3、Phi 3、Mistral、Gemma 2など)を使用できます。Ollamaは、Linux、WindowsおよびmacOSシステムでこれらのモデルをローカルおよびプライベートで実行できる、無料でオープンソースのコマンドライン・インタフェース・ツールです。

SPARSEベクトルのサポート

DENSEベクトルに加えて、SPARSEベクトルを作成するオプションがあります。

疎ベクトルは通常、多数の次元を持つが、それらの次元のいくつかにのみゼロ以外の値があるベクトルです。疎ベクトルはゼロ以外の値しか格納しないため、それらの使用によって効率が向上し、ストレージ領域が節約されます。

この機能を使用するには、COMPATIBLE初期化パラメータを23.6.0に設定する必要があります。

VECTORデータ型を使用する表を作成します

LlamaIndexとの統合

Oracle AI Vector SearchのLlamaIndexとの統合により、ベクトル検索機能を備えたLlamaIndexのオープンソース・データ・フレームワークを使用できます。これにより、Oracleエコシステム内の構造化データと非構造化データの両方を活用できる高度なAIアプリケーションを構築するための強力な基盤が提供されます。

Oracle AI Vector SearchとLlamaIndexの統合

ジャッカード距離

JACCARDは距離メトリックとして使用でき、JACCARD_DISTANCEは、2つのBINARYベクトルの間のジャカード距離を計算するためのVECTOR_DISTANCE関数の短縮版として使用できます。

ハミング距離

HAMMING_DISTANCEは、2つのベクトル間のハミング類似度を計算するためのVECTOR_DISTANCE関数の短縮版として使用できます。

HAMMING_DISTANCE

HNSW索引のトランザクション・サポート

トランザクションは、プライベート・ジャーナルや共有ジャーナルなどのデータ構造を使用して、Hierarchical Navigable Small World (HNSW)索引グラフを持つ表に対して維持されます。

プライベート・ジャーナルには、トランザクションによって追加または削除されたベクトルが記録され、共有ジャーナルには、すべてのコミット・システム変更番号(SCN)および対応する変更された行が記録されます。

RACインスタンスを使用する場合は、Oracle RACの2ステージ・ローリング更新を使用してパッチ36932885を有効にする必要があります。

HNSW索引を使用した表のトランザクション・サポートの理解

HNSW索引の複製およびリロード

デフォルトでは、複製メカニズムを使用して、Oracle RAC環境でHNSW索引を作成するか、HNSW索引の再移入操作がトリガーされたときに実行されます。Oracle Databaseインスタンスが再度起動すると、リロード・メカニズムがトリガーされ、HNSWグラフができるかぎり迅速にメモリー内に再作成されます。HNSWの完全チェックポイントは、メモリー内のグラフをリロードするために使用されます。

VECTOR_INDEX_NEIGHBOR_GRAPH_RELOAD初期化パラメータを使用して、HNSW索引の複製およびリロードのメカニズムを管理できます。

RACインスタンスを使用する場合は、Oracle RACの2ステージ・ローリング更新を使用してパッチ36932885を有効にする必要があります。

Oracle RACまたは単一インスタンスでのHNSW索引の移入メカニズムの理解

VECTOR_INDEX_NEIGHBOR_GRAPH_RELOADのデフォルトの更新

VECTOR_INDEX_NEIGHBOR_GRAPH_RELOAD初期化パラメータのデフォルト値が、OFFからRESTARTに変更されました。この更新により、HNSWの複製およびリロードのメカニズムがデフォルトで有効になります。

Oracle RACまたは単一インスタンスでのHNSW索引の移入メカニズムの理解

IVF索引のグローバルおよびローカルのパーティション化

Inverted File Flat (IVF) ベクトル索引は、パーティション表のグローバル索引とローカル索引の両方をサポートします。

デフォルトでは、IVF索引は重心によってグローバルにパーティション化されます。ローカルIVF索引を作成することを選択できます。これにより、実表のパーティションまたはサブパーティションと索引パーティションの間に1対1の関係が提供されます。

RACインスタンスを使用する場合は、Oracle RACの2ステージ・ローリング更新を使用してパッチ36932885を有効にする必要があります。

GET_INDEX_STATUSENABLE_CHECKPOINTDISABLE_CHECKPOINTおよびINDEX_VECTOR_MEMORY_ADVISORプロシージャ

DBMS_VECTOR PL/SQLパッケージでは、次の新しいプロシージャを使用できます:

  • GET_INDEX_STATUS: ベクトル索引作成のステータスを問い合せます

  • ENABLE_CHECKPOINTおよびDISABLE_CHECKPOINT: HNSW索引のチェックポイント機能を有効または無効にします

  • INDEX_VECTOR_MEMORY_ADVISOR: ベクトル索引に必要なベクトル・メモリーのサイズを判断します

ベクトル索引のステータス、チェックポイントおよびアドバイザのプロシージャ

VECSYS.VECTOR$INDEX$CHECKPOINTSビュー

新しいディクショナリ・ビューVECSYS.VECTOR$INDEX$CHECKPOINTSは、データベース・レベルのHNSW完全チェックポイントに関する情報を提供します。

VECSYS.VECTOR$INDEX$CHECKPOINTS

リレーショナル・データのベクトル化

Oracle Machine Learning (OML)の機能抽出アルゴリズムをVECTOR_EMBEDDING() SQL演算子とともに使用すると、一連のリレーショナル・データのベクトル化、類似度索引の作成および類似検索を実行できます。これらのアルゴリズムでは、データから最も多くの情報を含む特徴または列が抽出され、そのデータの相関性および冗長性の分析が容易になります。

OML機能抽出アルゴリズムを使用したリレーショナル表のベクトル化

ドキュメントの再ランク付け

既存のDBMS_VECTORおよびDBMS_VECTOR_CHAIN PL/SQLパッケージに追加されたRERANKファンクションを使用すると、検索拡張生成(RAG)シナリオでの問合せ結果の関連性を高めることができます。サードパーティの再ランク付けモデルは、取得したドキュメントの初期リストを再評価および並替えするために使用されます。

UTL_TO_GENERATE_TEXT()でのBLOBのサポート

既存のテキスト入力に加えて、UTL_TO_GENERATE_TEXT() PL/SQLファンクションはBLOBを入力として受け入れます。イメージ・ファイルなどのバイナリ・データを指定して、テキスト分析またはイメージの内容のわかりやすい説明を生成できます。

パブリックRESTプロバイダを使用したイメージの説明

UTL_TO_EMBEDDING()でのBLOBのサポート

既存のテキスト入力に加えて、UTL_TO_EMBEDDING() PL/SQLファンクションはBLOBを入力として受け入れます。これにより、サードパーティのイメージ埋込みモデルへのREST APIコールを使用して、イメージ・ファイルからベクトル埋込みを直接生成できます。

パブリックRESTプロバイダを使用したイメージから埋込みへの変換

RESTエンドポイントのリスト

すべてのサードパーティRESTプロバイダでサポートされているRESTエンドポイントのリストおよび対応するRESTコールを参照できます。

サポートされるサードパーティ・プロバイダの操作およびエンドポイント