Letecký slovník

Čo je FAISS?

Vector Search · Machine Learning 8 jazyky
Definícia
FAISS je open-source knižnica, ktorá v množine hustých vektorov vyhľadáva vektory najbližšie k dotazovému vektoru.

FAISS je open-source knižnica, ktorá v množine hustých vektorov vyhľadáva vektory najbližšie k dotazovému vektoru. Názov je skratka pre Facebook AI Similarity Search. Projekt ho píše „Faiss“.

Čo FAISS robí

Hustý vektor je pevný zoznam čísel. Neurónová sieť dokáže obrázok alebo text previesť na takýto vektor, ktorý sa nazýva embedding. FAISS ukladá veľa vektorov do indexu. Pri dotaznom vektore vráti najbližšie vektory a ich vzdialenosti. Porovnáva vektory vzdialenosťou L2 (euklidovskou) alebo skalárnym súčinom. Podporuje aj kosínusovú podobnosť, čo je skalárny súčin normalizovaných vektorov.

Skupina Fundamental AI Research spoločnosti Meta vyvíja FAISS. Knižnica je napísaná v jazyku C++ a má obaly pre Python. Niektoré algoritmy bežia aj na GPU.

Typy indexov

Typ indexu určuje pomer medzi rýchlosťou a presnosťou.

  • IndexFlatL2 a IndexFlatIP porovnávajú dotaz s každým vektorom, takže výsledok je presný. IndexFlatIP používa skalárny súčin. Pri normalizovaných vektoroch dáva kosínusovú podobnosť.
  • IndexIVFFlat rozdelí vektory do nlist buniek. Dotaz prehľadá iba nprobe z nich. Je to rýchlejšie, ale najbližší vektor sa môže minúť, ak jeho bunka nie je prehľadaná.
  • IndexHNSWFlat prehľadáva graf vektorov (hierarchický navigovateľný graf malého sveta, angl. hierarchical navigable small world graph).
  • IndexIVFPQ pridáva produktovú kvantizáciu, ktorá ukladá každý vektor v komprimovanej podobe.

Väčšina indexov sa pred použitím musí natrénovať na vzorových vektoroch. IndexFlatL2 trénovanie nepotrebuje.

Rozsah

FAISS dokáže prehľadávať množiny vektorov, ktoré sa nezmestia do operačnej pamäte (RAM). V článku z roku 2017 autori zostrojili graf najbližších susedov pre 1 miliardu vektorov za menej ako 12 hodín na 4 GPU.

Často kladené otázky

Kto vyvíja FAISS a v akom jazyku je napísaný?
FAISS vyvíja hlavne skupina Fundamental AI Research spoločnosti Meta. Je napísaný v jazyku C++ a má obaly pre Python a numpy. Kód má licenciu MIT. Meta ho oznámila v marci 2017.
Je FAISS vektorová databáza?
Nie. FAISS je knižnica, ktorú volá váš vlastný program. Jej projektová stránka ju opisuje ako knižnicu na vyhľadávanie podobnosti a zhlukovanie hustých vektorov, nie ako databázu.
Ako FAISS zisťuje kosínusovú podobnosť?
FAISS porovnáva vektory vzdialenosťou L2 alebo skalárnym súčinom. Pre kosínusovú podobnosť najprv normalizujte vektory na jednotkovú dĺžku. Potom použite index so skalárnym súčinom, napríklad IndexFlatIP. Kosínusová podobnosť je skalárny súčin normalizovaných vektorov.
Vracia FAISS vždy presný najbližší sused?
Nie. Ploché indexy (IndexFlatL2 a IndexFlatIP) prehľadajú každý vektor, a preto vracajú presné výsledky. Rozdelené indexy, ako IndexIVFFlat, prehľadajú iba časť dát. Sú rýchlejšie, ale strácajú záruku, že nájdu najbližší sused.

Referencie

faiss-github
facebookresearch/faiss, README Meta Fundamental AI Research (GitHub)
faiss-wiki-indexes
Faiss indexes (Faiss wiki) Meta Fundamental AI Research (GitHub)
faiss-wiki-getting-started
Getting started (Faiss wiki) Meta Fundamental AI Research (GitHub)
faiss-meta-2017
Faiss: A library for efficient similarity search Engineering at Meta

Toto je referenčný záznam. TarmacView poskytuje služby dronovej inšpekcie a nepredáva vybavenie ani materiály opísané v tomto slovníku.

Začať Potrebujete overiť svetelnú navigáciu vášho letiska? TarmacView kontroluje PAPI, dráhu a približovacie svetlá pomocou dronu medzi pohybmi lietadiel a poskytuje správu o zhode určenú pre vášho regulátora. Kontrola povrchu vozovky a prekážok je vo vývoji.
Pokračovať v čítaní

Zistiť viac

03 STRÁN
k-najbližších susedov (kNN)
glossary

k-najbližších susedov (kNN)

Algoritmus k-najbližších susedov (kNN) priradí triedu väčšinovým hlasovaním medzi k najbližšími uloženými bodmi. Ako funguje, ako zvoliť k a kde zlyháva.

Vložený priestor
glossary

Vložený priestor

Vložený priestor je viacrozmerný matematický priestor, v ktorom sú objekty ako obrázky, text alebo údaje zo senzorov reprezentované ako vektory, čo umožňuje vyhľadávanie podobnosti a rozpoznávanie vzorov v systémoch kontroly infraštruktúry poháňaných AI.

DINOv3 Vision Transformer
glossary

DINOv3 Vision Transformer

DINOv3 (self-DIstillation with NO labels v3) je samoriadený vision transformer (ViT-B/16) predtrénovaný na 1,7 miliarde obrázkov, ktorý vytvára vysokokvalitné 768-rozmerné vloženia (embeddings) zachytávajúce jemnú textúru a štruktúru. Modely TarmacView vo vývoji používajú kostry DINOv2 a DINOv3 na rôzne účely. Zahŕňa trénovanie DINO, architektúru ViT, dolaďovanie pre doménové úlohy a porovnanie s…