埋め込みシステム向けベクターデータベース

OpenAI API ではじめる Embeddings 入門

Emmanuel Pire

Senior Software Engineer, DataCamp

現在のアプローチの限界

  • すべての埋め込みをメモリに読み込む(1536 floats ≈ 13kB/埋め込み
  • クエリごとに埋め込みを再計算
  • 全埋め込みのコサイン距離計算とソートは低速で線形スケール

ストレージなしで、クエリのたびにドキュメントとクエリを埋め込む処理を示した図。

OpenAI API ではじめる Embeddings 入門

ベクターデータベース

  • 埋め込み済みドキュメントをベクターデータベースに_保存_し、クエリを実行

ベクターデータベースを使ってドキュメントの埋め込みを保存し、埋め込みクエリに基づいた結果をユーザーに返す処理を示した図。

OpenAI API ではじめる Embeddings 入門

 

NoSQLデータベース
  • 高速クエリを可能にする柔軟な構造

キーバリュー、ドキュメント、グラフデータベースなどのNoSQLデータベーススキーマの例。

 

SQL/リレーショナルデータベース
  • データをテーブル・行・列に構造化

SQLリレーショナルデータベースの列と行を持つテーブル。

OpenAI API ではじめる Embeddings 入門

保存するコンポーネント

 

  • 埋め込み
  • ソーステキスト
  • メタデータ
    • IDと参照情報
    • 結果フィルタリングに役立つ追加データ

 

ポイント:ソーステキストをメタデータとして保存しないこと!

ベクターデータベースのアイコン。

OpenAI API ではじめる Embeddings 入門

ベクターデータベースの全体像

クローズドソースかオープンソースか、専用ベクターデータベースかどうかで分類した主要なベクターデータベースソリューションの一覧。

1 画像提供:Yingjun Wu
OpenAI API ではじめる Embeddings 入門

最適なソリューションの選び方

 

  • データベース管理
    • マネージド → コストは高いが負担が少ない
    • セルフマネージド → 安価だが時間と専門知識が必要
  • オープンソースか商用か?
    • オープンソース → 柔軟でコスト効率が高い
    • 商用 → サポートが充実し、高度な機能とコンプライアンス対応

 

  • データモデル:データの種類に適したデータベース型はあるか?
  • 特定機能:マルチモーダルストレージなど、用途に必要な機能があるか?

Chromaのロゴ。

OpenAI API ではじめる Embeddings 入門

では、練習しましょう!

OpenAI API ではじめる Embeddings 入門

Preparing Video For Download...