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

OpenSearch_VectorDB

Avatar for gumamon gumamon
February 03, 2026

 OpenSearch_VectorDB

OpenSearch Tokyo meetup #1 2026-02-05

VectorDBとしてのOpenSearch
5,000万件超のベクトル検索をコストを抑えて運用する技術選定

https://www.meetup.com/opensearch-project-tokyo/events/312364230/?eventOrigin=home_next_event_you_are_attending

Avatar for gumamon

gumamon

February 03, 2026
Tweet

More Decks by gumamon

Other Decks in Technology

Transcript

  1. アジェンダ • 自己紹介 • 導入:今日のテーマ(等) • 前提:VectorDBの概要と関連用語の説明 • 課題:5,000万件とインフラコストの壁 •

    技術: Disk-based vector searchとメモリ圧縮の仕組み • 解決:成立させた構成(例)と勘所 • まとめ
  2. アジェンダ • 自己紹介 • 導入:今日のテーマ(等) • 前提:VectorDBの概要と関連用語の説明 • 課題:5,000万件とインフラコストの壁 •

    技術: Disk-based vector searchとメモリ圧縮の仕組み • 解決:成立させた構成(例)と勘所 • まとめ
  3. Ⓒ RAKUS Co.,Ltd. 会社名 株式会社ラクス 設立 2000年11月1日 従業員数 連結:3,086名 単体:1,907名(2025年3月31日時点)

    上場証券取引所 東京証券取引所 プライム市場 (コード:3923) クラウド事業 ・ IT人材事業 事業内容 代表取締役 中村崇則 グループ会社 5 株式会社ラクスライトクラウド 株式会社ラクスパートナーズ 株式会社ラクスみらい RAKUS Vietnam Co., Ltd.
  4. Ⓒ RAKUS Co.,Ltd. 勤怠管理 サービス紹介 6 交通費・経費精算 電子請求書発行 販売管理業務 メールマーケティング

    企業のさまざまな業務の効率化に貢献するクラウドサービス(SaaS)を複数展開 電子帳簿保存 請求書受領 問合せ管理
  5. アジェンダ • 自己紹介 • 導入:今日のテーマ(等) • 前提:VectorDBの概要と関連用語の説明 • 課題:5,000万件とインフラコストの壁 •

    技術: Disk-based vector searchとメモリ圧縮の仕組み • 解決:成立させた構成(例)と勘所 • まとめ
  6. アジェンダ • 自己紹介 • 導入:今日のテーマ(等) • 前提:VectorDBの概要と関連用語の説明 • 課題:5,000万件とインフラコストの壁 •

    技術: Disk-based vector searchとメモリ圧縮の仕組み • 解決:成立させた構成(例)と勘所 • まとめ
  7. 前提:VectorDBの概要と関連用語の説明 「請求書が見つからない」という質問 👉 意味が近い回答を複数見つけられる • 「請求書の再発行方法」 • 「請求書検索手順」 Note: •

    回答の文章が登録されていることが前提 • 応答は「意味が近い順」の複数回答 (top k) • Vectorは「Embedding(埋め込み)Vector」とも呼ばれる VectorDBの活用例
  8. 前提:VectorDBの概要と関連用語の説明 単語
 役割
 補足
 RAG
 (主に)生成AI向けの、外部データ検索機能
 一般知識以外の情報を補完
 Vector
 意味を表す数値
 [0.1,

    0.2, -0.03, ..., 1.42] など
 Embedding
 文章をVectorに変換する
 text-embedding-3(OpenAI) など
 VectorDB
 Vectorを保存・検索するDB
 OpenSearch, Qdrant, Milvus など
 ANN
 高速に近いVectorを探す方法
 入力ベクトルに近い top kを返す
 FAISS
 ANNを実装した検索ライブラリ
 Meta製。多くのVectorDBの内部で使われる
 HNSW
 FAISS等で使われる検索アルゴリズム
 グラフ型近傍探索。大容量のメモリが必要

  9. アジェンダ • 自己紹介 • 導入:今日のテーマ(等) • 前提:VectorDBの概要と関連用語の説明 • 課題:5,000万件とインフラコストの壁 •

    技術: Disk-based vector searchとメモリ圧縮の仕組み • 解決:成立させた構成(例)と勘所 • まとめ
  10. 課題:5,000万件とインフラコストの壁 以下を満たす RAGシステムを構築してほしいと依頼を受けた 非機能要件 (抜粋): • レイテンシー: 10秒以内 (希望3秒) •

    ベクトル数: 5,000万超 (多い) • 検索精度: 非公開 (割と高い) • 予算: 非公開 (制約が強い) 👉 予算が通らないことには作れない。インフラコストを見積もる ことにした。
  11. 課題:5,000万件とインフラコストの壁 インフラコストを見積もる過程で、 VectorDBは莫大なメモリを必要とする ことに気づいてしまった HNSWに必要なメモリ容量の計算式 • 1.1 * (4 *

    dimension + 8 * m) * num_vectors` (byte) 5,000万件で計算してみた • メモリが300GB・・・?🤔 (単一サーバ) • メモリが600GB・・・!?🤮 (可用性を考慮)
  12. 課題:5,000万件とインフラコストの壁 ベクトルの構造を実際に見てみる (例) text-embedding-3-small: 1536 次元 • ベクトル構造 = [

    0.01, 0.02, -0.10 .... n(1536)] • 1ベクトルあたり 6KB (float32 x 1536) • 5,000万ベクトルで 307GB
  13. アジェンダ • 自己紹介 • 導入:今日のテーマ(等) • 前提:VectorDBの概要と関連用語の説明 • 課題:5,000万件とインフラコストの壁 •

    技術: Disk-based vector searchとメモリ圧縮の仕組み • 解決:成立させた構成(例)と勘所 • まとめ
  14. 課題:5,000万件とインフラコストの壁 Disk-based Vector Search では、メモリ上に保持するベクトルを 生 ベクトル(float32)ではなくバイナリ量子化ベクトル に変換する。こ れにより、 •

    Before: 1536 次元 × float32 (約 6KB / vector) • After: 1536 次元 × 1bit (約 0.18KB / vector) と メモリ使用量を大幅に削減 できる。 生ベクトルはディスク上に保持し、 検索時に必要なものだけを参照 することで 精度とメモリ効率を両立する。
  15. 技術: Disk-based vector searchとメモリ圧縮の仕組み Q. 検索精度は落ちないのか A. ほぼ落ちない (と言われており、検証した範囲では大きな劣化は見られなかった) Note:

    バイナリ量子化で検索するのは、あくまで top k の"候補"。 OpenSearchはこの候補に(HNSWのグラフ上関係のあるベクトル )をメモリロードし、 再度検索を実施する (最初にざっくりあたりをつけ、その後詳細を調査するイメージ )
  16. 技術: Disk-based vector searchとメモリ圧縮の仕組み Q. 必要なメモリ容量が1/32になるのか A. 完全にそうはならない(再掲) Note: バイナリ量子化で節約できるのは、メモリに乗るベクトルの圧縮によるもの。

    HNSWのグラフは引き続きメモリに乗るし、再検索 (リランキング)でロードする生ベクトル (一部)の メモリ使用量もオーバーヘッドとなる。
  17. 技術: Disk-based vector searchとメモリ圧縮の仕組み Disk-based vector search の導入方法 Indexの作成時に指定するのみ! Note:

    Embeddingモデルに合わせて設定する項目 があるので注意 • dimension (ベクトル次元数) • space_type (距離計算方式) • 等
  18. 技術: Disk-based vector searchとメモリ圧縮の仕組み Disk-based vector search の導入方法 Indexの作成時に指定するのみ! Note:

    量子化の圧縮レベルはオプションとして選択可能 • "32x" (32bit > 1bit) ※Default • "16x" (32bit > 2bit) • "8x" (32bit > 4bit) ※ “4x” も存在するがエンジンが luceneになる
  19. アジェンダ • 自己紹介 • 導入:今日のテーマ(等) • 前提:VectorDBの概要と関連用語の説明 • 課題:5,000万件とインフラコストの壁 •

    技術: Disk-based vector searchとメモリ圧縮の仕組み • 解決:成立させた構成(例)と勘所 • まとめ
  20. 解決:成立させた構成(例)と勘所 今回のインフラには Amazon OpenSearch Serviceを採用した。 Note: Amazon OpenSearch Service は、OpenSearch

    OSS をマネージドで提供する AWSサービス。 クラスタ構築・スケール・パッチ適用・バックアップ・監 視などの運用作業を AWSが肩代わり する。 こちらは指定したリソースでクラスタが常時稼働する タイプだが、インフラ管理やキャパシティ設計を不要 にしたAmazon OpenSearch Serverless という提 供形態もある。
  21. アジェンダ • 自己紹介 • 導入:今日のテーマ(等) • 前提:VectorDBの概要と関連用語の説明 • 課題:5,000万件とインフラコストの壁 •

    技術: Disk-based vector searchとメモリ圧縮の仕組み • 解決:成立させた構成(例)と勘所 • まとめ
  22. まとめ 「大規模な VectorDBのインフラコストを如何に抑えるか」 をお話した • 🎉 OpenSearchはVectorDBとしても活躍可能 • 💰 Disk-Based

    vector search によりメモリの大幅節約が可能 ◦ メモリに乗るベクトルを量子化することでメモリの節約可能 ◦ メモリに乗るグラフ構造に対する削減効果は無いことに注意
  23. 参考資料: • OpenSearch Documentation: Disk-based vector search (Introduced 2.17) •

    Amazon Web Service ブログ: OpenSearchにおける 10 億規模のユースケースに適した k-NN アルゴリズムの 選定