Letecký slovník

Co je FAISS?

Vector Search · Machine Learning 8 jazyky
Definice
FAISS je open-source knihovna, která v množině hustých vektorů vyhledává vektory nejblíže dotazovacímu vektoru.

FAISS je open-source knihovna, která v množině hustých vektorů vyhledává vektory nejblíže dotazovacímu vektoru. Název znamená Facebook AI Similarity Search. Projekt jej píše jako „Faiss“.

Co dělá

Hustý vektor je pevně dlouhý seznam čísel. Neuronová síť může obrázek nebo text převést na takový vektor, kterému se říká embedding. FAISS ukládá mnoho vektorů do indexu. Pro zadaný dotazovací vektor vrací nejbližší vektory a jejich vzdálenosti. Porovnává vektory pomocí L2 (eukleidovské) vzdálenosti nebo skalárního součinu. Podporuje také kosinovou podobnost, což je skalární součin normalizovaných vektorů.

FAISS vyvíjí skupina Fundamental AI Research společnosti Meta. Knihovna je napsaná v C++ a má obaly pro Python. Některé algoritmy běží také na GPU.

Typy indexů

Typ indexu určuje poměr mezi rychlostí a přesností.

  • IndexFlatL2 a IndexFlatIP porovnají dotaz s každým vektorem, takže výsledek je přesný. IndexFlatIP používá skalární součin. U normalizovaných vektorů dává kosinovou podobnost.
  • IndexIVFFlat rozdělí vektory do nlist buněk. Dotaz prohledá jen nprobe z nich. To je rychlejší, ale nejbližší soused může být přehlédnut, pokud jeho buňka není prohledána.
  • IndexHNSWFlat prohledává graf vektorů (hierarchický navigovatelný graf malého světa).
  • IndexIVFPQ přidává produktovou kvantizaci, která ukládá každý vektor ve zkomprimované podobě.

Většina indexů se musí před použitím natrénovat na vzorových vektorech. IndexFlatL2 trénink nevyžaduje.

Měřítko

FAISS dokáže prohledávat množiny vektorů, které se nevejdou do RAM. V článku z roku 2017 autoři sestavili graf nejbližších sousedů pro 1 miliardu vektorů za méně než 12 hodin na 4 GPU.

Často kladené otázky

Kdo vyvíjí FAISS a v jakém jazyce je napsán?
FAISS vyvíjí hlavně skupina Fundamental AI Research společnosti Meta. Je napsán v C++ a má obaly pro Python a numpy. Kód má licenci MIT. Knihovnu Meta oznámila v březnu 2017.
Je FAISS vektorová databáze?
Ne. FAISS je knihovna, kterou voláte z vlastního programu. Na stránce projektu je popsána jako knihovna pro vyhledávání podobnosti a shlukování hustých vektorů, ne jako databáze.
Jak FAISS hledá kosinovou podobnost?
FAISS porovnává vektory vzdáleností L2 nebo skalárním součinem. Pro kosinovou podobnost nejprve vektory normalizujte na jednotkovou délku. Pak použijte index se skalárním součinem, například IndexFlatIP. Kosinová podobnost je skalární součin normalizovaných vektorů.
Vrací FAISS vždy přesného nejbližšího souseda?
Ne. Ploché indexy (IndexFlatL2 a IndexFlatIP) prohledají každý vektor, a proto vracejí přesné výsledky. Rozdělené indexy, jako IndexIVFFlat, prohledají jen část dat. Jsou rychlejší, ale ztrácejí záruku, že najdou nejbližšího souseda.

Reference

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í položka. TarmacView poskytuje služby inspekce drony a neprodává zařízení ani materiály popsané v tomto slovníku.

Začněte Potřebujete ověřit osvětlení vašeho letiště? TarmacView kontroluje PAPI, dráhu a přibližovací osvětlení dronem mezi pohyby letadel a dodává zprávu o shodě určenou pro vašeho regulátora. Inspekce vozovky a překážek jsou ve vývoji.
Pokračovat ve čtení

Zjistit více

03 STRÁNKY
k nejbližších sousedů (kNN)
glossary

k nejbližších sousedů (kNN)

Algoritmus k nejbližších sousedů (kNN) přiřadí třídu většinovým hlasováním mezi k nejbližšími uloženými body. Jak funguje, jak zvolit k a kde selhává.

Prostor embeddingů
glossary

Prostor embeddingů

Prostor embeddingů je vícedimenzionální matematický prostor, ve kterém objekty, jako obrazy, text nebo data senzorů, jsou reprezentovány jako vektory, umožňující hledání podobnosti a rozpoznávání vzorů v systémech inspekce infrastruktury řízených AI.

DINOv3 Vision Transformer
glossary

DINOv3 Vision Transformer

DINOv3 (self-DIstillation with NO labels v3) je samoučící vision transformer (ViT-B/16) předtrénovaný na 1,7 miliardách obrázků, který vytváří vysoce kvalitní 768-rozměrné embeddingy zachycující jemnozrnnou texturu a strukturu. Modely TarmacView ve vývoji používají backbone DINOv2 a DINOv3 pro různé účely. Pokrývá trénink DINO, architekturu ViT, doladění pro doménové úlohy a srovnání s DINOv2 a…