faiss

Bietet Zugriff auf faiss-Indizes aus DuckDB.

Maintainer: JAicewizard, arjenpdevries

Installation und Laden

INSTALL faiss FROM community;
LOAD faiss;

Beispiel

-- Generate semi-random input data and queries
-- Note that the dimensionality of our data will be 5
CREATE TABLE input AS SELECT i AS id, apply(generate_series(1, 5), j-> CAST(hash(i*1000+j) AS FLOAT)/18446744073709551615) AS data FROM generate_series(1, 1000) s(i);
CREATE TABLE queries AS SELECT i AS id, apply(generate_series(1, 5), j-> CAST(hash(i*1000+j+8047329823) AS FLOAT)/18446744073709551615) AS data FROM generate_series(1, 10) s(i);
-- Create the index and insert data into it
CALL FAISS_CREATE('name', 5, 'IDMap,HNSW32');
CALL FAISS_ADD((SELECT id, data FROM input), 'name');
-- On linux, with cuda, we can move the index to the GPU
-- CALL FAISS_TO_GPU('name', 0);
-- Get 10 results with uneven id
SELECT id, UNNEST(FAISS_SEARCH_FILTER('name', 10, data, 'id%2==1', 'rowid', 'input')) FROM queries;
-- Get 10 results with even id
SELECT id, UNNEST(FAISS_SEARCH_FILTER('name', 10, data, 'id%2==0', 'rowid', 'input')) FROM queries;
-- Get 10 results
SELECT id, UNNEST(FAISS_SEARCH('name', 10, data)) FROM queries;

Über faiss

Die FAISS-Erweiterung ermöglicht DuckDB-Nutzern, Vektordaten in faiss zu speichern und abzufragen und macht zuverlässige Vektorsuche zugänglicher. Auf allen Linux-Plattformen unterstützt diese Erweiterung auch GPU-Indizes; Sie können einen unterstützten Index mit CALL FAISS_MOVE_GPU({index_name}, {gpu number}) auf die GPU verschieben. Derzeit wird nur CUDA unterstützt; beachten Sie, dass die GPU-Unterstützung künftig in eine eigene Erweiterung ausgelagert werden kann.

Einige (die meisten) Indizes werden auf GPUs nicht unterstützt; das lässt sich jedoch sehr einfach beheben. Bitte öffnen Sie ein Issue in unserem Repository, damit wir das lösen können!

Hinzugefügte Funktionen

function_name function_type description comment examples
__faiss_create_mask table NULL NULL
faiss_add table NULL NULL
faiss_create table NULL NULL
faiss_create_params table NULL NULL
faiss_destroy table NULL NULL
faiss_load table NULL NULL
faiss_manual_train table NULL NULL
faiss_save table NULL NULL
faiss_search scalar NULL NULL
faiss_search_filter scalar NULL NULL
faiss_search_filter_set scalar NULL NULL
faiss_to_gpu table NULL NULL

Überladene Funktionen

Diese Erweiterung fügt keine Funktionsüberladungen hinzu.

Hinzugefügte Typen

Diese Erweiterung fügt keine Typen hinzu.

Hinzugefügte Einstellungen

Diese Erweiterung fügt keine Einstellungen hinzu.