Rationalisation du traitement des données avec Zilliz Cloud Pipelines : plongée approfondie dans le découpage de documents
La rationalisation du traitement des données à l’aide de Zilliz Cloud Pipelines implique d’examiner le découpage des documents. Il s’agit d’un composant de la transformation de données non structurées en une collection de vecteurs interrogeable. Les pipelines d’ingestion, de suppression et de recherche de Zilliz Cloud Pipelines facilitent davantage ce processus. Chacun remplit un objectif différent dans le flux de travail de traitement des données.
Zilliz Cloud Pipelines joue un rôle dans la simplification du processus de découpage des documents et l’amélioration de la capacité de recherche. La plateforme permet des cas d’utilisation avec la recherche sémantique dans les documents textuels et fournit un élément de base essentiel pour les applications de Retrieval-Augmented Generation (RAG).
Zilliz Cloud Pipelines inclut diverses fonctions comme SEARCH_DOC_CHUNK, qui convertissent le texte de requête en embedding vectoriel. Il récupère ensuite les top-K fragments de documents pertinents, ce qui facilite la recherche des informations connexes en fonction du sens de la requête.
Zilliz Cloud Pipelines : transformer le traitement des données
Les ingénieurs de Zilliz ont conçu Zilliz Cloud Pipelines pour transformer des données non structurées provenant de diverses sources en une collection de vecteurs interrogeable pour les développeurs Gen AI très occupés. Ce pipeline prend des données non structurées, les divise, les convertit en embeddings, les indexe et les stocke dans Zilliz Cloud avec les métadonnées désignées. Cette architecture utilise divers composants et capacités technologiques clés qui améliorent les performances.
Fondement technologique
Base de données vectorielle Milvus
Milvus Vector Database est conçue pour gérer efficacement des données vectorielles de grande dimension. Elle prend également en charge différents cas d’utilisation, notamment Zilliz Cloud, un service cloud qui aide les développeurs à se concentrer sur les applications principales plutôt que sur la gestion des opérations de base de données.
Connecteurs
Les connecteurs sont un outil intégré qui relie sans effort diverses sources de données, permettant l’ingestion et l’indexation des données en temps réel afin de garantir que le contenu le plus récent soit instantanément accessible pour toutes les requêtes de recherche. Évolutifs et adaptatifs, les connecteurs peuvent gérer de manière transparente des charges de trafic fluctuantes pour une évolutivité fluide sans aucun tracas DevOps. Ils synchronisent automatiquement les ajouts et les suppressions de documents avec la collection, la maintenant synchronisée. De plus, la journalisation détaillée offre une observabilité du flux de données, garantissant la transparence et la capacité de détecter toute anomalie pouvant survenir.
Séparateurs de documents
Les séparateurs sont couramment utilisés dans les tâches de traitement de documents et d’analyse de texte pour diviser un document ou un texte en fragments ou segments plus petits en fonction de caractères ou de motifs spécifiés. Ces fragments peuvent ensuite être traités ou analysés séparément. Par exemple, pour les applications Gen AI, les séparateurs peuvent être utilisés pour diviser un long texte en phrases ou paragraphes individuels avant de le convertir en embeddings vectoriels. Ces embeddings servent à trouver des fragments sémantiquement similaires.
Modèles d’apprentissage automatique
Les modèles d’apprentissage automatique sont utilisés pour créer des embeddings vectoriels. Ces embeddings capturent les relations sémantiques et les informations contextuelles, permettant aux algorithmes de comprendre et de traiter le langage plus efficacement. Des modèles d’apprentissage automatique open source, commerciaux et privés peuvent être installés sur site ou dans votre environnement cloud, ou être accessibles via une API pour générer des embeddings vectoriels.
Rerankers
Dans les systèmes de recherche d’informations, un reranker affine les résultats de recherche initiaux afin d’améliorer leur pertinence par rapport à la requête. Contrairement à la simple recherche vectorielle par voisins les plus proches approximatifs (ANN) pour la récupération, l’ajout d’un reranker peut améliorer la qualité de la recherche en évaluant mieux la relation sémantique entre les documents et la requête. Pour les applications de génération augmentée par récupération (RAG), les rerankers peuvent améliorer l’exactitude des réponses générées en fournissant un ensemble plus restreint mais de meilleure qualité de documents contextuels. Cependant, les rerankers sont coûteux en calcul, ce qui entraîne des coûts plus élevés et des temps de latence de requête plus longs que la récupération ANN seule. La décision d’intégrer un reranker doit équilibrer le besoin d’une pertinence améliorée avec les contraintes de performance et de coût.
Fonctionnalités
Création de pipelines d’ingestion
Les utilisateurs ont la possibilité de créer des pipelines soit via la console conviviale de Zilliz Cloud, soit via les API RESTful plus personnalisables. Cette double approche garantit que les utilisateurs peuvent adapter leur expérience de création de pipelines en fonction de leurs besoins et préférences spécifiques, qu’ils privilégient la simplicité ou qu’ils nécessitent des options de personnalisation avancées. Lors de la création du pipeline, les utilisateurs peuvent choisir de diviser d’abord leurs documents, puis sélectionner l’un des six modèles (zilliz/bge-base-en-v1.5, voyageai/voyage-2, voyageai/voyage-code-2, openai/text-embedding-3-small, and openai/text-embedding-3-large. For the Chinese language, only zilliz/bge-base-zh-v1.5) pour créer des embeddings vectoriels. Ils peuvent également enregistrer toute métadonnée pertinente qui sera utile lors de la récupération.
Connexion des sources de données
Les connecteurs, en tant qu’outils essentiels dans Zilliz Cloud, sont conçus pour simplifier le processus de liaison de diverses sources de données à une base de données vectorielle. Grâce aux instructions intuitives fournies dans l’interface utilisateur (UI), les utilisateurs peuvent intégrer sans effort diverses sources de données dans leurs pipelines. Cela améliore non seulement la polyvalence et l’étendue de leurs capacités de traitement des données, mais souligne également la nature conviviale de Zilliz Cloud.
Par exemple, un connecteur sert de mécanisme pour ingérer des données dans Zilliz Cloud à partir d’un éventail de sources, notamment Object Storage, Kafka (bientôt disponible), et plus encore. En prenant le connecteur de stockage d’objets comme exemple, il permet aux utilisateurs de surveiller un répertoire dans un bucket de stockage d’objets et de synchroniser des fichiers tels que des PDF et du HTML avec Zilliz Cloud Pipelines. Par la suite, ces fichiers peuvent être convertis en représentations vectorielles et stockés dans la base de données vectorielle pour la recherche. Grâce à des pipelines d’ingestion et de suppression dédiés, les fichiers et leurs représentations vectorielles correspondantes au sein de Zilliz Cloud restent synchronisés. La collection de la base de données vectorielle reflète automatiquement tout ajout ou toute suppression de fichiers dans le stockage d’objets, garantissant la cohérence et l’exactitude des données.
Exécution du pipeline de recherche
Une fois les pipelines créés, ils peuvent être exécutés pour traiter des données non structurées, facilitant diverses fonctionnalités au sein de l’écosystème Zilliz Cloud. Par exemple, après la création d’un pipeline d’ingestion, les utilisateurs peuvent lancer son exécution afin de transformer des données non structurées en embeddings vectoriels consultables. Ces embeddings peuvent ensuite être stockés dans une base de données vectorielle Zilliz Cloud, améliorant l’accessibilité et l’efficacité de la récupération des données.
De même, après la création d’un pipeline de recherche, les utilisateurs peuvent l’exécuter, permettant au système d’effectuer une recherche sémantique. Cette fonctionnalité permet aux utilisateurs d’explorer et de récupérer des informations pertinentes à partir de la base de données vectorielle, en tirant parti de la puissance de l’analyse sémantique pour affiner les résultats de recherche.
De plus, après la création d’un pipeline de suppression, les utilisateurs peuvent lancer son exécution en supprimant d’une collection au sein de la base de données vectorielle tous les chunks associés à un document spécifié. Cette capacité garantit l’intégrité et la propreté de la base de données en facilitant la suppression de chunks de données inutiles ou obsolètes.
Estimer le coût du pipeline
Le coût associé à l’exécution des pipelines est quantifié en tokens, qui servent d’unité de mesure fondamentale. De manière analogue à la façon dont les Large Language Models (LLMs) utilisent les tokens comme éléments de base, les pipelines réalisent le traitement des documents et l’exécution des requêtes de recherche en analysant et en intégrant le texte sous forme de séquence de tokens. Les utilisateurs peuvent exploiter notre outil Estimate Pipeline Usage afin d’obtenir des informations sur les implications financières de l’exécution d’un pipeline. Cet outil facilite le comptage des tokens dans un fichier ou une chaîne de texte, permettant aux utilisateurs d’évaluer l’utilisation anticipée des ressources et les coûts associés à l’exécution d’un pipeline. Cet outil permet aux utilisateurs de prendre des décisions éclairées concernant l’allocation des ressources et la budgétisation, garantissant une efficacité et une rentabilité optimales dans leurs opérations de pipeline.
Reclassement des résultats de recherche
La récupération initiale avec la recherche vectorielle Approximate Nearest Neighbor (ANN) seule est très efficace et donne souvent des résultats satisfaisants. Dans de nombreuses situations, l’étape secondaire de reclassement peut être considérée comme facultative. Pour les applications ayant des standards de qualité élevés, l’emploi d’un reranker peut améliorer la précision, bien qu’avec des exigences de calcul accrues et des temps de recherche plus longs. En général, l’intégration d’un modèle de reranker peut ajouter de 100 ms à quelques secondes de latence à la requête de recherche, selon des facteurs tels que la sélection topK et la taille du modèle de reranker. Lorsque la récupération initiale produit des documents incorrects ou non pertinents, l’utilisation d’un reranker les filtre efficacement, améliorant ainsi la qualité de la réponse finale générée.
Si un reranker est jugé nécessaire pour votre cas d’utilisation, vous pouvez le choisir depuis l’UI.
Avantages
Création de pipelines flexible: Les utilisateurs peuvent créer des pipelines via la console Zilliz Cloud conviviale ou les API RESTful plus personnalisables. Cette double approche permet aux utilisateurs d’adapter l’expérience de création de pipelines à leurs besoins et préférences spécifiques, qu’ils privilégient la simplicité ou qu’ils aient besoin d’options de personnalisation avancées.
Intégration transparente des sources de données: Les connecteurs dans Zilliz Cloud simplifient la liaison de diverses sources de données avec une base de données vectorielle. Grâce à des instructions intuitives dans l’interface utilisateur (UI), les utilisateurs peuvent intégrer sans effort diverses sources de données dans leurs pipelines, améliorant ainsi la polyvalence et l’étendue de leurs capacités de traitement des données.
Estimation et optimisation des coûts: Zilliz Cloud fournit un outil Estimate Pipeline Usage qui aide les utilisateurs à évaluer l’utilisation anticipée des ressources et les coûts associés aux pipelines. Les utilisateurs peuvent prendre des décisions éclairées concernant l’allocation des ressources et la budgétisation en comptant les tokens dans un fichier ou une chaîne de texte, garantissant une efficacité et une rentabilité optimales dans leurs opérations de pipeline.
Pipelines Zilliz Cloud
Pipelines d’ingestion
L’objectif principal des pipelines d’ingestion est qu’ils sont conçus pour traiter des données non structurées, comme des morceaux de texte et des documents, en embeddings vectoriels consultables. Ils contiennent une fonction INDEX_DOC, qui divise le document texte d’entrée en différents fragments et génère un embedding vectoriel pour chaque fragment. Le champ d’entrée (doc_url) est mappé à quatre champs de sortie (doc_name, chunk_id, chunk_text et embedding) comme champs scalaires et vectoriels de la collection générée automatiquement.
Pipelines de recherche
Le processus des pipelines de recherche est assez simple. Il facilite la recherche sémantique en convertissant une chaîne de requête en embedding vectoriel et en récupérant les top-K vecteurs avec leurs métadonnées et le texte correspondant. Pour cela, une fonction nommée SEARCH_DOC_CHUNK est utilisée.
Pipelines de suppression
Les pipelines de suppression sont utilisés pour supprimer d’une collection tous les fragments d’un document spécifié. Cela facilite la purge de toutes les données d’un document. Il existe une fonction nommée PURGE_DOC_INDEX qui supprime tous les fragments de document ayant un doc_name spécifié.
Les mécanismes du découpage de documents
L’objectif du chunking est, comme son nom l’indique, de décomposer l’information en plusieurs éléments plus petits afin de la stocker plus efficacement et de manière plus significative. Cela permet à la récupération de capturer des éléments d’information plus liés à la question et à la génération d’être plus précise mais moins coûteuse, car seule une partie d’un document sera incluse dans le prompt du LLM au lieu du document entier. Enfin, le chunking de documents rend la recherche efficace, car l’information est récupérée sur la base d’une compréhension sémantique plutôt que de correspondances exactes.
Avec Zilliz Cloud Pipelines, vous pouvez diviser des documents en phrases, paragraphes, lignes ou en une liste de chaînes personnalisées. De plus, vous pouvez définir la taille des chunks. Par défaut, chacun contient au maximum 500 tokens. Le tableau suivant répertorie la relation de correspondance entre les modèles applicables et leurs plages de taille de chunk correspondantes.
| Modèle | Plage de taille de chunk |
|---|---|
| zilliz/bge-base-en-v1.5 | 20-500 tokens |
| zilliz/bge-base-zh-v1.5 | 20-500 tokens |
| voyageai/voyage-2 | 20-3,000 tokens |
| voyageai/voyage-code-2 | 20-12,000 tokens |
| voyageai/voyage-large-2 | 20-12,000 tokens |
| openai/text-embedding-3-small | 250-8,191 tokens |
| openai/text-embedding-3-large | 250-8,191 tokens |
Applications pratiques et avantages du chunking de documents
Le chunking de documents présente un large éventail d’applications pratiques dans divers domaines. En décomposant les données textuelles en éléments gérables, il offre une approche plus rationalisée pour traiter de grands volumes de données non structurées. Voici quelques applications concrètes du chunking de documents.
Applications concrètes
Gestion de contenu
Dans la gestion de contenu, le processus de chunking de documents facilite l’indexation et la récupération de documents volumineux en les décomposant en petits éléments. Cette approche rend la recherche efficace et permet aux utilisateurs de trouver rapidement l’information souhaitée.
Recherche
Le chunking de documents s’avère utile dans le domaine de la recherche pour indexer des articles universitaires, des rapports et des articles de recherche. Ainsi, les chercheurs peuvent rechercher les segments spécifiques qui les intéressent.
Juridique
Le chunking des documents aide également dans le domaine juridique. Il facilite la recherche de clauses spécifiques, de contrats, de conditions et de décisions de justice. Cela améliore la précision et l’efficacité de la recherche juridique.
Médical
Les professionnels de la santé peuvent également utiliser le chunking de documents pour traiter et indexer les dossiers médicaux des patients, les recommandations cliniques et les articles de recherche. Cela les aide à accéder sans délai aux informations médicales critiques.
Avantages
Le chunking offre trois avantages clés dans le contexte des modèles de génération augmentée par récupération (RAG) :
- Précision accrue : En décomposant le texte en chunks plus petits et plus faciles à gérer, le chunking permet au processus de récupération de capturer des informations spécifiquement pertinentes pour la requête. Cela améliore la précision des résultats de recherche et garantit que les informations récupérées correspondent étroitement aux besoins de l’utilisateur.
- Réduction des coûts de calcul : Le chunking minimise les coûts de calcul en n’incluant que les portions pertinentes du document dans le prompt du modèle de langage. En évitant les informations inutiles, le chunking contribue à optimiser la charge de traitement, ce qui se traduit par des processus de récupération et de génération de texte plus efficaces.
- Cohérence et pertinence améliorées : Les stratégies de chunking telles que le Document Specific Chunking respectent l’organisation originale du document, en créant des chunks alignés sur des sections logiques telles que les paragraphes ou les sous-sections. Cette approche maintient la cohérence et la pertinence du texte, en particulier pour les documents structurés, ce qui conduit à des résultats de recherche plus significatifs et contextuellement appropriés.
Implémenter le chunking de documents avec Zilliz Cloud Pipelines : guide étape par étape
La mise en œuvre du découpage de documents avec Zilliz Cloud Pipelines implique un certain nombre d’étapes. Le guide complet comprend la configuration initiale, les configurations, les bonnes pratiques et les stratégies d’optimisation. Les points clés incluent l’inscription à Zilliz Cloud, la création de pipelines, l’indexation de documents et la personnalisation des stratégies de découpage.
Configuration initiale et configuration
S’inscrire ou se connecter
La première étape consiste à s’inscrire ou à se connecter au compte Zilliz Cloud. Cela vous aidera à accéder au service Zilliz Cloud Pipelines.
Créer des pipelines
Les utilisateurs doivent suivre les instructions données par Zilliz afin de créer les pipelines d’ingestion, de recherche et de suppression. Assurez-vous de noter l’ID du pipeline de recherche et l’API-Key pour les opérations ultérieures.
Méthode Web UI
- Accéder à votre projet
- Accédez à votre projet en utilisant Zilliz Cloud Web UI.
- Dans le panneau de navigation, sélectionnez l’option « Pipelines ».
- Accédez à l’onglet « Overview », puis sélectionnez « Pipelines ».
- Cliquez sur « +Pipeline » pour créer un nouveau pipeline.
- Choisir le type de pipeline
- Sélectionnez le bouton « +Pipeline » pour créer un nouveau pipeline.
- Assurez-vous de créer le pipeline d’ingestion avant les pipelines de recherche et de suppression.
- Configurer le pipeline d’ingestion
- Cliquez sur le cluster où la nouvelle collection sera créée.
- Saisissez le nom de la collection nouvellement créée.
- Fournissez un nom en respectant les restrictions de format.
- Décrivez le pipeline si vous le souhaitez.
- Ajouter des fonctions au pipeline
- ·Utilisez la fonction INDEX_DOC car elle divise le document en fragments plus petits, vectorise chaque fragment et enregistre les embeddings vectoriels.
- Utilisez la fonction PRESERVE pour ajouter des champs scalaires à la collection lors de l’ingestion des données.
- Personnalisation de la stratégie de découpage
- Personnalisez le séparateur afin de déterminer comment le document est divisé en fragments. Utilisez des caractères comme « . », « \n » ou toute autre chaîne personnalisée.
- Enregistrer la configuration de votre pipeline
- Après avoir ajouté et configuré les fonctions, il est maintenant temps d’enregistrer votre pipeline.
- Cliquez sur « Create Ingestion Pipeline ».
Méthode RESTful API
Créez un pipeline d’ingestion via API. Utilisez la commande curl pour créer un pipeline d’ingestion.
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${YOUR_API_KEY}" \
--url "https://controller.api.{cloud-region}.zillizcloud.com/v1/pipelines" \
-d '{
"projectId": "proj-xxxx",
"name": "my_doc_ingestion_pipeline",
"description": "Pipeline description",
"type": "INGESTION",
"functions": [
{
"name": "index_my_doc",
"action": "INDEX_DOC",
"inputField": "doc_url",
"language": "ENGLISH",
"chunkSize": 500,
"embedding": "zilliz/bge-base-en-v1.5",
"splitBy": ["\n\n", "\n", " "]
},
{
"name": "keep_doc_info",
"action": "PRESERVE",
"inputField": "publish_year",
"outputField": "publish_year",
"fieldType": "Int16"
}
],
"clusterId": "${CLUSTER_ID}",
"newCollectionName": "my_new_collection"
}'
- Gérer les pipelines
- Afficher et gérer les pipelines
- Cliquez sur « Pipelines » pour voir les pipelines disponibles avec leurs détails et l’utilisation des tokens.
- Utilisez une requête GET via API pour lister ou consulter les détails des pipelines.
- Exécuter les pipelines
- Pour traiter et stocker les données au format vectoriel, exécutez le pipeline d’ingestion.
- Exécutez maintenant le pipeline de recherche pour effectuer les recherches sémantiques.
- Utilisez le pipeline de suppression pour retirer les fragments de documents indésirables de la collection.
- Estimer l’utilisation des pipelines
- Vous pouvez voir l’utilisation des tokens pour l’exécution des pipelines à l’aide de la Web UI de Zilliz.
- Supprimer un pipeline
- Vous pouvez supprimer le pipeline qui n’a pas été utilisé via API (requête GET) ou en utilisant la Web UI.
Indexer des documents
Les utilisateurs peuvent saisir l’URL du document dans le champ doc_url lorsqu’ils sont dans le terrain d’essai du pipeline. S’ils souhaitent ingérer le document, ils cliqueront sur « RUN » et le processus sera effectué. Cette étape convertit le document en une collection vectorielle consultable.
Personnaliser la stratégie de découpage
Avec Zilliz Cloud Pipelines, vous pouvez personnaliser la stratégie de découpage. Les utilisateurs peuvent définir la taille des segments à l’aide d’un splitter, utilisé pour diviser le document en segments. De plus, des séparateurs personnalisés pour les phrases, les lignes et les paragraphes peuvent également être spécifiés.
Choisir un modèle
Choisissez un modèle pour générer des embeddings vectoriels en fonction de la taille de segment souhaitée et de la taille globale de votre document. Zilliz Cloud Pipelines prend en charge différents modèles, chacun ayant sa propre plage de tailles de segments.
Bonnes pratiques
- Expérimentez différentes tailles de segments pour trouver l’équilibre optimal entre la qualité de récupération et l’efficacité.
- Utilisez la fonctionnalité de splitter pour diviser les documents en petits segments selon des critères spécifiques tels que les paragraphes, les séparateurs personnalisés ou les phrases.
- Continuez à vérifier l’utilisation du pipeline et soyez attentif aux limites de Zilliz Cloud.
Conseils de dépannage et stratégies d’optimisation
- Votre document doit être compatible avec la fonction INDEX_DOC.
- Pour les fichiers markdown ou HTML, la fonction INDEX_DOC divise le document par en-têtes, puis en sections plus grandes selon la taille de segment spécifiée. Assurez-vous donc d’ajuster la taille de segment en conséquence.
- Si le modèle choisi ne donne pas les meilleurs résultats, vous pouvez également expérimenter avec d’autres modèles.
Conclusion
Zilliz Cloud Pipelines transforme les données non structurées en une collection vectorielle interrogeable. Ils ont un impact significatif sur le traitement des données et la recherche sémantique. Zilliz Cloud Pipelines peut rechercher des images, des images vidéo et des documents multimodaux. Des pipelines supplémentaires pour ces types de recherches seront ajoutés à l’avenir.
En résumé, Zilliz Cloud Pipelines a complètement changé le traitement des données et la recherche sémantique en simplifiant le processus de découpage des documents et en améliorant la capacité de recherche. Lorsque vous travaillez avec des données non structurées, ses fonctionnalités — qui incluent la capacité de créer des pipelines pour l’ingestion, la recherche et la suppression — en font un outil inestimable pour les développeurs et les ingénieurs de données. La plateforme promet de révolutionner davantage la façon dont nous traitons et recherchons l’information en mettant l’accent sur l’efficacité, l’évolutivité et la facilité d’utilisation. Cela encourage l’exploration et l’intégration dans divers workflows de données.
Si vous voulez essayer Zilliz Cloud Pipelines par vous-même, testez ce bootcamp intitulé Build RAG using Zilliz Cloud Pipelines.
Continuer à lire

What Is a Vector Lakebase?
A Vector Lakebase is a unified, lake-native data architecture for AI that combines vector-database-grade serving with open lake storage, reusable lake-level indexes, and a shared semantic layer.

A Developer's Guide to Exploring Milvus 2.6 Features on Zilliz Cloud
Milvus 2.6 marks a shift from “vector search + glue code” to a more advanced retrieval engine, and it is now Generally Available (GA) on Zilliz Cloud (a managed Milvus service).

Smarter Autoscaling in Zilliz Cloud: Always Optimized for Every Workload
With the latest upgrade, Zilliz Cloud introduces smarter autoscaling—a fully automated, more streamlined, elastic resource management system.


