Les mises à jour partielles des fichiers laissent des passages RAG obsolètes lorsque de nouveaux blocs sont insérés sans invalider chaque fragment indexé dérivé de l’ancienne version du fichier.
Une base de connaissances locale stocke rarement un seul vecteur par fichier. Elle extrait le texte, divise le fichier en blocs, génère des embeddings, y associe des métadonnées et peut mettre en cache les résultats analysés ou récupérés. La modification d’un paragraphe peut décaler les limites des blocs suivants, modifier les hachages, supprimer l’ancien texte et créer de nouveaux identifiants de blocs. Si le processus de mise à jour ne traite que les éléments modifiés ou nouvellement détectés, d’anciens passages peuvent rester accessibles aux recherches à côté du contenu de remplacement, même si le fichier source semble correct.
Un fichier source devient plusieurs enregistrements d’index indépendants
La mise à jour d’un document ne se résume pas à la modification d’une ligne de base de données lorsque le pipeline d’ingestion stocke plusieurs blocs, enregistrements de pages, résumés et embeddings.
OptyxStack explique qu’un remplacement partiel peut laisser des blocs anciens et nouveaux mélangés issus de la même famille de documents.
Le nouveau passage peut être indexé correctement tandis qu’un ancien passage doté d’un identifiant différent reste valide du point de vue de la base de données vectorielle.
De petites modifications peuvent décaler toutes les limites des blocs suivants
L’ajout d’un paragraphe au début modifie la position des jetons utilisée par les systèmes de segmentation en blocs de taille fixe ou avec chevauchement. Plusieurs blocs suivants peuvent recevoir un nouveau contenu, même si leur texte source n’a pas été modifié directement.
Extend décrit comment une dérive d’ingestion apparaît lorsque les hypothèses de segmentation et de métadonnées changent entre les documents ou les mises à jour.
Un système de mise à jour qui réencode uniquement la zone visiblement modifiée peut ignorer les blocs en aval dont les limites ou le chevauchement ont changé. Les seuls décalages stables dans la source ne suffisent pas lorsque l’extraction ou la segmentation produit une nouvelle structure.
L’identité de la version du document doit regrouper tous les enregistrements dérivés afin que le pipeline puisse remplacer entièrement l’ancienne famille lorsque cela est nécessaire.
Les chemins d’insertion sont souvent mieux testés que ceux de suppression
Les tâches d’ingestion vérifient naturellement que de nouveaux blocs ont été créés. Elles ne prouvent pas forcément que les blocs supprimés de la source ne sont plus accessibles aux recherches.
L’analyse de Ranjan Kumar sur l’écart d’obsolescence de l’index considère les événements d’insertion, de mise à jour et de suppression comme des changements distincts qui doivent tous être propagés.
Une section renommée ou un paragraphe supprimé peut rester indéfiniment lorsque le processus de mise à jour effectue des upserts, mais ne dispose ni de marqueur de suppression ni d’un inventaire des anciens blocs.
Testez la suppression en recherchant, après chaque chemin de mise à jour, des expressions distinctives issues du contenu supprimé.
Une tâche réussie peut tout de même laisser l’index partiellement mis à jour
L’analyse, la segmentation, la génération d’embeddings, la suppression, l’insertion, l’écriture des métadonnées et l’invalidation du cache peuvent s’exécuter en plusieurs étapes distinctes. Certaines peuvent réussir avant qu’un autre processus échoue.
Jamie Maguire décrit le décalage opérationnel dans lequel une tâche d’ingestion semble réussie ou s’achève partiellement alors que l’index de recherche reste obsolète.
Un seul état final peut masquer la version du fichier, le nombre de blocs et l’ensemble d’embeddings réellement devenus accessibles aux requêtes. Enregistrez l’achèvement de chaque étape ainsi que la dernière version du document entièrement validée.
La fragmentation de l’index permet à des versions contradictoires de se concurrencer
Lorsque des passages obsolètes et récents partagent le même nom de fichier ou le même identifiant de document, les deux peuvent sembler pertinents pour une même requête.
La liste de contrôle des défaillances de LlamaIndex identifie la fragmentation de l’index comme une cause de résultats contradictoires et de données obsolètes après des mises à jour de la source.
Le modèle de réponse peut sélectionner l’ancienne formulation parce qu’elle correspond mieux aux termes recherchés ou qu’elle provient d’un bloc plus court et plus clair. Les métadonnées de fraîcheur ne sont utiles que lorsque le moteur de récupération ou de reclassement les exploite réellement.
La détection des doublons doit comparer la version de la source et l’identité du contenu, et pas uniquement la similarité vectorielle.
Rapprochez l’index avant de promouvoir une nouvelle version du document
Un pipeline local doit comparer périodiquement les fichiers sources avec les familles de documents indexées, les hachages des blocs, les versions et les marqueurs de suppression, plutôt que de se fier uniquement aux événements du système de surveillance ou au nombre d’upserts réussis.
Le guide d’Oracle sur la dérive des index recommande le rapprochement entre la source et l’index afin de vérifier le contenu mis à jour et supprimé après l’ingestion.
Créez les blocs de remplacement sous une nouvelle version du document, vérifiez leur nombre, leurs métadonnées et leur comportement lors de la récupération, puis activez cette version avant de retirer la famille précédente. Cela évite qu’une tâche de suppression ou de génération d’embeddings interrompue expose deux versions comme si elles étaient également à jour.
L’article de ZimaSpace sur l’indexation en arrière-plan explique pourquoi la détection des modifications ne constitue qu’une partie du vaste pipeline d’extraction et de base de données.
La mise à jour la plus sûre n’est pas toujours la plus petite. Pour les fichiers domestiques courts, remplacer une famille complète de documents peut être plus simple et plus fiable que de tenter une correction fragile au niveau des blocs.
FAQ
La modification de la date de modification du fichier met-elle à jour chaque bloc ?
Non. Le système de surveillance peut détecter le fichier, mais le code d’ingestion doit encore identifier, remplacer et invalider tous les enregistrements dérivés de l’ancienne version.
La similarité vectorielle peut-elle automatiquement supprimer les blocs obsolètes ?
Non. Les anciens et les nouveaux passages peuvent tous deux être sémantiquement pertinents. La similarité ne permet pas de déterminer quelle version est la plus récente.
La reconstruction complète de l’index est-elle toujours nécessaire ?
Non. Le remplacement par famille de documents et le rapprochement peuvent préserver un fonctionnement incrémentiel, mais les chemins de suppression et de gestion des versions doivent être testés aussi soigneusement que l’insertion.
Centre Tech & IA
Plus à lire

Pourquoi les prédictions de la maison connectée deviennent-elles moins précises après des changements de routine saisonniers ?
Les habitudes saisonnières modifient la relation entre le temps, les capteurs, l’occupation et les actions souhaitées, ce qui rend obsolète un modèle entraîné à...

Pourquoi un NVR domestique manque-t-il des événements brefs lorsque le suivi des objets est activé ?
Le suivi nécessite suffisamment de détections pour commencer et confirmer une trajectoire ; un objet peut donc disparaître brièvement avant que le NVR ne...

Pourquoi les étiquettes des photos générées par l’IA changent-elles après la mise à niveau d’un modèle ?
Une mise à niveau du modèle modifie la représentation et le classement utilisés pour attribuer les étiquettes, de sorte qu’une même photo peut franchir...

