Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Oracle AI Vector Search 技術概要

Oracle AI Vector Search 技術概要

Avatar for oracle4engineer

oracle4engineer

May 21, 2024
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Copyright © 2025, Oracle and/or its affiliates 2 • RAG

    (Retrieval-Augmented Generation)の現状 • Oracle AI Vector Search • 3rd Party製品との統合 • なぜOracle Databaseでベクトルを検索するのか • Appendix Agenda
  2. Fine-Tuning LLMプロバイダーが提供する学習済モデル(基盤モデル)に、企業が生み 出すドキュメントデータを追加で学習させる処理 • 学習データを網羅的に作りきることが非常に困難 • 長時間の学習時間を要する • カスタムモデルの精度が低いこともしばしば •

    ドキュメントが増える度に実行する必要がある • 高価な処理(基本的にはGPU環境が必要) • 返答のソースドキュメントの提示が困難 RAG LLMプロバイダーが提供するモデルをそのまま利用し、企業内データはベク トルデータベースでセマンティック検索 • 基盤モデルの学習処理は不要 • テキスト生成にドキュメントデータが利用されているかが明確 • ドキュメントデータが増えた場合はベクトルデータベースに配置するのみ • 返答のソースドキュメントの提示が可能 Fine-TuningとRAG Copyright © 2025, Oracle and/or its affiliates 5 基盤モデル カスタムモデル ドキュメント 学習データ 基盤モデル ドキュメント 前処理済 ドキュメント ベクトル データベース
  3. オペレーショナルなデータと非構造化データを組み合わせてビジネス価値を創造 RAG のアーキテクチャ アプリケーション 様々なデータソース 非構造化データ 構造化データ SFDC SAP Confluence

    ベクトル LLM リレーショナル グラフ テキストサーチ 販売実績 顧客 製品マスタ SharePoint JSON ②クエリー ナレッジベース ①質問 ⑥回答 ④回答生成指示 ⑤回答 ... Workday Snowflake ServiceNow データの取り込み・同期・インデックス化 ③検索結果 地理空間データ IoT Copyright © 2024 Oracle and/or its affiliates. All rights reserved. Copyright © 2025, Oracle and/or its affiliates 6
  4. • チャンクサイズの最適化 • チャンクのウィンドウサイズ • ハイブリッド検索 • 結果のRerank • 情報の構造化

    • メタデータの付与 • 埋め込みモデルのファインチューニング • アダプター手法 • 仮の文章の埋め込み • ナレッジグラフ • etc… LlamaIndex AIによる代表的な精度改善策のまとめ Copyright © 2025, Oracle and/or its affiliates 8 A Cheat Sheet and Some Recipes For Building Advanced RAG https://www.llamaindex.ai/blog/a-cheat-sheet-and-some-recipes-for-building-advanced-rag-803a9d94c41b
  5. 非構造化データのセマンティック検索を可能にする機能 • ベクトルは、画像や文書などの特徴をベクトルの形に落 としたもの • いわゆる高校数学ででてくるベクトル、次元が3次元を 超えて多いところが主な違い • ベクトルは、埋め込みモデルによって 非構造化データから生成される

    • 重要な点はベクトル化さえできてしまえば、 ベクトル間の距離を計算することで、類似度を評価でき るようになること ベクトル検索とは Copyright © 2025, Oracle and/or its affiliates 9 ベクトル 33 42 16 21 50
  6. 家の画像 家の画像から特徴を抽出しベクトル化する ベクトルの例 Copyright © 2025, Oracle and/or its affiliates

    10 各次元(数値)は家の各特徴を表す ベクトル 特徴 ノート: 実際には、アルゴリズムによって特徴が決定されるため、ここに示すような単純なものではない 33 42 16 21 装飾 建築材料 階数 屋根の種類
  7. ベクトル間の距離を計算することで類似したベクトルを見つける ベクトル検索の例 Copyright © 2025, Oracle and/or its affiliates 11

    22 15 42 30 33 42 16 21 23 11 38 42 ベクトルデータA クエリベクトル ベクトルデータB クエリベクトルと検索対象となる ベクトルデータとの距離計算を行う AはBよりもベクトル間の 距離が近いため クエリベクトルに、より類似している
  8. 検索精度、開発生産性、アクセスコントロールを向上 Oracle Database 23ai - AI Vector Search あらゆる生成AIをサポートする、マルチモーダルプラットフォーム Copyright

    © 2025, Oracle and/or its affiliates 12 あらゆる生成AIを支える、マルチモーダルプラットフォーム 様々なデータ、検索手法を1つのデータベースでセキュアに管理 • 品質と鮮度の高いビジネスデータと、ベクトルデータを、 一つのデータベースに集約し、SQLで検索可能 • RAG精度向上の手法を、SQL機能で実現し、検索精度を向上 • ドキュメントのテキスト化からベクトル変換までデータベース内で実施 データ一貫性維持と、開発生産性向上を実現 • データベースの持つ堅牢なアクセスコントロール スケーラビリティ、高可用性 • データ整合性を保持しながら、スケールアウトを可能に • Exadata Cloudの持つ、高性能、高可用性を活用 充実のツール群 • ドキュメントローダー、テキストスプリッターのプロシージャ • ONNXモデルをインポートし、データベース内でベクトル化 • プロンプトエンジニアリングのプロシージャ 分類 価格 テキスト ベクトル(テキスト) 画像 ベクトル(画像) 0 001 ¥1,000 AAA…… 0.1, 0.2, 0.6. .... 0.5, 1.5, 2.6, .... 1 002 ¥2,000 BBB…… 0.8, 0.1, 0.4. .... 1.0, 0.9, 1.6, .... 2 003 ¥3,000 CCC…… 0.5, 0.3, 0.9. .... 0.6, 1.1, 1.3, .... SQL 7623 SQL Single Source of Truth Oracle Database 23ai AI Vector Search
  9. エンタープライズのお客様に育てていただいたオラクルだからこそのこだわり OracleのエンタープライズRAGアーキテクチャ Copyright © 2025, Oracle and/or its affiliates 13

    アプリケーション 様々なデータソース 非構造化データ 構造化データ SFDC SAP Confluence LLM SharePoint ②クエリー ナレッジベース ①質問 ⑥回答 ④回答生成指示 ⑤回答 ※オブジェクトストレージ経由も頻出パターン コネクター製品や作りこみ GoldenGate 23ai 販売実績 顧客 製品マスタ ... Workday Snowflake ServiceNow コンバージドデータベース Data Catalog Integration IoT Streaming / Queue ③検索結果 データの取り込み・同期・チャンク・インデックス・ベクトル化
  10. DBMS_VECTOR_CHAINパッケージの利用 • ドキュメントのテキストデータ化、テキストデータのチャンク分割、ベクトル化まで 全ての処理をデータベース内で実行可能 • CHAINパッケージという名前の通りそれぞれのパッケージの入出力形式が連動している データをベクトル化するまでの流れ Copyright © 2025,

    Oracle and/or its affiliates 14 PDF Word HTML etc. ベクトルデータ チャンクテキスト テキスト ドキュメント chunk vector --- --- --- --- --- UTL_TO_TEXT ドキュメントデータの 構造解析を実行し テキストデータに変換 UTL_TO_CHUNKS テキストデータを チャンクテキストに分割 UTL_TO_EMBEDDINGS 埋め込みモデルを使い チャンクテキストを ベクトルデータに変換
  11. オブジェクト・ストレージからのONNX (Open Neural Network eXchange)モデルをインポート Embeddingモデルのインポート例 DECLARE model_source BLOB :=

    NULL; BEGIN model_source := DBMS_CLOUD.get_object( credential_name => 'OBJ_STORE_CRED', object_uri => 'https://objectstorage…bucketname/o/resnet50bundle.onnx’); DBMS_DATA_MINING.import_onnx_model( model_name => "resnet50", model_data => model_source, metadata => JSON('{ function : "embedding" }') ); END; ※ ONNXとは、機械学習モデルを異なる深層学習フレームワーク間で交換できるようにするオープンなフォーマットとなります Copyright © 2025, Oracle and/or its affiliates 15
  12. VECTORデータ型 データの形式を厳密に定義したい場合、次元数や数値 データの形式は制約的に働くため次元や数値の形式を 指定することにメリットがある 次元数など指定せずにVECTORとして指定も可 スキーマ定義やDDLの普遍性を重視する場合、こちらは 次元数の指定がないため、次元数が変化した場合にもス キーマ定義の変更は不要 ベクトル・データ型 Copyright

    © 2025, Oracle and/or its affiliates 17 CREATE TABLE my_images ( id number, image BLOB, img_vec VECTOR(768, FLOAT32)); 次元数 (任意) 数値の形式 (任意) CREATE TABLE my_images ( id number, image BLOB, img_vec VECTOR); 指定可能なデータ形式 FLOAT32, FLOAT64, INT8, BINARY ※例えば、embedding APIのバージョンアップで次元数が変更された場合でも、 スキーマ定義書の更新が不要になる →運用上の選択肢が1つ増える
  13. VECTOR_DISTANCE関数 ベクトル同士の類似性は、ベクトル間の距離計算結果で判断される 対象が似ているほど、ベクトル間の距離が短くなる。 例えば:トラとライオンのベクトルはトラとリンゴのベクトルよりも距離が短い VECTOR_DISTANCE(<Tiger Vec>, <Lion Vec>) < VECTOR_DISTANCE(<Tiger

    Vec>, <Apple Vec>) VECTOR_DISTANCEで指定する距離メトリックはエンベッディングモデルで使用された距離メトリックと同一にする ベクトル検索 Copyright © 2025, Oracle and/or its affiliates 19 VECTOR_DISTANCE(VECTOR1, VECTOR2, <distance metric>) 距離メトリック 省略形 COSINE(デフォルト) / COSINE_DISTANCE <=> DOT / INNER_PRODUCT <#> EUCLIDEAN / L2_DISTANCE <-> EUCLIDEAN_SQUARED / L2_SQUARED HAMMING / HAMMING_DISTANCE MANHATTAN / L1_DISTANCE JACCARD / JACCARD_DISTANCE VECTOR_DISTANCE(VECTOR1, VECTOR2, COSINE) COSINE_DISTANCE(VECTOR1, VECTOR2) VECTOR1 <=> VECTOR2 以下は全て同じ結果が得られる
  14. 概要 • 大量ベクトルデータの高速な近傍検索のため、近似解を許容する構造 • リソース(コスト)、検索速度、検索精度のトレードオフを実現 • 索引は2種類(索引生成時にいずれかを選択) • インメモリ近傍グラフベクトル索引 (

    In-Memory Neighbor Graph Vector Index) SGA上にインメモリで展開される高速なグラフ構造の索引 • 近傍パーティションベクトル索引 (Neighbor Partition Vector Index ) ベクトル同士を距離ベースのクラスタリングでまとめた低コストな索引 • メモリ領域としてSGA上のVECTOR_POOLを使用 • 求める検索精度を指定して索引の作成が可能 • 原理的で索引構造理解が必要となるパラメータのでの記述を回避 ベクトル索引 Copyright © 2025, Oracle and/or its affiliates 20
  15. 構築と検索時の動作イメージ 構築 • グラフの最下位レイヤー(0)にはすべてのベクトルが存在 • 高層に行くほどベクトルは減少 • 各レイヤーでベクトル間が近い距離のものをエッジで接続 することでグラフが生成される 検索

    • 検索は最上位レイヤーのエントリーポイントから開始 • 問い合わせベクトルに近づく方向にエッジを辿り、最も近 いベクトルを発見したら、探索は下のレイヤーに継承 • 問合せベクトルに最も近い上位Kベクトルが最下位レイ ヤーで見つかり次第、探索は完了 インメモリ近傍グラフ・ベクトル索引 Copyright © 2025, Oracle and/or its affiliates 21 エントリーポイント レイヤー3 レイヤー2 レイヤー1 レイヤー0 問合せベクトル 最も近い 隣人を見つけ、 レイヤーを下に移動 最も近い 隣人を見つけ、 レイヤーを下に移動 最も近い 隣人を見つけ、 レイヤーを下に移動 最寄りの Kネイバーを見つけ るための貪欲な検 索 新幹線 → 快速列車 → 普通列車 の乗り継ぎのイメー ジ
  16. 構築と検索時の動作イメージ 近傍パーティション・ベクトル索引 22 X軸 Y軸 #1 #2 #3 #4 #5

    問合せベクトル 構築 • OMLのK-meansクラスタリング・アル ゴリズムを使用し、ベクトルをパーティ ションにグループ化(K = 5)。 (OML: Oracle Machine Learning) 検索 • 問合せベクトルから各パーティション の重心までの距離を計算 • 最も近い2つのパーティションを特定 • 問合せベクトルからクラスタ#1およ び#3のすべてのベクトルと問い合わ せベクトル間の距離を計算し、最も 近い上位5件(赤 で表示)を取得 2次元データ・セット Copyright © 2025, Oracle and/or its affiliates
  17. 基本的な索引作成構文: • DISTANCE句はオプション(デフォルトはCOSINE) • 距離関数は、ベクトルの生成に使用される埋込みモデルに基づいて適切なものを選択 • 利用可能な距離関数 • EUCLIDEAN(ユークリッド距離) •

    L2_SQUARED(EUCLIDEAN_SQUARED)(ユークリッド平方距離) • COSINE(コサイン距離) • DOT(ドット積) • MANHATTAN(マンハッタン距離) • HAMMING(ハミング距離) ベクトル索引の作成 CREATE VECTOR INDEX photo_idx ON Customer(photo_vector) ORGANIZATION [INMEMORY NEIGHBOR GRAPH | NEIGHBOR PARTITIONS] DISTANCE EUCLIDEAN | COSINE_SIMILARITY | HAMMING ... Copyright © 2025, Oracle and/or its affiliates 23
  18. 作成方法 基本的な索引作成構文 ハイブリッド・ベクトル索引 Copyright © 2025, Oracle and/or its affiliates

    25 CREATE HYBRID VECTOR INDEX MY_HYBRID_INDEX ON SUPPORT_INCIDENTS (INCIDENT_TEXT) PARAMETERS (...); "embed_model" :"ALL_MINILM_L12_V2" "chunk_by" : "WORDS" "index_type" : "HNSW" "vector_distance": "COSINE" "vector_accuracy": "95" "datastore" :"network_datastore" "filter" : "auto_filter" "lexer" : "auto_lexer" "sectioner" : "basic_sectioner" "stoplist" : "default_stop_list" ベクトル索引パラメータ テキスト索引パラメータ
  19. 検索方法 • DBMS_HYBRID_VECTOR.SEARCHを使用 • ハイブリッド・ベクトル索引の名前、結果の融合方法、スコアリング方法などを指定して検索 ハイブリッド検索 Copyright © 2025, Oracle

    and/or its affiliates 26 SELECT DBMS_HYBRID_VECTOR.SEARCH( JSON('{"hybrid_index_name": "MY_HYBRID_IDX", "search_text" : "ORA-600, Incomplete Recovery", "search_fusion" : "INTERSECT", "search_scorer" : "RRF" }')) FROM DUAL;
  20. 検索結果 検索結果には結果のテキストだけではなく、スコアなども表示される ハイブリッド検索 Copyright © 2025, Oracle and/or its affiliates

    27 { "rowid" : "AK37pKAAkAAAACVAAA", "score" : 96.95, "vector_score" : 94.50, "text_score" : 92.40, "vector_rank" : 1, "text_rank" : 1, "chunk_text" : "ABCD_ATP1(133):Incomplete Recovery applied until change 41787149790615 time 08/20/2024 15:03:53. ORA-00600: internal error code, arguments: [kdsgrp_LOST_piece], [11], [830411452], [0], []", ... }
  21. 新しい自然言語アプリケーションの拡張や構築が容易 Select AI DBへ質問文を投げかけると、 裏側でLLMが呼ばれ、 SQL文に変換され結果を返す 「2010年以降でもっともよく見られた映画のトップ10を教えて」 Cohere OpenAI Azure

    OpenAI 様々なAIプロバイダをサポート ✓ OCI Generative AI Service ✓ OpenAI ✓ Cohere ✓ Azure OpenAI Service ✓ Google Gemini ✓ Anthropic ✓ Hugging Face ・・・ Copyright © 2025, Oracle and/or its affiliates 28
  22. Select AI RAGはベクトル・コンテンツの作成と更新を自動化 Select AI with RAG Embedding モデル ベクトル・ストア

    Object Storage 1. 入力データ(ファイル) 2. チャンク化したデータを送信 3. ベクトル埋め込みを返す 4. ベクトル埋め込みをベクトル・ストアに格納し、 ベクトル索引を作成 5. 一定間隔でクラウド・ストアの内容を確認して、 ベクトル埋め込みをロードし、ベクトル索引を更新 Autonomous Database AIプロバイダ BEGIN DBMS_CLOUD_AI.CREATE_VECTOR_INDEX( index_name => 'MY_INDEX', attributes => '{"vector_db_provider": "oracle", "location": "https://objectstorage.ap-tokyo- 1.oraclecloud.com/n/xxxxxxxxx/b/xxxxxxxxxx/o/", "object_storage_credential_name": "OBS_CRED", "profile_name": "OCIGENAI_ORACLE", "vector_dimension": 1024, "vector_distance_metric": "cosine", "chunk_overlap":128, "chunk_size":400, "refresh_rate":1 }’); END; /; DBMS_CLOUD_AI.CREATE_VECTOR_INDEXを利用 Copyright © 2025, Oracle and/or its affiliates 29
  23. • LangchainやLlamaIndexはLLMを活用した アプリケーション開発を支援するオープンソースの フレームワーク • それぞれにOracle Database用のコードが追加 • 埋め込み機能、ベクトルデータストアとしての活用 インデックスの作成と検索、RAGパイプライン統合

    などOracle Databaseを活用するための コード群が充実 • Oracle Databaseのベクトル検索機能を シンプルに実装可能 LangchainやLlamaIndexとの統合 Copyright © 2025, Oracle and/or its affiliates 31
  24. Copyright © 2025, Oracle and/or its affiliates 32 • ローカル環境でLLMを実行するための手段として、Oracle

    DatabaseでオープンソースソフトウェアのOllamaをサポート • Ollamaをインストールし、Ollamaコマンドを実行することでLLMをダウンロードしてローカル実行可能 • Oracle Databaseからは以下のDBMS_VECTORパッケージにてOllamaを指定することで それぞれの処理をローカルに完結して実行可能 • UTL_TO_EMBEDDING • UTL_TO_SUMMARY • UTL_TO_GENERATE_TEXT • レイテンシの低減、セキュリティ向上、モデルのカスタマイズなどがメリット Ollamaのサポート
  25. • AI Vector Search User‘s Guide - Supported Third- Party

    Provider Operations and Endpointsにて確認可能 • https://docs.oracle.com/en/database/oracle/oracle -database/23/vecse/supported-third-party- provider-operations-and-endpoints.html 対応する3rdパーティ製品やエンドポイントについて Copyright © 2025, Oracle and/or its affiliates 33
  26. Oracle Databaseにおけるベクトル検索の強み Why Oracle Copyright © 2025, Oracle and/or its

    affiliates 35 1 パフォーマンス 2 精度 3 セキュリティ 4 カスタマイズ性 →大量データを使った大規模なベクトル検索がユーザを待たせることなく実行可能 →Oracle Databaseに格納されているビジネス・データを利用することで精度の高い検索を実現 →エンタープライズ用途で高い信頼を得ているデータベースレイヤで実現する充実したセキュリティ機能 →統一性のあるシンプルなRAGパイプラインをベースとし、RAGの必要技術に対応したパッケージと その拡張性
  27. パフォーマンス:大量データを使った大規模なベクトル検索がユーザを待たせることなく実行可能 Why Oracle Copyright © 2025, Oracle and/or its affiliates

    36 Partitioning 大規模な表をパーティション分割して アクセス対象を削減 RAC 相互接続/共有された複数のサーバーで データベースを構成した高可用性と処理のスケールを実現 Exadata Oracle Databaseに最適化された Oracle Databaseのためのプラットフォーム Autonomous Database Oracle Database + Exadata + AI/機械学習による 自律型データベース Oracle Database
  28. 精度:Oracle Databaseに格納されているビジネス・データを利用することで高精度を実現 • AI利用においてデータの鮮度は検索の精度に大きな影響を与える 格納されているデータをデータベースの中でベクトル化しすぐに類似性検索できる • 大規模なデータ検索において検索データのフィルタリングは精度、パフォーマンス向上の観点から非常に重要 格納されているメタデータで属性フィルタリングを行うことでパフォーマンスを下げることなく検索精度を向上できる Why Oracle

    Copyright © 2025, Oracle and/or its affiliates 37 店舗ID 店舗名 店舗概要 最寄駅までの距離情 報 価格帯 店舗概要_Vec 最寄駅までの距離情報 _Vec SELECT … FROM restaurant WHERE distance_to_station <= ‘200‘ ORDER BY VECTOR_DISTANCE (item_vector, :qry_vector) FETCH APPROX FIRST 10 ROWS ONLY; ベクトル型 ベクトル型 飲食店テーブル クエリ: 「restaurant(飲食店)テーブルから、 distance_to_station(最寄駅までの距離)が200m以内 の飲食店を抽出し、restrunt_vector(店舗概要_Vec) と:qry_vector(入力文字列のベクトル値)とのベクトル距離に 基づいて並べ替え、その中から上位約10件のみを取得する」
  29. セキュリティ:エンタープライズデータにおいて最も重要なセキュリティ Why Oracle Copyright © 2025, Oracle and/or its affiliates

    38 Oracle Database 暗 号 化 アクセス制御 監 査 ユーザーやセッション情報に基づいて 表のアクセスを列・行レベルで制限 DB管理者の無制限のアクセスを 強制的に禁止、厳格な職務分掌を実現 Database Vault 認証強化 外部認証基盤による認証強化 トークン・ベース認証 DF11233 U*1 $5Ha1qui %H1 HSKQ112 A14 FASqw34 £$1 アプリケーションへの影響がない 透過的な暗号化 Transparent Data Encryption 機密データをマスキングし セキュアなテストデータを作成 Data Masking and Subsetting データベースのアクセスログを 漏れなく詳細に記録 Unified Audit アクセスログの分析を自動化し 不正なアクセスの検知・アラート Audit Vault and Database Firewall Centrally Managed Users Virtual Private Database Data Redaction Label Security SQL Firewall OCI Logging Analytics OCI Data Safe クラウド・サービス Cloud@Customer
  30. SQLでベクトル検索を実行できる=SQLで記述可能な範囲であれば様々なカスタマイズが可能 • ドキュメントからのテキスト抽出 → テキストのチャンク化 → チャンクされたデータのEmbedまで全て1SQLで実行可能 • 埋込みモデルを複数使い分けるために同じ表の中でモデルごとに列を用意しそれぞれに対して検索をかけて精度確認 •

    複数のドキュメントをチャンク化しておき、全てのドキュメントの中から最も類似したチャンクを検索する マルチベクトル検索が実行可能 • ベクトル検索で出力された結果のチャンクだけでなくその前後のチャンクも結果に含める Extend Chunkの実装が簡単に可能 • VECTOR_DISTANCE関数をWHERE句で使用することで、検索したい類似度の調整が簡単に可能 カスタマイズ性:SQLを使ったベクトル検索で、用途に合わせてカスタマイズする柔軟な検索が可能 Why Oracle Copyright © 2025, Oracle and/or its affiliates 39
  31. 車両管理とトラブル分析の例 カスタマイズ性 – SQLのみで空間・テキスト・ベクトルデータを組み合わせた効率的な情報活用が可能 Why Oracle Copyright © 2025, Oracle

    and/or its affiliates 40 「凍結の影響で故障やトラブルがあった」 に類似したレポートを取得 車両タイプ001の車両で、 2023年以降に新潟県に侵入した車両で 2023年以降のレポート本文中に 「ブレーキ」か「制動機」の文字列を含む レポートの中で リレーショナル 全文検索 ベクトル 地理空間情報 (構造化データ:車両マスタ) (テキスト:車両状態レポート) (空間データ:車両位置情報、都道府県境界データ) (特徴量:車両状態レポート) 画像、動画、音声なども活用可
  32. カスタマイズ性 – マルチモーダル検索のSQL例 Why Oracle Copyright © 2025, Oracle and/or

    its affiliates 41 車両タイプ001の車両で、 2023年以降に新潟県に侵入した車両で 2023年以降のレポート本文中に 「ブレーキ」か「制動機」の文字列を含む レポートを 「凍結の影響で故障やトラブルがあった」 のベクトルに近い順に 10件のレポートを取得 SELECT v.vehicle_id v.vehicle_type, rep.report_id, rep.report FROM V_MASTER v , V_LOCATION vloc, REGION r, REPORT_DATA rep WHERE v.VEHICLE_TYPE='001' and SDO_INSIDE ( vl.location, r.area ) = 'TRUE' and r.name='新潟県' and vloc.timestamp > '2023/1' and v.vehicle_id=vloc.vehicle_id and CONTAINS( rep.REPORT, 'ブレーキ or 制動機') > 0 and rep.date > '2023 1/1 ' and rep.vehicle_id=v.vehicle_id ORDER BY vector_distance ( DBMS_VECTOR.utl_to_embedding( '凍結の影響で故障やトラブルがあっ た'), rep.VECTOR ) APPROX FIRST 10 ROWS ONLY; データは車両マスタ、車両の位置情報、都道府県境界データ、車両の状態レポート
  33. 他社での実装 実装者がデータの検索順を決める 構成が複雑化するほど 最適な検索パスの策定は困難になる データが増加していくたびに再検討が必要に パフォーマンス - オプティマイザによる最適な実行計画の生成 Why Oracle

    Copyright © 2025, Oracle and/or its affiliates 42 このユースケースは、何をどの順番で検索するのが効率的? Oracle Database オプティマイザが検索時の 最新データに基づいた 最適な実行計画を生成 ユーザが介入せずとも最適な検索が可能
  34. Visual search • Tech • ADB-D Find products • Retail

    • ADB-S Identify bacteria • Health • ADB-S Facial recognition • Gov • On-prem • FinTech • On-prem N. America EMEA LAD AI Vector Searchはすでに世界中の様々な業界で利用されています Real-time offers RAG Chatbot • FSI • Exa C@C Copyright © 2025, Oracle and/or its affiliates 44 Geospatial mapping • Geospatial • OCI JAPAC RAG Chatbot • Insurance • ADB-S RAG Chatbot • SI • BaseDB
  35. Copyright © 2025, Oracle and/or its affiliates 45 ラテンアメリカで、宅配アプリを提供する会社のsuper-appにおいて、AI Vector

    Searchを活用 • super-appは、フードデリバリー、医薬品のデリバリー、 オンラインショッピング、ホテルの予約など様々な用途で利用される • 9つの国の400都市で利用可能 宅配アプリ上での類似商品の検索
  36. Copyright © 2025, Oracle and/or its affiliates 46 類似商品の検索 •

    ユーザはアプリ上で、製品の仕様などに関する内容を検索バーに入力する • アプリは最も関連性の高い製品のリストを表示する 2つの検索範囲 • ローカル・サーチ – ユーザが見ている店舗内での検索 • グローバル・サーチ – 全てのストアで類似している商品を検索(位置情報での絞り込み可能) ガイド付き検索を使ってより高度な検索が可能 • ユーザの検索文字が広範、曖昧な場合にシステムが検索結果を 絞り込むための質問をする • 例えばユーザが「ピザ」を検索した場合、システムが 「どのようなタイプのピザをお探しですか」とユーザに質問 • 回答は入力させるのではなく、「冷凍」、「グルテンフリー」、「ペパロニ」など 選択肢を提示する 宅配アプリ上での類似商品の検索
  37. Copyright © 2025, Oracle and/or its affiliates 48 • OCIチュートリアル

    • Oracle AI Vector Searchを使ってみよう https://oracle-japan.github.io/ocitutorials/ai-vector-search • Oracle LiveLabs • Langchainを使ったRAGアプリの構築 https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wid=3927 • PL/SQLを使ったRAGアプリの構築 https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wid=3934 • Autonomous DatabaseとAPEXを使ったRAGアプリの構築 https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wid=4021 • Graph RAGとAI Vector Searchを使ったRAGの応用 https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/view-workshop?wid=3953 チュートリアル
  38. Copyright © 2025, Oracle and/or its affiliates 49 • Oracle

    AI Vector Search User's Guide • https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse/ • Oracle AI Vector Search 技術概要 • https://speakerdeck.com/oracle4engineer/oracle-ai-vector-search • Oracle AI Vector Search 技術詳細 • https://speakerdeck.com/oracle4engineer/oracle-ai-vector-search-technical 公開資料