Oracle AI Vector Searchは人工知能(AI)ワークロード向けに設計されています。これにより、キーワードではなく、セマンティクスおよびイメージの類似性に基づいてデータを問い合せることができます。

この図は、Oracle AI Vector Searchを使用してベクトル埋込みを管理するために実行する必要があると想定される手順を示しています。

  1. 非構造化データからベクトル埋込みを生成する必要があります。このステップは、Oracle Databaseの外部または内部で実行できます。Oracle Database内でこのステップを実行するには、最初にONNX標準を使用してベクトル埋込みモデルをインポートする必要があります。非構造化データはOracle Databaseの内部または外部に配置できます。
    ベクトル埋込みの生成を参照してください。
  2. ベクトル埋込みを生成した後、それらを対応する非構造化データおよびビジネス・リレーショナル・データとともに格納できます。ベクトル埋込みがOracle Databaseの外部に格納されている場合、SQL*LoaderまたはData Pumpを使用して、Oracle Database内のリレーショナル表内にベクトル埋込みをロードできます。外部表を介してデータベースの外部に格納されているベクトル埋込みにアクセスすることもできます。
    ベクトルの埋込みの格納を参照してください。
  3. 通常の表の列に索引を作成する方法と同様に、ベクトル埋込みにベクトル索引を作成し、非構造化データにハイブリッド・ベクトル索引(Oracle Text索引とベクトル索引の組合せ)を作成できます。これは、巨大なベクトル空間で類似検索を実行する場合に役に立ちます。
    「ベクトル索引およびハイブリッド・ベクトル索引の作成」を参照してください。
  4. その後、Oracle AI Vector SearchのネイティブなSQL操作を使用して、類似度と従来のリレーショナル・キー検索を組み合せることができます。さらに、類似検索とキーワード検索の両方を組み合せた高度な情報検索手法であるハイブリッド検索を実行して、関連性の高い検索結果を得ることができます。 SQLおよびPL/SQLでは、各チャンクに対するベクトル埋込みを生成する前に、ドキュメントなどの非構造化データをチャンクに変換するための強力なユーティリティが提供されています
    類似検索およびハイブリッド検索を使用したデータの問合せおよびサポートされているクライアントおよび言語を参照してください。

  5. ベクトル・ユーティリティのPL/SQL APIを使用すると、LLMを利用したインタフェースを使用して、大規模な言語モデル(LLM)のプロンプトにテキスト・プロンプトとイメージを指定できます。また、LLMでは、トレーニングの停止後に新しい情報にアクセスしたり組み込む機能が本質的に欠けています。 LLMに最新のファクトを提供することで、LLMが回答を創作する可能性を最小限に抑えることができます(ハルシネート)。 検索拡張生成(RAG)は、LLMの制限に対処するために開発されたアプローチです。RAGでは、再ランク付けを含む事前トレーニング済言語モデルの長所と、応答の生成中にデータセットまたはデータベースから情報をリアルタイムで取得する機能が組み合されています。Oracle AI Vector Searchは、LangChain、Ollama、LlamaIndexなどの一般的なフレームワークを使用して、RAGとLLMの統合を可能にします。
    LLMを利用したAPIおよび検索拡張生成の操作を参照してください。