Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Bi-Encoder (Dense Retriever)

ia

Définition

Un Bi-Encoder (ou dense retriever) est un modele qui encode independamment la requete et les documents en vecteurs de haut dimension (embeddings), puis calcule la pertinence par similarite cosinus ou produit scalaire entre ces vecteurs. Contrairement aux Cross-Encoders, les embeddings des documents peuvent etre pre-calcules et indexes, permettant un retrieval ultra-rapide via des algorithmes ANN (Approximate Nearest Neighbor). L'architecture type : deux encodeurs partageant les memes poids (ou des encodeurs distincts pour requetes vs documents) basés sur BERT/RoBERTa/E5. Chaque encodeur produit un vecteur de 768, 1024 ou 3072 dimensions. DPR (Dense Passage Retrieval, Facebook 2020) est le modele fondateur, entraine avec des paires question-passage positives et negatives. Les Bi-Encoders modernes : E5-large-v2 (Microsoft, 768d, top performer multilingual), BAAI/bge-m3 (1024d, 100+ langues, supporte sparse+dense+colbert), Nomic-embed-text-v1.5 (768d, 8K contexte, tres performant), mxbai-embed-large-v1. Ces modeles sont fine-tunes sur de larges datasets de retrieval (MSMARCO, Natural Questions, BEIR). L'indexation et le retrieval ANN : les embeddings de documents sont indexes dans des bibliotheques comme FAISS (Facebook, exact ou approximatif), Annoy (Spotify), HNSW (hierarchical navigable small world graph). Ces index permettent de rechercher les K plus proches voisins dans des corpus de millions de documents en quelques millisecondes. Le tradeoff Bi-Encoder vs Cross-Encoder : le Bi-Encoder est 100-1000x plus rapide (pre-indexage possible, ANN en O(log N)) mais moins precis que le Cross-Encoder (pas d'attention croisee entre requete et document). Le pipeline optimal est leur combinaison : Bi-Encoder pour le recall initial (Top-100), Cross-Encoder pour la precision finale (Top-5).

Bi-Encoder avec sentence-transformers

from sentence_transformers import SentenceTransformer
import faiss, numpy as np

# Charger le modele bi-encoder
model = SentenceTransformer('BAAI/bge-m3')

# Indexer les documents
docs = ['La cybersecurite...', 'Les LLMs...', ...]
doc_embeddings = model.encode(docs, normalize_embeddings=True, batch_size=32)

# Creer l'index FAISS (HNSW pour L'ANN)
index = faiss.IndexHNSWFlat(768, 32)  # 768d, 32 links/node
index.add(doc_embeddings.astype(np.float32))

# Retrieval
query = 'Quels sont les risques des LLMs ?'
query_embed = model.encode([query], normalize_embeddings=True)
distances, indices = index.search(query_embed, k=10)  # Top-10 en <1ms

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis