You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.2 KiB
Markdown
56 lines
2.2 KiB
Markdown
FAISS (Facebook AI Similarity Search) est une bibliothèque développée par Facebook AI Research pour la recherche de similarité efficace et le clustering de vecteurs denses. Elle est souvent utilisée pour créer des bases de données vectorielles, qui permettent de stocker et de rechercher des embeddings de manière efficace. Voici comment vous pouvez installer et utiliser FAISS :
|
|
|
|
### Installation de FAISS
|
|
|
|
1. **Installer FAISS** : Vous pouvez installer FAISS via pip. Il est recommandé d'installer la version avec support GPU si vous avez une carte graphique compatible.
|
|
|
|
Pour une installation CPU :
|
|
```bash
|
|
pip install faiss-cpu
|
|
```
|
|
|
|
Pour une installation GPU (nécessite CUDA) :
|
|
```bash
|
|
pip install faiss-gpu
|
|
```
|
|
|
|
2. **Vérifier l'installation** : Vous pouvez vérifier que FAISS est correctement installé en important la bibliothèque dans un script Python :
|
|
|
|
```python
|
|
import faiss
|
|
print(faiss.__version__)
|
|
```
|
|
|
|
### Utilisation de FAISS
|
|
|
|
Voici un exemple simple de l'utilisation de FAISS pour créer une base de données vectorielle et effectuer une recherche :
|
|
|
|
```python
|
|
import faiss
|
|
import numpy as np
|
|
|
|
# Exemple de données : des vecteurs aléatoires
|
|
data = np.random.random((100, 128)).astype('float32')
|
|
|
|
# Créer un index FAISS
|
|
index = faiss.IndexFlatL2(128) # 128 est la dimension des vecteurs
|
|
|
|
# Ajouter des vecteurs à l'index
|
|
index.add(data)
|
|
|
|
# Effectuer une recherche : trouver les 5 vecteurs les plus similaires à une requête
|
|
query = np.random.random((1, 128)).astype('float32')
|
|
k = 5 # Nombre de voisins les plus proches à rechercher
|
|
distances, indices = index.search(query, k)
|
|
|
|
print("Indices des vecteurs les plus similaires :", indices)
|
|
print("Distances correspondantes :", distances)
|
|
```
|
|
|
|
### Points Clés
|
|
|
|
- **Indexation** : FAISS permet de créer des index pour des vecteurs de haute dimension, ce qui permet de faire des recherches rapides.
|
|
- **Recherche de similarité** : Vous pouvez rechercher des vecteurs similaires en utilisant différentes métriques de distance (par exemple, L2).
|
|
- **Efficacité** : FAISS est optimisé pour gérer de grandes quantités de données et peut tirer parti des GPU pour accélérer les calculs.
|
|
|