メインコンテンツまでスキップ

lakebase_vector

備考

ベータ版

この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。Databricksのプレビューを管理するを参照してください。

The lakebase_vector extension adds approximate nearest-neighbor (ANN) ベクトル検索 to Lakebase via the lakebase_ann index type.これはpgvectorのそのまま使えるコンパニオンです。同じベクトルタイプ、距離演算子、クエリー構文は修正なしで機能します。

インストール

まず、プロジェクト設定でLakebase Searchを有効にしてください。次に、拡張機能をインストールします。

SQL
CREATE EXTENSION IF NOT EXISTS lakebase_vector CASCADE;

CASCADE キーワードは、pgvector を依存関係として自動的にインストールします。

クイックスタート

SQL
-- Create a table with a vector column
CREATE TABLE items (id BIGSERIAL PRIMARY KEY, embedding VECTOR(3));

-- Insert sample data
INSERT INTO items (embedding)
SELECT ARRAY[random(), random(), random()]::real[]
FROM generate_series(1, 1000);

-- Create a lakebase_ann index
CREATE INDEX ON items USING lakebase_ann (embedding vector_l2_ops);

-- Query using standard pgvector distance operators
SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;

インデックスを設定

インデックス作成時に build_mode を設定して、精度と速度のトレードオフを制御します。

  • standard (デフォルト):recallに最適化します。ほとんどのワークロードに使用します。
  • fast再現率が低い場合は、より高速にビルドされます。検索品質よりもビルド時間が重要な場合に使用します。
SQL
CREATE INDEX ON items USING lakebase_ann (embedding vector_l2_ops) WITH (build_mode = 'fast');

インデックスを同時実行で構築する

テーブルをロックせずに構築するにはCREATE INDEX CONCURRENTLY使用し、ダウンタイムなしで再構築するにはREINDEX CONCURRENTLY使用します。

SQL
CREATE INDEX CONCURRENTLY items_embedding_ann ON items
USING lakebase_ann (embedding vector_l2_ops);

REINDEX INDEX CONCURRENTLY items_embedding_ann;

検索精度を調整する

チューニングする前に、lakebase_ann_index_info(index_name)を呼び出してインデックスのlistsdefault_probesdefault_epsilonの値を取得します。

クエリ時にlakebase_ann.probesを設定して、精度と速度のトレードオフを制御します。値が大きいほど再現率は向上しますが、クエリは遅くなります。

SQL
SET lakebase_ann.probes TO '10';
SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 10;

lakebase_ann.epsilon 再ランキングのマージンを制御します。デフォルト値の1.9は、ほとんどのワークロードで問題なく機能します。

SQL
SET lakebase_ann.epsilon TO '1.5';

オペレータークラス

距離メトリクス

オペレータークラス

クエリ演算子

L2 (ユークリッド)

vector_l2_ops

<->

内積

vector_ip_ops

<#>

コサイン類似度

vector_cosine_ops

<=>

インデックス オプション リファレンス

オプション

Type

デフォルト

説明

build_mode

string

'standard'

インデックス構築時の精度と速度のトレードオフを制御します。'standard' は再現率を最適化し、'fast' は再現率が低い場合はより高速にビルドされます。

GUC参照

パラメーター

Type

デフォルト

説明

lakebase_ann.probes

整数

(未設定)

クエリ時にスキャンするIVFパーティションの数。値が大きいほどrecallは向上しますが、クエリ速度は低下します。

lakebase_ann.epsilon

float

1.9

順位付けのマージンを再調整します。有効範囲: 0.04.0

ユーティリティ関数

関数

戻り値

説明

lakebase_ann_prewarm(regclass)

無効

最初のクエリにおけるコールドスタート時の遅延を解消するため、インデックスをメモリにロードします。

lakebase_ann_index_info(regclass)

TEXT

listsdefault_probesdefault_epsilon を含むインデックスメタデータをテキストとして返します。

次のステップ