FAISS (Facebook AI Similarity Search) — библиотека с открытым исходным кодом, разработанная Facebook AI Research
FAISS (Facebook AI Similarity Search) — библиотека с открытым исходным кодом, разработанная Facebook AI Research (FAIR) для быстрого поиска похожести и группировки плотных векторов.
Особенности:
- Поддерживает поиск наборов векторов различного размера, включая те, которые могут не поместиться в оперативной памяти.
- Возвращает не только ближайшего соседа, но и второго, третьего и k-го ближайшего соседа.
- Позволяет одновременно искать несколько векторов (пакетная обработка).
- Поддерживает различные метрики расстояния, включая L1, Linf и другие.
Принцип работы FAISS
Библиотека построена вокруг типа индекса, который хранит набор векторов и предоставляет функцию поиска в них с помощью метрик схожести. Некоторые методы поиска:
IndexFlatL2 — хранит все векторы в памяти и выполняет поиск по евклидову расстоянию. Подходит для небольших и средних наборов данных, где требуются точные результаты.
IndexIVF и методы на основе квантования — для больших наборов данных, ускоряют поиск за счёт некоторой точности.
Архитектура FAISS
FAISS предоставляет различные структуры индексов, например плоские индексы, индексы IVF (Inverted File), HNSW (Hierarchical Navigable Small World). Каждый тип оптимизирован для конкретных данных и требований производительности.
Установка FAISS
Библиотека FAISS доступна в двух версиях:
faiss-cpu — версия для CPU.
faiss-gpu — версия с поддержкой GPU.
Репозиторий:
- github.com/facebookresearch/faiss
- faiss.ai
- en.wikipedia.org
Применение FAISS
FAISS используется в различных приложениях, где нужно эффективно индексировать и искать похожие векторы. Например:
medium.com
Системы рекомендаций — элементы или продукты представлены в виде векторов, и похожие элементы рекомендуются на основе предпочтений пользователей.
Поиск изображений и видео — FAISS индексирует и ищет в больших базах данных изображений или видео, позволяя извлекать похожие элементы на основе поисковых запросов.
Обработка естественного языка (NLP) — FAISS индексирует векторные представления слов или предложений, чтобы быстро находить похожие слова или предложения.










