Glosario de aviación

¿Qué es FAISS?

Vector Search · Machine Learning 8 idiomas
Definición
FAISS es una biblioteca de código abierto que busca en un conjunto de vectores densos los vectores más cercanos a un vector de consulta.

FAISS es una biblioteca de código abierto que busca en un conjunto de vectores densos los vectores más cercanos a un vector de consulta. El nombre significa Facebook AI Similarity Search. El proyecto escribe el nombre como “Faiss”.

Qué hace

Un vector denso es una lista de números de longitud fija. Una red neuronal puede convertir una imagen o un texto en un vector de este tipo, lo que se llama embedding. FAISS guarda muchos vectores en un índice. Dado un vector de consulta, devuelve los vectores más cercanos y sus distancias. Compara vectores con la distancia L2 (euclidiana) o con el producto escalar. También admite la similitud coseno, que es el producto escalar de vectores normalizados.

El grupo Fundamental AI Research de Meta desarrolla FAISS. La biblioteca está escrita en C++ y tiene interfaces para Python. Algunos algoritmos también se ejecutan en una GPU.

Tipos de índice

El tipo de índice fija el equilibrio entre velocidad y exactitud.

  • IndexFlatL2 e IndexFlatIP comparan la consulta con cada vector, por eso el resultado es exacto. IndexFlatIP usa el producto interno. Con vectores normalizados da la similitud coseno.
  • IndexIVFFlat divide los vectores en nlist celdas. Una consulta examina solo nprobe de ellas. Es más rápido, pero el vecino más cercano puede quedar fuera si su celda no se examina.
  • IndexHNSWFlat recorre un grafo jerárquico de los vectores (hierarchical navigable small world graph).
  • IndexIVFPQ añade cuantización por producto, que guarda cada vector en forma comprimida.

La mayoría de los índices deben entrenarse con vectores de ejemplo antes de usarse. IndexFlatL2 no necesita entrenamiento.

Escala

FAISS puede buscar en conjuntos de vectores que no caben en la RAM. En el artículo de 2017, los autores construyeron un grafo de vecinos más cercanos de 1 000 millones de vectores en menos de 12 horas con 4 GPU.

Preguntas Frecuentes

¿Quién desarrolla FAISS y en qué lenguaje está escrito?
FAISS lo desarrolla principalmente el grupo Fundamental AI Research de Meta. Está escrito en C++ y tiene interfaces para Python y numpy. El código tiene licencia MIT. Meta lo anunció en marzo de 2017.
¿Es FAISS una base de datos vectorial?
No. FAISS es una biblioteca que usted llama desde su propio programa. Su página del proyecto la describe como una biblioteca para la búsqueda por similitud y la agrupación de vectores densos, no como una base de datos.
¿Cómo encuentra FAISS la similitud coseno?
FAISS compara vectores con la distancia L2 o con el producto escalar. Para la similitud coseno, primero normalice los vectores a longitud unitaria. Después use un índice de producto interno, como IndexFlatIP. La similitud coseno es el producto escalar de los vectores normalizados.
¿Siempre devuelve FAISS el vecino más cercano exacto?
No. Los índices planos (IndexFlatL2 e IndexFlatIP) examinan cada vector y por eso devuelven resultados exactos. Los índices particionados, como IndexIVFFlat, examinan solo una parte de los datos. Son más rápidos, pero pierden la garantía de encontrar el vecino más cercano.

Referencias

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

Esta es una entrada de referencia. TarmacView proporciona servicios de inspección con drones y no vende los equipos ni materiales descritos en este glosario.

Comience ¿Necesita verificar la iluminación de su aeródromo? TarmacView inspecciona PAPI, iluminación de pista y aproximación mediante drones, entre movimientos de aeronaves, y entrega un informe de cumplimiento diseñado para su regulador. La inspección de pavimento y obstáculos está en desarrollo.
Seguir leyendo

Más información

03 PÁGINAS
k vecinos más cercanos (kNN)
glossary

k vecinos más cercanos (kNN)

El algoritmo de los k vecinos más cercanos (kNN) asigna una clase por votación mayoritaria entre los k puntos almacenados más próximos. Cómo funciona, cómo elegir k y dónde falla.

Espacio de Incrustación
glossary

Espacio de Incrustación

Un espacio de incrustación es un espacio matemático de alta dimensión en el que objetos como imágenes, texto o datos de sensores se representan como vectores, lo que permite la búsqueda por similitud y el reconocimiento de patrones en sistemas de inspección de infraestructura impulsados por IA.

Fijo de Aproximación Final (FAF)
glossary

Fijo de Aproximación Final (FAF)

El Fijo de Aproximación Final (FAF) es un punto crítico en los procedimientos de aproximación por instrumentos, que marca el inicio del segmento de aproximación final. Esta entrada de glosario cubre su definición, representación cartográfica, marco regulatorio, importancia operativa y mejores prácticas para pilotos.