Slide 1

Slide 1 text

山田 恭平 クラウド・エンジニアリング統括 COE本部 データベース・ソリューション部 OCT 31, 2024 Copyright © 2024, Oracle and/or its affiliates 1 Oracle Technology Night #83 Cloud World Feedback AI Vector Search

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Copyright © 2024, Oracle and/or its affiliates 3 今回発表された機能 Exadataのイノベーション: 距離計算のオフロード HNSW索引 : RAC、 Sharding対応、表の更新、 グラフのディスク保持 LLMとフレームワーク: Ollama、LlamaIndex、 LangchainJS Graph RAG: Graph RAGの サンプル提示 ハイブリッド・ベクトル索引: ベクトル索引とテキスト索引 によるハイブリッド検索 一般的な改善 : PartitionごとのローカルIVF索引、 索引利用状況の監視、メモリアドバイザ その他:JACCARD 距離関数、SPARSE 数値型 リリース済 リリース済 リリース済 リリース済 リリース済 リリース済 サンプル 提示

Slide 4

Slide 4 text

ハイブリッド・ベクトル索引はベクトルとキーワードを同時に検索するための索引です • AI Vector SearchとOracle Textの機能を組み合わせて実現します • たとえば、“ABCハウス”というキーワードで“不動産詐欺”に類似する上位10件の事例を検索 メリット: • AI Vector Search、Text Searchを単体で検索する場合と比べて、Recall(再現性)が高い • テキスト索引とベクトル索引をそれぞれデプロイ・管理するよりもシンプルに 概要 Vector Index | ハイブリッド・ベクトル索引 Copyright © 2024, Oracle and/or its affiliates 4

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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索引パラメータ

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

ベクトル索引は大量ベクトルデータの 高速な検索のため、近似解を許容する構造 インメモリ近傍グラフ・ベクトル索引はHierarchical Navigable Small Worlds (HNSW)に基づく グラフ構造のインメモリ専用の索引 新幹線 → 快速列車 → 普通列車の 乗り継ぎのイメージ Copyright © 2024, Oracle and/or its affiliates 9 これまでのインメモリ近傍グラフ・ベクトル索引 エントリーポイント レイヤー3 レイヤー2 レイヤー1 レイヤー0 問合せベクトル 最も近い 隣人を見つけ、 レイヤーを下に移動 最も近い 隣人を見つけ、 レイヤーを下に移動 最も近い 隣人を見つけ、 レイヤーを下に移動 最寄りの Kネイバーを見つける ための貪欲な検索

Slide 10

Slide 10 text

これまでのインメモリ近傍グラフ・ベクトル索引 Copyright © 2024, Oracle and/or its affiliates 10 注意点 • 表へのDMLの発行が不能になる • インスタンスが停止すると再作成が必要になる • メモリリソースを消費する (索引全体をメモリ上にロードする必要があるため)

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Vector Index | 近傍グラフ・ベクトル索引の永続化 HNSWベクトル索引を永続化できるようになった HNSWベクトル索引はインメモリーのみに格納されており、 インスタンスが停止した場合グラフは再作成が必要だった このグラフをディスクに保持できるようになった HNSWベクトル索引が作成、再作成されるたびに チェックポイントテーブルと ROWID から VID へのマッピング テーブルが更新される Copyright © 2024, Oracle and/or its affiliates 12 ROWID_VID Table CHECKPOINTS Table Base Table New Instance

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

GenAI Ecosystem | More Integrations Copyright © 2024, Oracle and/or its affiliates 15 Ollama LlamaIndex Langchain New New

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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 • レイテンシの低減、セキュリティ向上、モデルのカスタマイズなどがメリット

Slide 18

Slide 18 text

対応する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

Slide 19

Slide 19 text

Thank You Copyright © 2024, Oracle and/or its affiliates 19