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.
montpelliermaalsi2024/hello_world_rag/faiss.md

56 lines
2.2 KiB
Markdown

1 year ago
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.