Aller au contenu principal

lakebase_vector

info

Bêta

Cette fonctionnalité est en Bêta. Les administrateurs du Workspace peuvent contrôler l'accès à cette fonctionnalité à partir de la page Previews . Consultez Gérer les aperçus Databricks.

L'extension lakebase_vector ajoute la recherche vectorielle de plus proche voisin approximatif (ANN) à Lakebase via le type d'index lakebase_ann. C'est un complément direct à pgvector: les mêmes types de vecteurs, opérateurs de distance et syntaxe de requête fonctionnent sans modification.

Installer

Tout d'abord, activez la recherche Lakebase dans les paramètres de votre projet. Puis installez l'extension :

SQL
CREATE EXTENSION IF NOT EXISTS lakebase_vector CASCADE;

Le mot-clé CASCADE installe automatiquement pgvector en tant que dépendance.

Quick start

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;

Configurez l'index

Définissez build_mode lors de la création de l'index pour contrôler le compromis précision/vitesse :

  • standard (default) : optimise le rappel. Utilisez pour la plupart des charges de travail.
  • fastcrée plus rapidement avec un rappel inférieur. À utiliser lorsque le temps de création importe plus que la qualité de la recherche.
SQL
CREATE INDEX ON items USING lakebase_ann (embedding vector_l2_ops) WITH (build_mode = 'fast');

Créer des index simultanément

Utilisez CREATE INDEX CONCURRENTLY pour créer sans verrouiller la table, puis REINDEX CONCURRENTLY pour reconstruire sans interruption :

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

REINDEX INDEX CONCURRENTLY items_embedding_ann;

Ajuster la précision de la recherche

Avant le réglage, appelez lakebase_ann_index_info(index_name) pour obtenir les valeurs lists, default_probes et default_epsilon de l'index.

Définissez lakebase_ann.probes au moment de la query pour contrôler le compromis précision/vitesse. Des valeurs plus élevées améliorent le rappel mais ralentissent les queries.

Avant de définir lakebase_ann.probes, appelez lakebase_ann_index_info pour trouver votre tableau lists. Définissez une valeur de sonde par entrée de liste :

lists d'informations d'index

probes définir

[] (vide)

[222]

'22'

[3333, 33333]

'33, 333'

lists d'informations d'index

probes définir

[] (vide)

[222]

'22'

[3333, 33333]

'33, 333'

remarque

Le paramètre lakebase_ann.probes requiert une valeur par entrée dans lists. Lorsque le tableau lists est vide (ce qui se produit sur de petites tables où le constructeur d'index ne crée pas de partitions IVF), ne définissez pas probes. Définir une valeur lorsque le tableau lists est vide provoque une erreur. Les partitions IVF apparaissent une fois que votre dataset est suffisamment grand pour que le générateur d'index puisse le partitionner.

SQL
-- Check your index's lists length first
SELECT lakebase_ann_index_info('items_embedding_ann');

-- Set probes matching the lists array (example: one partition)
SET lakebase_ann.probes TO '22';
SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 10;

lakebase_ann.epsilon contrôle la marge de reclassement. La valeur par default de 1.9 fonctionne bien pour la plupart des charges de travail.

SQL
SET lakebase_ann.epsilon TO '1.5';

Classes d'opérateurs

Métrique de distance

Classe d'opérateur

Opérateur de query

L2 (euclidien)

vector_l2_ops

<->

Produit interne négatif

vector_ip_ops

<#>

Similarité cosinus

vector_cosine_ops

<=>

Métrique de distance

Classe d'opérateur

Opérateur de query

L2 (euclidien)

vector_l2_ops

<->

Produit interne négatif

vector_ip_ops

<#>

Similarité cosinus

vector_cosine_ops

<=>

Choisissez la classe d’opérateur qui correspond à la façon dont vos intégrations ont été entraînées, et utilisez la même métrique pour l’index et la query :

  • vector_cosine_ops (<=>) est la similarité cosinus. Utilisez-le pour la plupart des intégrations de texte. C'est le choix le plus courant.
  • vector_l2_ops (<->) est la distance euclidienne (L2). Utilisez-le lorsque la distance spatiale absolue importe et que les vecteurs ne sont pas normalisés.
  • vector_ip_ops (<#>) est un produit interne négatif. Utilisez-le lorsque les vecteurs sont pré-normalisés à une longueur unitaire. Pour les vecteurs unitaires, le produit interne est égal à la similarité cosinus et est généralement plus rapide.

Référence des options d'index

Option

Type

Par défaut

Description

build_mode

chaîne

'standard'

Contrôle le compromis précision/vitesse au moment de la création de l'index. 'standard' optimise le rappel ; 'fast' crée plus rapidement avec un rappel inférieur.

Option

Type

Par défaut

Description

build_mode

chaîne

'standard'

Contrôle le compromis précision/vitesse au moment de la création de l'index. 'standard' optimise le rappel ; 'fast' crée plus rapidement avec un rappel inférieur.

Référence GUC

parameter

Type

Par défaut

Description

lakebase_ann.probes

entier[]

(non défini)

Tableau de comptages de sondes par partition, une valeur par entrée dans lists. Des valeurs plus élevées améliorent le rappel au détriment de la vitesse de query. Vérifiez lakebase_ann_index_info pour la longueur lists afin de déterminer le nombre de valeurs à définir.

lakebase_ann.epsilon

Présentation libre

1.9

Marge de reclassement. Plage de valeurs valides : 0.0 à 4.0.

parameter

Type

Par défaut

Description

lakebase_ann.probes

entier[]

(non défini)

Tableau de comptages de sondes par partition, une valeur par entrée dans lists. Des valeurs plus élevées améliorent le rappel au détriment de la vitesse de query. Vérifiez lakebase_ann_index_info pour la longueur lists afin de déterminer le nombre de valeurs à définir.

lakebase_ann.epsilon

Présentation libre

1.9

Marge de reclassement. Plage de valeurs valides : 0.0 à 4.0.

Fonctions utilitaires

Fonction

Renvoie

Description

lakebase_ann_prewarm(regclass)

vide

Charge un index en mémoire pour éliminer la latence de démarrage à cold-start lors de la première query.

lakebase_ann_index_info(regclass)

Texte

Renvoie les métadonnées d'index sous forme de texte, notamment lists, default_probes et default_epsilon.

Fonction

Renvoie

Description

lakebase_ann_prewarm(regclass)

vide

Charge un index en mémoire pour éliminer la latence de démarrage à cold-start lors de la première query.

lakebase_ann_index_info(regclass)

Texte

Renvoie les métadonnées d'index sous forme de texte, notamment lists, default_probes et default_epsilon.

Étapes suivantes