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

[Oracle TechNight#83] Oracle Cloud World 2024 A...

oracle4engineer
November 04, 2024

[Oracle TechNight#83] Oracle Cloud World 2024 AI Vector Searchアップデート

2024年10月31日実施のOracle Database Technology Night#83でのOracle Cloud World 2024 AI Vector Searchアップデートの資料です。

oracle4engineer

November 04, 2024
Tweet

Video

More Decks by oracle4engineer

Transcript

  1. 山田 恭平 クラウド・エンジニアリング統括 COE本部 データベース・ソリューション部 OCT 31, 2024 Copyright ©

    2024, Oracle and/or its affiliates 1 Oracle Technology Night #83 Cloud World Feedback AI Vector Search
  2. The following is intended to outline our general product direction.

    It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation. The materials in this presentation pertain to Oracle Health, Oracle, Oracle Cerner, and Cerner Enviza which are all wholly owned subsidiaries of Oracle Corporation. Nothing in this presentation should be taken as indicating that any decisions regarding the integration of any EMEA Cerner and/or Enviza entities have been made where an integration has not already occurred. Copyright © 2024, Oracle and/or its affiliates 2
  3. Copyright © 2024, Oracle and/or its affiliates 3 今回発表された機能 Exadataのイノベーション:

    距離計算のオフロード HNSW索引 : RAC、 Sharding対応、表の更新、 グラフのディスク保持 LLMとフレームワーク: Ollama、LlamaIndex、 LangchainJS Graph RAG: Graph RAGの サンプル提示 ハイブリッド・ベクトル索引: ベクトル索引とテキスト索引 によるハイブリッド検索 一般的な改善 : PartitionごとのローカルIVF索引、 索引利用状況の監視、メモリアドバイザ その他:JACCARD 距離関数、SPARSE 数値型 リリース済 リリース済 リリース済 リリース済 リリース済 リリース済 サンプル 提示
  4. ハイブリッド・ベクトル索引はベクトルとキーワードを同時に検索するための索引です • AI Vector SearchとOracle Textの機能を組み合わせて実現します • たとえば、“ABCハウス”というキーワードで“不動産詐欺”に類似する上位10件の事例を検索 メリット: •

    AI Vector Search、Text Searchを単体で検索する場合と比べて、Recall(再現性)が高い • テキスト索引とベクトル索引をそれぞれデプロイ・管理するよりもシンプルに 概要 Vector Index | ハイブリッド・ベクトル索引 Copyright © 2024, Oracle and/or its affiliates 4
  5. Vector Index | ハイブリッド・ベクトル索引 Copyright © 2024, Oracle and/or its

    affiliates 5 索引作成のパイプライン Vectorizer Tokenizer データストア フィルタ ファイル ハイブリッド・ベクトル 索引 abc ベクトル 索引 テキスト 索引 Chunks Vectors Tokens Sections テキスト
  6. Vector Index | ハイブリッド・ベクトル索引 Copyright © 2024, Oracle and/or its

    affiliates 6 DDL 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" Text索引パラメータ
  7. Vector Index | ハイブリッド・ベクトル索引 ハイブリッド検索 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; シンプルにハイブリッド検索が可能 Copyright © 2024, Oracle and/or its affiliates 7
  8. Vector Index | ハイブリッド・ベクトル索引 Copyright © 2024, Oracle and/or its

    affiliates 8 ハイブリッド検索 ハイブリッド検索のアウトプット { "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], []", ... } Hybrid Score higher than both Vector Score and Text Score Chunk can be passed to LLM for RAG applications
  9. ベクトル索引は大量ベクトルデータの 高速な検索のため、近似解を許容する構造 インメモリ近傍グラフ・ベクトル索引はHierarchical Navigable Small Worlds (HNSW)に基づく グラフ構造のインメモリ専用の索引 新幹線 →

    快速列車 → 普通列車の 乗り継ぎのイメージ Copyright © 2024, Oracle and/or its affiliates 9 これまでのインメモリ近傍グラフ・ベクトル索引 エントリーポイント レイヤー3 レイヤー2 レイヤー1 レイヤー0 問合せベクトル 最も近い 隣人を見つけ、 レイヤーを下に移動 最も近い 隣人を見つけ、 レイヤーを下に移動 最も近い 隣人を見つけ、 レイヤーを下に移動 最寄りの Kネイバーを見つける ための貪欲な検索
  10. これまでのインメモリ近傍グラフ・ベクトル索引 Copyright © 2024, Oracle and/or its affiliates 10 注意点

    • 表へのDMLの発行が不能になる • インスタンスが停止すると再作成が必要になる • メモリリソースを消費する (索引全体をメモリ上にロードする必要があるため)
  11. Copyright © 2024, Oracle and/or its affiliates Vector Index |

    近傍グラフ・ベクトル索引のトランザクション対応 HNSWベクトル索引がトランザクションに対応し、クエリのレイテンシを一定に保つことが可能に 近傍グラフ・ベクトル索引を作成するとトランザクション・ジャーナルにDMLの変更を記録する • アクティブなトランザクションの変更はイン・メモリ上のプライベート・ジャーナルへ • トランザクションコミット時にディスク上のシェアード・ジャーナルにフラッシュされる クエリーが発行されるとHNSWグラフと共にジャーナルを参照し、トランザクションの一貫性を保つ DMLが一定の閾値まで発行されるとHNSWグラフは自動的にリフレッシュされ、クエリのレイテンシを抑える 11
  12. Vector Index | メモリ・アドバイザー DBMS_VECTOR.INDEX_VECTOR_MEMORY_ADVISORを利用して ベクトル索引に必要なメモリサイズをシミュレート可能に Copyright © 2024, Oracle

    and/or its affiliates 13 SQL> exec dbms_vector.index_vector_memory_advisor(INDEX_TYPE => 'HNSW', NUM_VECTORS => 10000, DIM_COUNT => 768, DIM_TYPE => 'FLOAT32', PARAMETER_JSON => '{"neighbors":128}', RESPONSE_JSON => :response_json); Suggested vector memory pool size: 59918628 Bytes
  13. RAC node 1 RAC node 2 RAC node 3 Smart

    Exadata Storage AI Smart Scan Fast semantic similarity search on unstructured data • Oracle AI Vector Searchを Smart Exadata Storage に透過的にオフロードし て、検索を高速化 • すべてのストレージ・サーバーで自動的に 検索を並列化し最大30倍高速化 • 各ストレージ・サーバーで、Top-k マッチング を個別に計算 • データベース・サーバーで結果をマージ • 数千もの同時AIベクトル検索をオフロードで きるマルチユーザー環境をサポート Copyright © 2024, Oracle and/or its affiliates 14
  14. GenAI Ecosystem | More Integrations Copyright © 2024, Oracle and/or

    its affiliates 15 Ollama LlamaIndex Langchain New New
  15. LlamaIndexとの統合 Copyright © 2024, Oracle and/or its affiliates 16 •

    LlamaIndexはLLMを活用したアプリケーション開発を支援するオープンソースのフレームワーク • LlamaIndexにOracle Database用のコードが追加 • 埋め込み機能、ベクトルデータストアとしての活用 インデックスの作成と検索、RAGパイプライン統合 などOracle Databaseを活用するためのコード群が充実 • LlamaIndexを活用してOracle Databaseのベクトル検索機能をシンプルに実装
  16. Ollamaのサポート Copyright © 2024, Oracle and/or its affiliates 17 •

    ローカル環境でLLMを実行するための手段として、Oracle Databaseで オープンソースソフトウェアのOllamaをサポート • Ollamaをインストールし、Ollamaコマンドを実行することで指定されたLLMを ダウンロードしてローカル実行可能 • Oracle Databaseからは以下のDBMS_VECTORパッケージにて Ollamaを指定することでそれぞれの処理をローカルに完結して実行可能 • UTL_TO_EMBEDDING • UTL_TO_SUMMARY • UTL_TO_GENERATE_TEXT • レイテンシの低減、セキュリティ向上、モデルのカスタマイズなどがメリット
  17. 対応する3rdパーティ製品やエンドポイントについて Copyright © 2024, Oracle and/or its affiliates 18 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