Passer au contenu principal

Aperçu

Les diviseurs de texte sont un composant essentiel dans la construction d'applications basées sur de grands modèles de langage (LLM). Leur rôle principal consiste à diviser les longs textes en plusieurs segments plus courts, ce qui facilite des tâches ultérieures telles que l'encodage de texte, la génération augmentée par la récupération (RAG) et les systèmes de questions-réponses.

Dans les LLM, la division du texte est effectuée pour plusieurs raisons principales :

  • Optimisation de l'efficacité et de la précision : En décomposant de grands blocs de texte en segments plus petits, la pertinence et la précision des représentations générées par le LLM peuvent être optimisées. La segmentation aide à garantir que le contenu encodé contient un bruit minimal tout en conservant sa pertinence sémantique. Par exemple, dans la recherche sémantique, lors de l'indexation d'un corpus de documents, chaque document contient des informations précieuses sur des sujets spécifiques. L'application d'une stratégie de segmentation efficace garantit que les résultats de recherche capturent précisément l'essence de la requête de l'utilisateur.
  • Limitation de la taille de la fenêtre contextuelle : Lors de l'utilisation de modèles tels que GPT-4, il existe une limite au nombre de tokens pouvant être traités. Par exemple, GPT-4 a une limite de fenêtre contextuelle de 32K tokens. Bien que cette limite ne pose généralement pas de problème, il est important de considérer la taille des segments dès le départ. Si les segments de texte sont trop grands, des informations pourraient être perdues ou tout le contenu ne serait pas intégré dans le contexte, ce qui peut affecter les performances et les résultats du modèle.
  • Traitement des documents longs : Bien que les vecteurs d'encodage pour de longs documents puissent capturer le contexte global, ils risquent de négliger des détails importants relatifs à des sujets spécifiques, conduisant à des résultats soit imprécis, soit incomplets. La segmentation permet un meilleur contrôle de l'extraction et de l'encodage des informations, réduisant ainsi le risque de perte d'information.

Actuellement, Base de cas propose plusieurs méthodes de division, permettant aux utilisateurs d'appliquer différentes stratégies de traitement pour divers scénarios textuels.

Diviseur de texte par défaut

Le diviseur de texte par défaut est conçu pour segmenter efficacement le texte en fonction du nombre de tokens et de la structure textuelle. Sa stratégie de division comprend :

  • Lecture ligne par ligne et reconnaissance des paragraphes : Le texte est lu ligne par ligne, les lignes vides consécutives étant utilisées pour déterminer avec précision les sauts de paragraphe. Il identifie également avec sensibilité les points de rupture naturels à l'aide de marqueurs, garantissant ainsi une segmentation logique et précise du texte.
  • Traitement spécial pour les blocs de code : Les blocs de code encadrés par des symboles ``` sont traités séparément. Le nombre de lignes dans un bloc de code détermine s'il peut constituer un segment autonome. Ce mécanisme préserve l'intégrité des blocs de code tout en empêchant efficacement qu'un segment de texte unique dépasse la limite de tokens.
  • Maintien de l'intégrité des phrases : Tout au long du processus de division, le respect strict de l'intégrité des phrases est assuré, garantissant que les phrases ne sont jamais divisées. Cette fonctionnalité garantit que chaque segment de texte contient une unité d'information complète. Indépendamment de la complexité du texte, la segmentation est effectuée avec précision aux limites des phrases, évitant ainsi toute ambiguïté et perte d'information due à des phrases fragmentées.

Diviseur Q&R

Le diviseur Q&R se concentre sur la segmentation précise des textes au format question-réponse et offre les avantages clés suivants :

  • Segmentation précise des unités Q&R : Il utilise un mécanisme de balayage ligne par ligne pour identifier intelligemment la structure des textes Q&R. En déterminant si chaque ligne commence par "Q:" ou "A:", il localise précisément les limites entre les questions et les réponses, garantissant que chaque paire Q&R soit complètement segmentée. Cela garantit l'indépendance et l'exhaustivité de chaque unité Q&R, fournissant des données claires pour le traitement et l'analyse Q&R ultérieurs.
  • Implémentation claire et logique : Le code est simple et intuitif, facilitant sa compréhension et sa maintenance. En gérant l'état de la paire Q&R actuelle et un indicateur signalant si une réponse est en cours de collecte, le processus de segmentation du texte est clairement contrôlé, assurant l'appariement correct de chaque unité Q&R.