Glossaire aéronautique

Qu'est-ce que FAISS ?

Vector Search · Machine Learning 8 langues
Définition
FAISS est une bibliothèque open-source qui cherche, dans un ensemble de vecteurs denses, les vecteurs les plus proches d’un vecteur de requête.

FAISS est une bibliothèque open-source qui cherche, dans un ensemble de vecteurs denses, les vecteurs les plus proches d’un vecteur de requête. Le nom signifie Facebook AI Similarity Search. Le projet écrit le nom « Faiss ».

Fonctionnement

Un vecteur dense est une liste de nombres de longueur fixe. Un réseau de neurones peut transformer une image ou un texte en un tel vecteur, appelé plongement (embedding). FAISS stocke de nombreux vecteurs dans un index. Pour un vecteur de requête, il renvoie les vecteurs les plus proches et leurs distances. Il compare les vecteurs par distance L2 (euclidienne) ou par produit scalaire. Il prend aussi en charge la similarité cosinus, qui est le produit scalaire des vecteurs normalisés.

Le groupe Fundamental AI Research de Meta développe FAISS. La bibliothèque est écrite en C++ et possède des interfaces pour Python. Certains algorithmes s’exécutent aussi sur un GPU.

Types d’index

Le type d’index fixe l’équilibre entre vitesse et exactitude.

  • IndexFlatL2 et IndexFlatIP comparent la requête à chaque vecteur, le résultat est donc exact. IndexFlatIP utilise le produit scalaire. Avec des vecteurs normalisés, il donne la similarité cosinus.
  • IndexIVFFlat répartit les vecteurs en nlist cellules. Une requête ne parcourt que nprobe d’entre elles. C’est plus rapide, mais le plus proche voisin peut être manqué si sa cellule n’est pas parcourue.
  • IndexHNSWFlat parcourt un graphe des vecteurs (un graphe hiérarchique navigable à petit monde).
  • IndexIVFPQ ajoute la quantification produit, qui stocke chaque vecteur sous une forme compressée.

La plupart des index doivent être entraînés sur des vecteurs d’exemple avant leur utilisation. IndexFlatL2 n’a pas besoin d’entraînement.

Échelle

FAISS peut parcourir des ensembles de vecteurs qui ne tiennent pas dans la RAM. Dans l’article de 2017, les auteurs ont construit un graphe de plus proches voisins de 1 milliard de vecteurs en moins de 12 heures sur 4 GPU.

Foire aux questions

Qui développe FAISS et dans quel langage est-il écrit ?
FAISS est développé principalement par le groupe Fundamental AI Research de Meta. Il est écrit en C++ et possède des interfaces pour Python et numpy. Le code est sous licence MIT. Meta l'a annoncé en mars 2017.
FAISS est-il une base de données vectorielle ?
Non. FAISS est une bibliothèque que vous appelez depuis votre propre programme. Sa page de projet la décrit comme une bibliothèque de recherche de similarité et de clustering de vecteurs denses, et non comme une base de données.
Comment FAISS calcule-t-il la similarité cosinus ?
FAISS compare les vecteurs par distance L2 ou par produit scalaire. Pour la similarité cosinus, normalisez d'abord les vecteurs à une longueur unitaire. Utilisez ensuite un index de produit scalaire, comme IndexFlatIP. La similarité cosinus est le produit scalaire des vecteurs normalisés.
FAISS renvoie-t-il toujours le plus proche voisin exact ?
Non. Les index plats (IndexFlatL2 et IndexFlatIP) comparent la requête à chaque vecteur, et renvoient donc des résultats exacts. Les index partitionnés, comme IndexIVFFlat, ne parcourent qu'une partie des données. Ils sont plus rapides, mais ils perdent la garantie de trouver le plus proche voisin.

Références

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

Ceci est une entrée de référence. TarmacView fournit des services d'inspection par drone et ne vend pas l'équipement ou les matériaux décrits dans ce glossaire.

Commencer Besoin de vérifier l'éclairage de votre aérodrome ? TarmacView inspecte l'éclairage PAPI, de piste et d'approche par drone, entre les mouvements d'aéronefs, et fournit un rapport de conformité conçu pour votre régulateur. L'inspection de la chaussée et des obstacles est en développement.
Poursuivez votre lecture

En savoir plus

03 PAGES
k plus proches voisins (kNN)
glossary

k plus proches voisins (kNN)

L'algorithme des k plus proches voisins (kNN) attribue une classe par vote majoritaire parmi les k points stockés les plus proches. Son fonctionnement, le choix de k et les cas où il échoue.

Espace d'intégration
glossary

Espace d'intégration

Un espace d'intégration est un espace mathématique de grande dimension dans lequel des objets tels que des images, du texte ou des données de capteurs sont représentés sous forme de vecteurs, permettant la recherche de similarité et la reconnaissance de formes dans les systèmes d'inspection d'infrastructures basés sur l'IA.

Largeur de faisceau
glossary

Largeur de faisceau

La largeur de faisceau est l'angle ou la distance à travers un faisceau, mesurée entre deux points où son intensité tombe à une fraction donnée du maximum. Les définitions courantes et la manière dont les règles aéroportuaires emploient ce terme.