Béranger Thomas
PythonNLPEmbeddingsBenchmarkRAGChunkingOpen Source

ForzaEmbed

ForzaEmbed

Framework Python de benchmarking pour modèles d'embedding textuel : grid search sur les stratégies de chunking et métriques de similarité, avec heatmap textuelle et visualisations des espaces d'embeddings.

Contexte

Choisir un modèle d’embedding et une stratégie de découpage de texte pour un pipeline RAG est rarement évident : les performances varient selon la langue, la taille des chunks, le recouvrement et la métrique de similarité utilisée. ForzaEmbed automatise cette évaluation en exécutant un grid search exhaustif sur l’ensemble de ces paramètres, et produit des rapports interactifs pour analyser visuellement la qualité des embeddings obtenus.

Architecture

Le framework s’articule autour de trois étapes :

  1. Expansion de la configuration : à partir d’un fichier YAML, ForzaEmbed génère le produit cartésien de tous les paramètres — modèle d’embedding, stratégie de chunking (langchain, raw, semchunk, nltk, spacy), taille de chunk, recouvrement et métrique de similarité (cosine, euclidean, dot_product, etc.). Les chunkers basés sur les phrases (nltk, spacy) ignorent les paramètres de taille, ce qui évite jusqu’à 40% de combinaisons redondantes.
  2. Exécution et cache : pour chaque combinaison, le texte est découpé, les embeddings calculés, puis les chunks sont scorés contre des thèmes définis par mots-clés. Chaque résultat est mis en cache dans une base SQLite avec quantification intelligente (float16 pour les embeddings, uint16 pour les similarités). Les combinaisons déjà traitées sont automatiquement ignorées à la reprise.
  3. Rapport interactif : un fichier HTML standalone est généré avec une heatmap textuelle (spans colorés par similarité thématique), des projections t-SNE/UMAP/PCA des chunks avec tooltips sur le texte original, et un curseur de seuil de similarité flottant pour filtrer les passages non pertinents. Les métriques d’évaluation (score de silhouette intra/inter-cluster, temps de calcul) sont affichées par configuration.

Caractéristiques

Impact

ForzaEmbed répond à une question concrète dans la construction de pipelines RAG : quelle combinaison modèle/chunking maximise la cohérence thématique des embeddings sur mes documents ? En rendant cette évaluation systématique et visuelle, il permet d’objectiver des choix qui restent souvent intuitifs.

Voir la démo → GitHub ↗