Le Laboratoire · Protocole de test RAG

Protocole de test

Approche terrain : matériel accessible, documents réels, usages concrets pour PME, ASBL et indépendants.

Que vaut réellement l’IA locale dans un usage quotidien ?

Environnements et modèles
Matériel couvertPC portable · PC de bureau · Serveur local
EnvironnementsGPT4All · Ollama + AnythingLLM
Modèles 3-4BPC portable
Modèles 7-8BServeur IA Light
Modèles 14B et plusServeur IA

En général, un même modèle n’est pas testé sur plusieurs configurations. Les configurations détaillées sont disponibles sur la page Matériel de test.

Corpus documentaires
CatégorieDocuments typesNiveaux
AdministratifProcédures internes · Règlement interne · Notes de service · Fiches de posteN0 · N1
Métier – PMEFiches produits · Procédures logistiques · Documentation qualité · CGVN0 · N1
Juridique / RéglementaireTextes législatifs · Règlements sectoriels · Arrêtés · Statuts d’ASBLN0 · N2
Associatif – ASBLStatuts · Règlement interne · Rapports d’activité · PV AGN0 · N1
PédagogiqueProgrammes de cours · Guides méthodologiques · Référentiels de compétencesN0 · N1 · N2
Technique / ITManuels utilisateur · Guides d’installation · Documentation systèmeN0 · N1 · N2

Tous les documents utilisés sont réels. Chaque article précise le corpus et le niveau de préparation appliqués.

Niveaux de préparation documentaire
NiveauNomDescription
N0BrutDocument tel quel. Test de référence « utilisateur lambda ». Révèle les limites réelles du RAG.
N1ConvertiPDF vers TXT propre. Conversion simple. Supprime le bruit sans restructurer. Gain souvent significatif.
N2StructuréConversion PDF vers Markdown. Cas optimal pour corpus complexes (juridique, technique). Accessible à un public non technique.

Certains articles comparent plusieurs niveaux sur un même corpus.

Récupération via URL

Ce mode d’ingestion est distinct du protocole N0/N1/N2 : le contenu n’est pas préparé manuellement mais récupéré et chunké automatiquement par AnythingLLM à partir d’une page web. Il fait l’objet d’un mini-protocole dédié, noté W (Web).

Protocole W · Web
Identification de la source
URLAdresse exacte de la page récupérée
Date de récupérationJJ/MM/AAAA — le contenu web peut évoluer
Type de contenuPage institutionnelle · Documentation · Article · …
LangueLangue principale du contenu
Vérification de l’ingestion
Chunks générésNombre de chunks produits par AnythingLLM
Qualité du scrapingComplète · Partielle · Artefacts détectés
ObservationsContenu manquant, navigation JS, lazy load, …
Limite structurelle

AnythingLLM ne scrappe que le contenu HTML statique accessible au moment de la récupération. Les pages reposant sur du JavaScript dynamique ou du lazy loading peuvent produire un corpus incomplet. La qualité du scraping doit être vérifiée avant de tirer des conclusions sur les résultats du modèle.

Questions de test

Chaque test W combine deux types de questions :

TypeDescription
Génériques (3)Applicables à n’importe quelle page : résumé global, identification des thèmes principaux, question piège anti-hallucination
Spécifiques (3)Adaptées au contenu de la page testée : extraction directe, synthèse, inférence

Les types de questions (recherche directe, synthèse, croisement, piège anti-hallucination, question ambiguë) restent ceux définis dans la section Types de questions utilisées.

Paramètres techniques

Les paramètres de vectorisation (chunk size, chevauchement, embedder) et le prompt système sont identiques à ceux du protocole standard pour la catégorie de contenu correspondante. Toute exception est signalée dans l’article.

Reproductibilité

Une URL peut changer ou disparaître. Pour garantir la reproductibilité, chaque article W précise la date de récupération et, si possible, un lien vers une version archivée (web.archive.org).

Moteur d’embedding

Le moteur d’embedding est une variable critique du protocole RAG : c’est lui qui transforme les chunks de texte en vecteurs stockés dans la base vectorielle, et qui vectorise également chaque question posée. La qualité du retrieval — la capacité à retrouver les bons passages dans le corpus — dépend autant de l’embedder que du modèle de langage lui-même.

Série 1 · AnythingLLM natif
Modèleall-MiniLM (intégré AnythingLLM)
ExécutionCPU uniquement
Taille~25 Mo (téléchargé au premier usage)
Fenêtre512 tokens
LangueMultilingue (limité)

Cet embedder a été utilisé pour l’ensemble des tests de la série 1 (8 articles, 2 corpus). Il correspond à la configuration par défaut d’AnythingLLM, sans aucun paramétrage supplémentaire. Ce choix reflète la réalité d’un déploiement standard : la majorité des utilisateurs n’ayant jamais modifié ce réglage, cette série constitue une référence de base représentative.

Limite identifiée

La fenêtre contextuelle de 512 tokens est inférieure à la taille des chunks utilisés dans ce protocole (1000 tokens). Les chunks dépassant cette limite sont tronqués lors de l’embedding, ce qui peut expliquer certains angles morts persistants observés sur des questions nécessitant la lecture de passages longs (notamment Q2 sur les deux corpus).

Série 2 · bge-m3 via Ollama
Modèlebge-m3 (BAAI)
ExécutionOllama (GPU ou CPU selon config)
Taille~1,2 Go
Fenêtre8192 tokens
Langue100+ langues (dense + sparse + ColBERT)

À partir de la série 2, le moteur d’embedding sera remplacé par bge-m3 via Ollama. Ce modèle supporte nativement le français et l’anglais avec une fenêtre contextuelle compatible avec les chunks du protocole. Il permettra une comparaison directe avec la série 1 sur les mêmes corpus.

À retenir

Changer d’embedder invalide les workspaces existants. Chaque nouvelle série de tests implique la création de nouveaux workspaces N0/N1/N2 avec le nouvel embedder. Les vecteurs de la série 1 ne sont pas réutilisables.

Pourquoi pas bge-large-en-v1.5 ?

Ce modèle, parfois recommandé pour ses scores MTEB élevés en anglais, est exclusivement entraîné sur l’anglais. Son nom contient « en » (english) — il ne convient pas pour les corpus en français comme le programme FWB. bge-m3 est le successeur multilingue de la famille BGE et le choix cohérent pour un protocole couvrant plusieurs langues.

Réglages
Prompt système commun · socle fixe
Tu es un assistant documentaire. Réponds uniquement à partir des documents fournis. Si la réponse n’est pas dans les documents, dis-le explicitement. Ne complète jamais avec des connaissances générales. Cite la source ou la section quand c’est possible.
Températures par catégorie
CatégorieTempératureLogique
Juridique / Réglementaire0.0 – 0.1Fidélité absolue, aucune paraphrase
Administratif0.1 – 0.2Précision, peu de reformulation
Technique / IT0.1 – 0.2Exactitude des procédures et commandes
Métier — PME0.2 – 0.3Précision et lisibilité
Pédagogique0.2 – 0.3Reformulation pédagogique tolérée
Associatif — ASBL0.2 – 0.3Contexte varié, ton adaptatif

La température est fixée avant chaque session et ne varie pas au sein d’un même article. Toute exception est signalée explicitement.

Paramètres de vectorisation AnythingLLM
Corpus pédagogique, administratif, métier

Valeurs par défaut appliquées sans modification. Chunk size : 1000 tokens. Chevauchement : 20 tokens. Base vectorielle : LanceDB (embarquée par défaut). Reproductible par toute personne installant AnythingLLM sans configuration avancée.

Corpus juridique et technique dense

Réglages adaptés à la granularité des documents. Chunk size : 512 tokens. Chevauchement : 50 tokens. Un chunk de 1000 tokens fusionne plusieurs articles distincts sur un texte législatif, ce qui nuit à la précision de la récupération. Le chevauchement plus élevé préserve le contexte entre articles liés. Les valeurs appliquées sont précisées dans chaque article concerné.

Paramètres de vectorisation GPT4All
Tous corpus confondus

Valeurs par défaut appliquées sans modification. Taille des snippets : 512 tokens. Snippets maximum par prompt : 3. Moteur d’embedding : défaut GPT4All. Aucun paramètre de chevauchement n’est disponible dans cette version. Reproductible par toute personne installant GPT4All sans configuration avancée.

Limite à prendre en compte

Le plafond de 3 snippets par prompt signifie que seuls 3 passages du corpus sont soumis au modèle par requête, quelle que soit la densité du document. Sur un corpus long ou complexe, des informations pertinentes peuvent ne pas être récupérées. Ce comportement est signalé dans chaque article concerné.

Compléments de prompt par catégorie
CatégorieComplément de prompt
JuridiqueLes documents contiennent des textes législatifs. Respecte strictement la numérotation des articles. Ne reformule pas les dispositions légales.
AdministratifLes documents sont des procédures et règlements internes. Sois précis sur les étapes et les responsabilités.
Technique / ITLes documents sont des manuels techniques. Reproduis fidèlement les commandes et étapes. Ne simplifie pas les procédures.
Métier – PMELes documents sont des fiches produits et procédures opérationnelles. Sois précis sur les références, prix et conditions.
PédagogiqueLes documents sont des programmes officiels. Respecte la terminologie pédagogique officielle.
Associatif – ASBLLes documents concernent la gouvernance et les activités d’une association. Sois attentif aux rôles, mandats et procédures statutaires.
Types de questions utilisées
TypeDescription
Recherche directeRéponse directement présente dans le document.
SynthèseRésumé d’un ou plusieurs passages.
CroisementNécessite plusieurs sources dans le corpus.
Piège anti-hallucinationLa réponse n’est pas dans les documents. Le modèle doit le reconnaître explicitement.
Question ambiguëFormulation imprécise. On teste la prudence et la capacité d’interprétation.
Critères d’évaluation
CritèrePoints évalués
Qualité des réponsesExactitude · Fidélité aux docs · Anti-hallucinations
PerformanceTemps de réponse · Fluidité · Tokens/s (indicatif)
StabilitéComportement général · Erreurs éventuelles · Robustesse
Confort d’usageSimplicité · Lisibilité · Ergonomie
Pertinence terrainAdapté PME/ASBL ? · Facilité de mise en place · Valeur réelle
Lecture des résultats
VerdictSignification
★★★★★Très pertinent · Directement exploitable en conditions réelles.
★★★★☆Pertinent sous conditions · Nécessite des ajustements.
★★★☆☆Limité · Usage avec supervision uniquement.
★★☆☆☆Non adapté · Usage non recommandé dans cette configuration.
Philosophie du protocole
Réalisme

Tester des situations réalistes, pas des benchmarks théoriques.

Usage concret

Privilégier l’usage concret plutôt que la performance brute.

Transparence

Rester transparent sur les limites.

Utilité

Fournir une vision claire, honnête et utile de l’IA locale.