この記事では、Oracle AI Database 26aiで実装された新機能であるAI Vector Searchについてマニュアル等より机上調査した結果をまとめました。
Oracle Database 23ai は Oracle AI Database 26ai に置き換えられました。
この記事は旧Oracle Database 23aiで公開されていた内容を含みます。
この記事では、Oracle AI Database 26aiとして紹介します。
AI Vector Searchとは
AI Vector SearchとはOracle Database内で非構造化データのベクトル埋め込みからベクトルデータの保存、類似検索の実行まで一通り行うことができる機能です。
この機能によって業務データとベクトルデータを同じ場所に格納することができ、どちらのデータもSQLで扱うことが可能になります。
業務データとベクトルデータを組み合わせた活用例としては、RAG(Retrieval-Augmented Generation)が挙げられます。
ベクトルデータベースについて
AI Vector Search機能によって、ベクトルデータベースとしてOracle Databaseが使用可能になりました。
以下にベクトルデータベースおよびその関連用語を記載します。
- ベクトルデータベース
ベクトル埋め込みを他の項目とともに保存、検索、管理することを目的としたデータベースのことです。
Oracle AI Database26aiは既存データと同様にRDB形式のデータベース内にベクトルデータを保存できる、という特徴を持っています。
- ベクトル埋め込み
ドキュメント、画像などの非構造化データをベクトル形式に変換する機能のことです。
変換後のベクトル空間は数百次元あり、各種データの内容をベクトルデータとして表すことで、ベクトルデータの集合やベクトルデータ間の距離に意味を持たせることができます。
- ベクトル検索(類似検索、ベクトル類似性検索)
問い合わせクエリをベクトル化し、ベクトル空間においてクエリベクトルと各データベクトル同士の距離計算を行うことで、
距離が近いものほど問い合わせ内容に似ているとして、データの類似度を評価する検索手法になります。
ベクトルデータベースの活用について生成AI、とりわけてRAGでの使用が考えられており、オラクルのマニュアルでもOracle AI Vector Searchを使用したRAG構成として説明されています。
記載されているRAG構成については後述します。
RAGのアーキテクチャについて
始めにRAGのアーキテクチャについて、OCHaCafe Season8 #6 LLMのエコシステムでは以下の通り記載されています。
LLM(大規模言語モデル)のテキスト生成において関連情報を取得する検索システムと統合することで強化する手法のこと
LLMの入力プロンプトに検索結果を組み込むことで、LLMのテキスト生成を調整することができる
またOracle AI Vector Search 技術概要では、例としてユーザーが問い合わせを行い、検索結果を組み込んだLLMからの回答が返ってくるまでの一連の流れが記載されています。

(図はOracle AI Vector Search 技術概要より引用)
図の1から6まで番号が振られた各フロー内容は、以下のように解釈できます。
- ユーザーがアプリケーションに質問する
- アプリケーションがベクトルデータベースに問い合わせクエリを発行する
- ベクトルデータベースが検索結果をアプリケーションに返す
- 検索結果を元にアプリケーションがLLMに回答生成を指示する
- LLMが回答を生成する
- アプリケーションがLLMの回答をユーザーに返す
ベクトルデータベースの検索結果によってLLMの回答が調整されているところがRAGのアーキテクチャとして注目すべきポイントとなります。
Oracle AI Vector SearchはRAGに必要な各種データの保存、および問い合わせクエリでの検索、LLMへの回答送信の部分を担っています。
Oracle AI Vector Searchのワークフローについて
続いてOracle AI Vector Searchのワークフローについて、
Oracle AI Vector Searchユーザーズ・ガイドより下記のワークフロー図が出ています。

(図はOracle AI Vector Searchユーザーズ・ガイドより引用)
先程のRAGのアーキテクチャのうち、ベクトルデータベースとしてのOracle Database にデータを格納してLLMへ送信するまでの部分に注目した図となっています。
同マニュアル内でのワークフローの内容をかいつまむと、下記のようにまとめられます。
-
ドキュメントや画像などの非構造化データをベクトル埋め込みモデルからベクトル化する
このベクトル化自体はOracleDatabaseの外部でも実行可能 -
ベクトル化したデータを生成した後、対応する非構造化データおよびビジネスデータをDB内に格納する
-
保存したベクトルデータに対して、通常の表と同様の方法でベクトル索引を作成することができる
-
ユーザーからの問い合わせクエリに対して、類似度と従来のキーワード検索を使用して検索結果を得る
-
検索結果を元にLLMのプロンプトを生成し、RAG推論をLLMに送信する
まとめ
Oracle AI Database 26aiでは既存のRDBにベクトルデータを保持する機能が備わりました。
加えて、AI Vector Searchが追加されたことにより、ベクトルDBとしての活用、たとえばOracle Database を使用したRAGが可能となりました。
業務データと同じ場所で非構造化データをベクトルデータとして保管し、SQL文による取り扱いを可能とすることで、AIによる処理においてデータを一元的かつ簡便に活用できるという点がOracle Databaseの強みです。
参考資料
- Oracle AI Vector Searchユーザーズ・ガイド
- Oracle AI Vector Search 技術概要
- Oracle AI Vector Search 技術詳細
- OCIチュートリアル Oracle AI Vector Searchを使ってみよう
- OCHaCafe Season8 #6 LLMのエコシステム
We Are Hiring!