Repülési szószedet

Mi a FAISS?

Vector Search · Machine Learning 8 nyelvek
Meghatározás
A FAISS nyílt forráskódú könyvtár, amely sűrű vektorok halmazában megkeresi a lekérdezési vektorhoz legközelebb álló vektorokat.

A FAISS nyílt forráskódú könyvtár, amely sűrű vektorok halmazában megkeresi a lekérdezési vektorhoz legközelebb álló vektorokat. A név a Facebook AI Similarity Search rövidítése. A projekt „Faiss” alakban írja.

Mit csinál?

A sűrű vektor rögzített hosszúságú számlista. Egy neurális hálózat képből vagy szövegből állíthat elő ilyen vektort, amelyet beágyazásnak (embedding) nevezünk. A FAISS sok vektort tárol egy indexben. Egy lekérdezési vektor alapján visszaadja a legközelebbi vektorokat és azok távolságát. L2 (euklideszi) távolsággal vagy skaláris szorzattal hasonlítja össze a vektorokat. Támogatja a koszinusz-hasonlóságot is, amely a normalizált vektorok skaláris szorzata.

A Meta Fundamental AI Research csoportja fejleszti a FAISS-t. A könyvtár C++ nyelven íródott, és Python-csomagolói vannak. Egyes algoritmusok GPU-n is futnak.

Indextípusok

Az indextípus határozza meg a sebesség és a pontosság egyensúlyát.

  • IndexFlatL2 és IndexFlatIP a lekérdezést minden vektorral összehasonlítja, ezért az eredmény pontos. Az IndexFlatIP a belső szorzatot használja. Normalizált vektorok esetén koszinusz-hasonlóságot ad.
  • IndexIVFFlat a vektorokat nlist cellára osztja. Egy lekérdezés csak nprobe cellát keres át. Ez gyorsabb, de a legközelebbi szomszéd kimaradhat, ha a cellája nincs átkeresve.
  • IndexHNSWFlat a vektorok gráfján keres (hierarchikus, navigálható kis világ gráf).
  • IndexIVFPQ termékkvantálást (product quantization) ad hozzá, amely minden vektort tömörített formában tárol.

A legtöbb indexet használat előtt példavektorokon kell betanítani. Az IndexFlatL2-höz nincs szükség betanításra.

Méretezés

A FAISS olyan vektorhalmazokban is tud keresni, amelyek nem férnek el a RAM-ban. A 2017-es cikkben a szerzők 1 milliárd vektor legközelebbi szomszéd gráfját építették fel 12 órán belül 4 GPU-n.

Gyakran Ismételt Kérdések

Ki fejleszti a FAISS-t, és milyen nyelven íródott?
A FAISS fejlesztését elsősorban a Meta Fundamental AI Research csoportja végzi. C++ nyelven íródott, és Python- és numpy-csomagolói vannak. A kód MIT-licencű. A Meta 2017 márciusában jelentette be.
A FAISS vektoradatbázis?
Nem. A FAISS olyan könyvtár, amelyet a saját programból hív meg. A projekt honlapja hasonlósági keresésre és sűrű vektorok klaszterezésére szolgáló könyvtárként írja le, nem adatbázisként.
Hogyan számítja ki a FAISS a koszinusz-hasonlóságot?
A FAISS L2 távolsággal vagy skaláris szorzattal hasonlítja össze a vektorokat. Koszinusz-hasonlósághoz először normalizálja a vektorokat egységnyi hosszra. Ezután olyan belső szorzat indexet használjon, mint az IndexFlatIP. A koszinusz-hasonlóság a normalizált vektorok skaláris szorzata.
A FAISS mindig a pontos legközelebbi szomszédot adja vissza?
Nem. A lapos indexek (IndexFlatL2 és IndexFlatIP) minden vektort átvizsgálnak, ezért pontos eredményt adnak. A particionált indexek, mint az IndexIVFFlat, az adatoknak csak egy részét keresik át. Gyorsabbak, de elveszítik azt a garanciát, hogy megtalálják a legközelebbi szomszédot.

Hivatkozások

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

Ez egy referenciabejegyzés. A TarmacView drónos ellenőrzési szolgáltatásokat nyújt, és nem árulja az ebben a szószedetben leírt felszereléseket vagy anyagokat.

Kezdje el Szüksége van a repülőtéri világítás ellenőrzésére? A TarmacView drónnal ellenőrzi a PAPI, futópálya és megközelítési világítást repülőgépmozgások között, és megfelelőségi jelentést készít a szabályozó hatóság számára. A burkolat- és akadályvizsgálat fejlesztés alatt áll.
Olvass tovább

Tudj meg többet

03 OLDALAK
Beágyazási tér
glossary

Beágyazási tér

A beágyazási tér egy magas dimenziójú matematikai tér, amelyben objektumok – például képek, szövegek vagy érzékelőadatok – vektorokként jelennek meg, lehetővé téve a hasonlóság alapú keresést és mintázatfelismerést mesterséges intelligenciával működő infrastruktúra-ellenőrző rendszerekben.

k-legközelebbi szomszédok (kNN)
glossary

k-legközelebbi szomszédok (kNN)

A k-legközelebbi szomszédok (kNN) algoritmus többségi szavazással rendel osztályt a k legközelebbi tárolt ponthoz. Hogyan működik, hogyan válasszuk meg a k értékét, és hol hibázik.

AI-alapú repedésfelismerés
glossary

AI-alapú repedésfelismerés

Az AI-alapú repedésfelismerés olyan számítógépes látási módszer, amely burkolatképeken találja meg a repedéseket. Megmutatja, mit ad ki, hogyan viszonyul a PCI-felméréshez, és hol marad alul.