


7 façons de diviser les données à l'aide de séparateurs de texte de Langchain - Analytics Vidhya
Langchain Text Splipteurs: Optimisation de l'entrée LLM pour l'efficacité et la précision
Notre article précédent couvrait les chargeurs de documents de Langchain. Cependant, les LLM ont des limitations de taille de fenêtre de contexte (mesurées en jetons). Le dépassement de cette limite tronque les données, compromettant la précision et l'augmentation des coûts. La solution? Envoyez uniquement des données pertinentes à la LLM, nécessitant une fractionnement des données. Entrez les séparateurs de texte de Langchain.
Concepts clés:
- Le rôle crucial des séparateurs de texte: comprendre pourquoi la division efficace du texte est vitale pour optimiser les applications LLM, équilibrer la taille et le coût des fenêtres de contexte.
- Diverses techniques de division de texte: explorez diverses méthodes, notamment le nombre de caractères, les dénombrements de jetons, le fractionnement récursif et les techniques adaptées aux structures HTML, code et JSON.
- Implémentation du séparateur de texte de Langchain: Apprenez l'application pratique, y compris l'installation, des exemples de code pour la division de texte et la gestion des formats de données divers.
- Clissage sémantique pour une pertinence améliorée: découvrez comment les intérêts des phrases et la similitude du cosinus créent des morceaux sémantiquement cohérents, maximisant la pertinence.
Table des matières:
- Que sont les séparateurs de texte?
- Méthodes de division des données
- Clissage basé sur le nombre de caractères
- Fractionnement récursif
- Division basée sur le nombre de jetons
- Gestion de HTML
- Fractionnement spécifique au code
- Gestion des données JSON
- Chunking sémantique
- Questions fréquemment posées
Que sont les séparateurs de texte?
Les séparateurs de texte divisent un grand texte en morceaux plus petits et gérables pour une pertinence de requête LLM améliorée. Ils travaillent directement sur des objets de document de texte brut ou de Langchain. Plusieurs méthodes s'adressent à différents types de contenu et cas d'utilisation.
Méthodes de division des données
Les séparateurs de texte de Langchain sont cruciaux pour un traitement efficace des documents importants. Ils améliorent les performances, la compréhension contextuelle, permettent un traitement parallèle et facilitent une meilleure gestion des données. Examinons plusieurs méthodes:
Prérequis: Installez le package à l'aide de pip install langchain_text_splitters
Clissage basé sur le nombre de caractères
Cette méthode divise le texte basé sur le nombre de caractères, en utilisant un séparateur spécifié.
de Langchain_community.Document_Loaders Importer non structurépdfloader De Langchain_Text_Splitters Importer le caractère de caractères # Charger les données (remplacer par votre chemin PDF) chargeur = non structurépdfloader ('comment-formulaire-succès-business-strategy.pdf', mode = 'single') data = loader.load () text_splitter = caracttextSplitter (séparateur = "\ n", chunk_size = 500, chunk_overlap = 0, is_separator_regex = false) texts = text_splitter.split_documents (données) Len (textes) # sortie: nombre de morceaux
Cet exemple divise le texte en morceaux de 500 caractères, en utilisant les caractères de Newline comme séparateurs.
Fractionnement récursif
Cela utilise plusieurs séparateurs séquentiellement jusqu'à ce que les morceaux soient en dessous de chunk_size
. Utile pour la division au niveau de la phrase.
De Langchain_Text_Splitters Import en RecursiveCaracterTextSplitter recursive_splitter = recursiveCaraCterTextStplitter (séparateurs = ["\ n \ n", "\ n", r "(? >> 293 # ... (Le reste du code reste similaire)
Division basée sur le nombre de jetons
Les LLM utilisent des jetons; La division par nombre de jetons est plus précise. Cet exemple utilise le codage o200k_base
(vérifiez le lien GitHub pour les mappages de modèle / codage).
De Langchain_Text_Splitters Import TokenExtsPlitter text_splitter = tokentextsplitter (encoding_name = 'o200k_base', chunk_size = 50, chunk_overlap = 0) texts = text_splitter.split_documents (données) Len (textes) # sortie: nombre de morceaux
Le fractionnement récursif peut également être combiné avec un comptage de jetons.
Pour le texte brut, le fractionnement récursif avec le comptage des caractères ou des jetons est généralement préféré.
Gestion de HTML
Pour les données structurées comme le HTML, le fractionnement devrait respecter la structure. Cet exemple se divise basé sur des en-têtes HTML.
De Langchain_Text_Splitters Import HtmlheaderTextSplitter headers_to_split_on = [("h1", "en-tête 1"), ("H2", "En-tête 2"), ("H3", "En-tête 3")] html_splitter = htmlheadertextSplitter (en-tête_to_split_on, return_each_element = true) html_header_splits = html_splitter.split_text_from_url ('https://diataxis.fr/') Len (html_header_splits) # sortie: nombre de morceaux
HTMLSectionSplitter
permet la fractionnement en fonction d'autres sections.
Fractionnement spécifique au code
Les langages de programmation ont des structures uniques. Cet exemple utilise la fractionnement de la syntaxe pour le code Python.
De Langchain_text_Splitters Import en récursiveCaraCterTextSplitter, Langue # ... (Exemple de code Python) ... python_splitter = recursiveCaraCterTextSplitter.from_Language (Language = Language.python, Chunk_Size = 100, Chunk_overlap = 0) python_docs = python_splitter.create_documents ([python_code])
Gestion des données JSON
Les objets JSON imbriqués peuvent être divisés tout en préservant les relations clés.
De Langchain_Text_Splitters Import RecursiveJSonsplitter # ... (exemple de données JSON) ... Splitter = récursivejSonsPlitter (max_chunk_size = 200, min_chunk_size = 20) Chunks = Splitter.Split_Text (JSON_DATA, CONVERT_LISTS = TRUE)
Chunking sémantique
Cette méthode utilise des incorporations de phrases et une similitude en cosinus avec les phrases sémantiquement liées au groupe.
De Langchain_Experimental.Text_Splitter Import SemanticChunker De Langchain_Openai.Embeddings Import OpenaieMeddings # nécessite une clé API Openai # ... (code utilisant Openaiembedddings et SemanticChunker) ...
Conclusion
Langchain propose diverses méthodes de division de texte, chacune adaptée à différents types de données. Le choix de la bonne méthode optimise l'entrée LLM, l'amélioration de la précision et la réduction des coûts.
Questions fréquemment posées
(La section Q&R reste en grande partie la même, avec des ajustements de libellés mineurs pour la clarté et l'écoulement.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

L'article passe en revue les meilleurs générateurs d'art AI, discutant de leurs fonctionnalités, de leur aptitude aux projets créatifs et de la valeur. Il met en évidence MidJourney comme la meilleure valeur pour les professionnels et recommande Dall-E 2 pour un art personnalisable de haute qualité.

META'S LLAMA 3.2: un bond en avant dans l'IA multimodal et mobile Meta a récemment dévoilé Llama 3.2, une progression importante de l'IA avec de puissantes capacités de vision et des modèles de texte légers optimisés pour les appareils mobiles. S'appuyer sur le succès o

L'article compare les meilleurs chatbots d'IA comme Chatgpt, Gemini et Claude, en se concentrant sur leurs fonctionnalités uniques, leurs options de personnalisation et leurs performances dans le traitement et la fiabilité du langage naturel.

Chatgpt 4 est actuellement disponible et largement utilisé, démontrant des améliorations significatives dans la compréhension du contexte et la génération de réponses cohérentes par rapport à ses prédécesseurs comme Chatgpt 3.5. Les développements futurs peuvent inclure un interg plus personnalisé

L'article traite des meilleurs assistants d'écriture d'IA comme Grammarly, Jasper, Copy.ai, WireSonic et Rytr, en se concentrant sur leurs fonctionnalités uniques pour la création de contenu. Il soutient que Jasper excelle dans l'optimisation du référencement, tandis que les outils d'IA aident à maintenir le ton

2024 a été témoin d'un simple passage de l'utilisation des LLM pour la génération de contenu pour comprendre leur fonctionnement intérieur. Cette exploration a conduit à la découverte des agents de l'IA - les systèmes autonomes manipulant des tâches et des décisions avec une intervention humaine minimale. Construire

La récente note du PDG de Shopify Tobi Lütke déclare hardiment la maîtrise de l'IA une attente fondamentale pour chaque employé, marquant un changement culturel important au sein de l'entreprise. Ce n'est pas une tendance éphémère; C'est un nouveau paradigme opérationnel intégré à P

L'article examine les meilleurs générateurs de voix d'IA comme Google Cloud, Amazon Polly, Microsoft Azure, IBM Watson et Descript, en se concentrant sur leurs fonctionnalités, leur qualité vocale et leur aptitude à différents besoins.
