※ 本記事は、Weiwei Gong, Shasank Chavanによる”Accelerating AI Vector Search in Oracle Database 23ai with NVIDIA GPUs“を翻訳したものです。
2025年4月30日
Oracle Databaseは長年にわたり、JSON、グラフ、空間、インメモリ、ブロックチェーン、ベクトルなどの最新のデータ・タイプやワークロードの多くをサポートするだけでなく、最先端のハードウェアを活用することで、その汎用性を実証してきました。今日では、エンジニアド・システムとクラウドで最先端のCPUテクノロジを活用しています。
ラスベガスで開催されたOracle CloudWorld 2024では、NVIDIA GPUを使用してOracle Database 23aiのAIベクトル検索機能を高速化する2つの概念実証設計のデモを行いました。それ以降もNVIDIAとの協力を続け、これらの概念実証の実装の効率性と堅牢性を高める方法を定義し、実装してきました。
CloudWorld 2024で最初に実証した機能は、テキスト、イメージ、ビデオなどの様々な入力データ・セットからのベクトル埋込みをGPUで高速に作成することでした。ベクトル埋込みの作成は、AIベクトル検索で必要な最初のステップであり、NVIDIA GPUを使用すると、大量のデータに対するベクトル埋め込みの一括作成のパフォーマンスを向上させることができます。
このイベントで紹介した2番目の初期段階の概念実証では、NVIDIA GPUとNVIDIA cuVSを使用して、Oracle Database内でのベクトル索引の作成とメンテナンスを高速化する方法を示しました。ベクトル索引はAIベクトル検索の高速化に不可欠であり、ベクトル索引の迅速な作成とメンテナンスは、エンタープライズAIベクトル・ワークロードのサポートに不可欠です。
どちらの機能も、NVIDIA GPUがCPUとの相乗効果を発揮し、ベクトル検索ワークロードの計算集中部分を高速化する方法を示しました。
Oracleのミッションクリティカル・データおよびAIエンジン担当シニア・バイスプレジデントであるTirthankar Lahiri氏は、次のように述べています。「当社は常に、ソフトウェア・イノベーションと、Oracle Databaseのお客様に大きなメリットをもたらす最新のハードウェアを組み合わせる革新的な方法を模索しています。当社のAIベクトル検索機能は、最新のCPUテクノロジーを活用するためにすでに高度に最適化されています。加えて、NVIDIAとのコラボレーションにより、最新のGPUを使用しAIベクトル・ワークフローの計算負荷の高い部分の処理を高速化したことは、お客様のニーズをより適切に満たすために、ソフトウェアとハードウェアの相乗効果を向上させたアプローチの優れた例です。」
「NVIDIAのAIツールとGPUにより、Oracle Databaseのベクトル埋込み生成と索引作成が高速化され、セマンティック検索や取得拡張生成(RAG)のために大量のデータを分析できるようになります」と、NVIDIAのネットワーキング担当シニア・バイスプレジデントであるKevin Deierling氏は述べています。「Oracle Databaseのユーザーは、GPUで高速化されたAIベクトル検索をビジネス・データで簡単に利用できるようになり、カスタマー・エクスペリエンスと従業員の生産性を向上させることができます。」
Oracle Databaseのベクトル検索機能のパフォーマンスの高速化
Oracle Database 23aiのAIベクトル検索では、AI技術を使用して、構造化されていないビジネス・データや構造化ビジネス・データをインテリジェントに検索できます。これには、インポートされたONNXモデルをOracle Database内のCPUを使用して実行する機能、ベクトル埋込みを格納するVECTORデータ型、近似最近傍探索 (ANN)用のVECTOR索引、ネイティブ・ベクトル検索機能のSQL演算子が含まれており、開発者はOracle Database内で従来のビジネス・データとベクトル・データの検索を組み合わせて、アプリケーションの作成を簡素化できます。
SIMDに最適化されたベクトル距離カーネルと、Exadata Storage Serversなど最新のCPUプラットフォームのフル・メモリー帯域幅とマルチコア並列性を活用する最先端の近似検索索引を実装することで、ベクトル検索のワークロードを高度に最適化しました。CPUベースの処理のメリットを最大限に活用した後でも、ベクトル埋込みの生成やベクトル索引の作成など、ベクトル・ワークロードの特定の側面でGPUアクセラレーションの恩恵を受けることができます。
GPUは、計算集約型の特殊なユース・ケースで、優れたメモリ帯域幅と計算能力を発揮します。OLTPや従来の分析など、従来のデータベース・ワークロードに使用される汎用CPUに代わるものではありません。ただし、同じメモリー常駐データに対するマルチパス計算を伴う一般的なAIおよび機械学習(ML)操作や、ベクトル・データベースで頻繁に必要とされる一括ベクトル操作など、「高密度の計算」に関連する操作を高速化するのに役立ちます。
ベクトル索引の作成におけるGPUのパフォーマンスを向上させるには、GPUに対して高度に最適化されたアルゴリズムが必要です。プロトタイピングの取り組みでは、ベクトル検索とクラスタ化のためのアルゴリズムを含むオープンソースライブラリであるNVIDIA cuVSを使用しています。これらのアルゴリズムは、あらゆるレベルの再現率でスループットを向上させ、待機時間を短縮し、索引作成を高速化するように設計されています。
OCIのNVIDIA GPUアクセラレーテッド・インスタンスを使用したOracle Database 23aiのベクター埋込みの生成
ベクトル埋込みは、イメージ、テキスト、複雑なビジネス・オブジェクトなどの複合コンテンツのセマンティクスを数学的に表現したものです。ベクトルは、「埋込みモデル」と呼ばれる深層学習AIモデルによって生成されます。ベクトルは、データベース内またはデータベース外部のソース・データに対して埋込みモデルを実行することで作成され、Oracle Databaseに格納され、検索されます。埋込みモデル自体は、データベースに常駐させることも、外部にあるものを呼び出すこともできます。どちらの場合も、結果のベクトルはデータベース内のVECTOR列に格納されます。
Oracle CloudWorldでの最初のデモンストレーションでは、Oracle Autonomous Database – ServerlessのOracle Machine Learning (OML) Notebooksを介したNVIDIA GPUへの統合アクセスを使用してベクトル埋込みを生成する方法を紹介しました。この機能により、ユーザーは、Autonomous Databaseの不可欠な機能であるOML NotebooksのPythonインタプリタを活用して、データベース表からGPUインスタンスにデータをロードできます。このインスタンスでは、NotebooksのPythonインタプリタをサポートしており、アプリケーションはベクトル埋込みを一括生成し、Autonomous Database内にそれらの埋込みを格納できます。保存すると、AIベクトル検索を使用して検索できます。GPUインスタンスのプロビジョニングはユーザーに対して自動的に実行され、データはOracle Machine Learning for Pythonの関数を使用してデータベースとGPUインスタンス間で転送されます。

GPUでのOracle Database 23ai VECTOR索引の生成
ベクトル索引は、ベクトル・データの近似検索において重要な役割を果たします。これらの索引の作成は計算負荷が高く、時間がかかります。さらに、データが更新されるか新しいデータが読み込まれたりするたびに、ベクトル索引の維持・更新や、定期的にリフレッシュ(または再移入)する必要があります。
Oracle CloudWorldでのこの概念実証デモンストレーションでは、Oracle Database 23aiとNVIDIA GPUの統合による、HNSW (Hierarchical Navigable Small World)と呼ばれるインメモリー・グラフ索引タイプの作成をご覧いただきました。このデモンストレーションでは、Oracleが開発した新しいコンピュート・オフロード・フレームワークによって、Oracle Databaseが、強力なGPUを搭載した外部サーバーに複雑なベクトル索引作成タスクを透過的にオフロードし、パフォーマンスを向上させながらシンプルさを維持できることを強調しました。
ユーザーがHNSWベクトル索引を作成するリクエストをOracle Databaseに送信すると、データベースは、必要なベクトル・データとともにタスクをインテリジェントにコンパイルし、新しいコンピュート・オフロード・サーバー・プロセスにリダイレクトします。このサーバー・プロセスは、GPUの計算能力を活用し、NVIDIA cuVSライブラリの一部であるCAGRAアルゴリズムを使用して、グラフ索引を即座に生成します。CAGRA索引が作成されると、自動的かつ効率的にOracle Databaseインスタンスに戻され、HNSWグラフ索引に変換されます。最終的なHNSW索引は、Oracle Databaseインスタンス内の後続のベクトル検索操作にすぐに使用できます。

この革新的なアプローチは、Oracle Databaseの汎用性の高いコンバージド・データ管理機能と、GPUの元来の計算能力を組み合わせたものです。GPUアクセラレーションをデータベースにシームレスに統合し、計算集中型の索引作成タスクを専用ハードウェアにオフロードすることで、Oracle Databaseユーザーが期待する使いやすさと信頼性を維持しながら、処理速度と効率性を大幅に向上させることができます。
Oracle CloudWorld 2024以降の概念実証の機能強化
Oracle CloudWorld以降、NVIDIAと連携して概念実証を強化してきました。具体的には、a) 効率的なデータ処理のためのストリーミングAPIの開発と実装、b) 大規模な実世界のアプリケーションのメモリー管理の強化という2つの分野で協力してきました。
効率的なデータ処理のためのストリーミングAPI
NVIDIAと協力して、CAGRAグラフ索引作成のためのデータとGPUのやり取りに革命をもたらす新しいストリーミングAPIのセットをcuVSに導入しています。処理前にデータセット全体を準備してGPUノードにキャッシュする必要がなくなり、データをインテリジェントにチャンク化し、リアルタイムでGPUにストリーミングできるようになりました。
このストリーミング・アプローチでは、索引作成操作を起動する前にデータをメモリーに連続して格納する必要がなくなるため、索引作成中のGPUノードのメモリー・オーバーヘッドを削減できます。さらに、これはレイテンシを増やさずに行われ、元のAPIと同等のパフォーマンスを実現します。
高度なメモリー管理
GPUのローカル・メモリーはますます大量に消費されますが、実際のアプリケーションには、その容量を大きく超えるデータセットがあります。Oracleは、NVIDIAと連携して、次のようなより洗練されたメモリ管理戦略に取り組んでいます:
- GPUメモリーよりも大きいデータセットの効率的な処理
- ホスト・メモリーとGPU間のデータ移動の最適化
- メモリー制約を管理しながら高レベルのパフォーマンスの実現
まとめ
ベクトル埋め込み生成をGPUにオフロードする機能、およびHNSW索引作成の計算集中部分をオフロードする概念実証ユース・ケースは、NVIDIA GPUがAIベクトル検索パイプラインでどのように使用できるか、また潜在的に使用できるかを示しています。OracleのNVIDIAとの継続的な連携により、エンタープライズ顧客のニーズに対応するように設計された、ますます堅牢な実装が実現します。この協力によるさらにエキサイティングな展開にご期待ください。
開始方法の詳細については、
