使用Zilliz云管道简化数据处理:深入研究文档数据块
使用Zilliz云管道简化数据处理涉及到检查文档分块。它是将非结构化数据转换为可搜索的向量集合的一个组成部分。
Zilliz云管道的摄取、删除和搜索管道进一步促进了这一过程。每个方法在数据处理工作流中都有不同的目的。
Zilliz云管道在简化文档分块过程和增强可搜索性方面发挥了作用。该平台支持在文本文档中进行语义搜索的用例,并为检索-增强生成(RAG)应用程序提供了一个关键的构建块。
Zilliz云管道包括各种功能,比如search_doc_chunk,它将查询文本转换为向量嵌入。然后,它将检索前k个相关的文档块,使基于查询的含义更容易找到相关的信息。
Zilliz云管道:转换数据处理
Zilliz的工程师设计了Zilliz云管道,将来自各种来源的非结构化数据转换为繁忙的Gen AI开发人员的可搜索向量收集。这个管道将获取非结构化数据,将其进行分割,将其转换为嵌入,索引它,并使用指定的元数据将其存储在Zilliz云中。该体系结构使用了各种能够提高性能的关键技术组件和功能。
Milvus向量数据库
Milvus向量数据库旨在高效地处理高维向量数据。它进一步支持不同的用例,包括Zilliz Cloud,这是一种帮助开发人员专注于核心应用程序,而不是管理数据库操作的云服务。
连接器
该连接器是一个内置的工具,可以毫不费力地连接各种数据源,从而实现实时数据摄入和索引,以确保所有搜索查询都可以立即访问最新的内容。可扩展和自适应的,连接器可以无缝地处理波动的流量负载,以平稳的可伸缩性与零开发麻烦。它们自动将文档添加和删除同步到集合,并保持同步。此外,详细的日志记录为数据流提供了可观测性,确保了透明度和检测可能出现的任何异常情况的能力。
文件分配器
拆分器通常用于文档处理和文本分析任务中,以根据指定的字符或模式将文档或文本划分为更小的块或段。然后,可以分别处理或分析这些块。例如,对于Gen AI应用程序,可以使用分割器将一个长文本在转换为向量嵌入之前分成单独的句子或段落。这些嵌入是为了找到语义上相似的块。
机器学习模型
机器学习模型用于创建向量嵌入。这些嵌入捕获了语义关系和上下文信息,使算法能够更有效地理解和处理语言。开源、商业和私有的机器学习模型可以安装在-prem上或云环境中,也可以通过API访问来生成向量嵌入。
在信息检索系统中,排序器对初始搜索结果进行细化,以提高它们与查询的相关性。与仅使用向量近似最近邻(ANN)搜索进行检索不同,添加一个转发器可以通过更好地评估文档和查询之间的语义关系来提高搜索质量。对于检索增强生成(RAG)应用程序,转发器可以通过提供更小但更高质量的上下文文档集来提高生成答案的准确性。然而,与单独的人工神经网络检索相比,转发器的计算成本非常昂贵,这导致了更高的成本和更长的查询延迟时间。集成转发器的决定应该在改进相关性的需要与性能和成本限制之间取得平衡。
摄入管道创建
用户可以选择通过用户友好的Zilliz云控制台或通过更可定制的RESTfulapi来创建管道。这种双重方法确保了用户可以根据他们的特定需求和偏好来定制他们的管道创建体验,无论他们是优先考虑简单性还是需要高级定制选项。在创建管道时,用户可以选择首先分割他们的文档,然后从六种模型中选择一种(Zilliz/ben-v1.5,航行/航行2,航行代码2,开放/文本嵌入3小,开放/文本嵌入3大。对于中文,只有zilliz/基础zh-v1.5)来创建向量嵌入。它们还可以保存在检索过程中非常有用的任何相关的元数据。
数据源连接
连接器作为Zilliz云中的集成工具,旨在简化不同数据源与向量数据库的链接过程。通过在用户界面(UI)中提供的直观说明,用户可以毫不费力地将各种数据源集成到他们的管道中。这不仅增强了其数据处理能力的多功能性和可扩展性,而且也强调了Zilliz云的用户友好性。
例如,一个连接器可以作为一种机制,从一系列源将数据摄取到Zilliz云中,包括对象存储、Kafka(即将可用)等。以对象存储连接器为例,它允许用户监视对象存储桶中的目录,并将pdf和HTML等文件同步到Zilliz云管道。随后,这些文件可以转换为向量表示,并存储在向量数据库中进行搜索。通过专用的摄入和删除管道,Zilliz云中的文件及其相应的向量表示保持同步。向量数据库收集会自动反映对象存储中文件的任何添加或删除,以确保数据的一致性和准确性。
运行搜索管道
一旦创建了管道,就可以执行它们来处理非结构化数据,从而促进了Zilliz云生态系统中的各种功能。例如,在创建一个摄入管道时,用户可以启动其执行,将非结构化数据转换为可搜索的向量嵌入。这些嵌入可以存储在Zilliz云向量数据库中,提高了数据检索的可访问性和效率。
类似地,在创建一个搜索管道时,用户可以运行它,从而使系统能够进行语义搜索。该功能允许用户从向量数据库中探索和检索相关信息,利用语义分析的力量来细化搜索结果。
此外,在创建删除管道后,用户可以通过从向量数据库中的集合中删除与指定文档关联的所有块来启动其执行。该功能通过方便删除不必要或过时的数据块,确保数据库的完整性和清洁。
估算管道成本
与运行管道相关的成本根据代币进行量化,代币作为基本的度量单位。类似于大型语言模型(llm)如何利用令牌作为基本的构建块,管道通过解析和嵌入文本作为令牌序列来进行文档处理和搜索查询执行。用户可以利用我们的估计管道使用工具来深入了解执行管道的成本影响。该工具有助于计算文件或文本字符串中的令牌,使用户能够衡量运行管道的预期资源利用率和相关成本。该工具允许用户在资源分配和预算方面做出明智的决定,以确保其管道运营中的最佳效率和成本效益。
重新排序搜索结果
仅使用近似最近邻(ANN)向量搜索进行初始检索是非常有效的,而且往往能得到令人满意的结果。在许多情况下,重新排序的次要阶段可能被认为是可选的。对于具有高质量标准的应用程序,使用排序器可以提高精度,尽管会增加计算需求和更长的搜索时间。通常,集成一个排序器模型可以为搜索查询添加100 ms的延迟,这取决于topK选择和转发器模型大小等因素。当初始检索产生不正确或不相关的文档时,使用转发器可以有效地过滤掉它们,从而提高最终生成的响应的质量。
如果认为您的用例需要一个排序器,那么您可以从UI中选择它。
优点 灵活的管道创建:用户可以通过用户友好的Zilliz云控制台或更可定制的RESTfulapi来创建管道。这种双重方法允许用户根据他们的特定需求和偏好定制管道创建体验,无论是考虑简单的优先级还是需要高级定制选项。
无缝数据源集成:Zilliz云中的连接器简化了将不同的数据源与向量数据库的连接。通过在用户界面(UI)中的直观说明,用户可以毫不费力地将各种数据源集成到他们的管道中,从而增强其数据处理能力的通用性和可扩展性。
成本估计和优化: Zilliz云提供了一个估计管道使用工具,帮助用户评估预期的资源利用率和相关的管道成本。用户可以通过计算文件或文本字符串中的令牌来对资源分配和预算做出明智的决策,以确保其管道操作中的最佳效率和成本效益。
Zilliz云管道
进气管道
摄取管道的主要目的是,它们被设计为将文本片段和文档等非结构化数据处理为可搜索的向量嵌入。它们包含一个函数index_doc,它将输入的文本文档分割成不同的块,并为每个块生成一个向量嵌入。输入字段(doc_url)被映射到四个输出字段(doc_name、chunk_id、chunk_text和嵌入),作为自动生成的集合的标量字段和向量字段。
搜索管道
搜索管道的过程非常简单。它通过将查询字符串转换为向量嵌入并检索top-K向量及其元数据和相应的文本来帮助语义搜索。为此,有一个名为search_doc_chunk使用。
删除管道
删除管道用于从集合中删除指定文档中的所有块。这使得清除文档中的所有数据更容易。有一个名为purge_doc_index它将删除具有指定doc_name的所有文档块。
文档分块的机制
顾名思义,分块的目标是将信息分解成多个更小的部分,以更有效、更有意义地存储它。这使得检索能够捕获与问题和生成更相关的信息片段,从而更精确,但成本更低,因为只有文档的一部分将包含在LLM提示符中,而不是整个文档。最后,文档分块使可搜索性更加高效,因为信息是基于语义理解而不是精确匹配来检索的。
使用Zilliz云管道,您可以将文档分割为句子、段落、行或自定义字符串列表。此外,您还可以定义数据块的大小。默认情况下,每个标记最多包含500个令牌。下表列出了适用的模型及其对应的块大小范围之间的映射关系。
文档分块的实际应用与优点
文档分块在各个领域都有广泛的实际应用。通过将文本数据分解为可管理的部分,提供了一种更精简的方法来处理大量的非结构化数据。下面是文档分块的一些真实应用程序。
真实世界的应用程序
内容管理
在内容管理中,文档分块过程通过将大型文档分解成小块,使其更容易索引和检索它们。这种方法使搜索效率更高,并允许用户快速找到所需的信息。
研究
文档分块在研究领域可以用来索引学术论文、报告和研究文章。因此,研究人员可以搜索他们感兴趣的特定部分。
法律的
分块文件在法律领域也有帮助。分割有助于搜索特定的条款、合同、条款和法院裁决。这提高了法律研究的准确性和效率。
医疗的
医疗专业人员还可以使用文档分块来处理和索引患者的医疗记录、临床指南和研究论文。这有助于他们立即获取关键的医疗信息。
收益
在检索增强生成(RAG)模型的背景下,分块提供了三个关键好处:
增强的精度:通过将文本分解为更小、更易于管理的数据块,分块使检索过程能够捕获与查询特别相关的信息。这提高了搜索结果的精度,并确保检索到的信息与用户的需求紧密一致。
减少计算成本:分块通过在语言模型提示符中只包含相关的文档部分,从而将计算成本最小化。通过避免不必要的信息,分块有助于优化处理开销,从而实现更有效的文本检索和生成过程。
改进一致性和相关性:文档特定分块的分块策略尊重文档的原始组织,创建与段落或小节等逻辑部分对齐的块。这种方法保持了文本的一致性和相关性,特别是对于结构化文档,从而导致更有意义和上下文合适的搜索结果。
使用Zilliz云管道实现文档分块:一步一步的指南
使用Zilliz云管道实现文档分块涉及到许多步骤。综合指南包括设置、配置、最佳实践和优化策略。关键包括注册Zilliz Cloud、创建管道、索引文档和定制分块策略。
设置和配置
注册或登录
第一步是注册或登录到Zilliz云帐户。这将帮助您访问Zilliz云管道服务。
创建管道
用户必须按照Zilliz提供的说明来创建摄入、搜索和删除管道。确保记下搜索管道ID和API键的进一步操作。
Web UI方法
- 导航到项目
- 使用Zilliz云Web UI进入您的项目。
- 在导航面板中,选择“管道”选项。
- 导航到“概述”选项卡,然后选择“管道”。
- 点击“+管道”来创建一个新的管道。
- 选择管道类型
- 选择“+管道”按钮来创建一个新的管道。
- 确保在搜索和删除管道之前创建摄入管道。
- 配置摄入管道
- 单击将从中创建新集合的群集。
- 输入新创建的集合的名称。
- 通过遵循格式限制来提供一个名称。
- 如果您需要,请描述该管道。
- 向管道中添加函数
- 使用INDEX_DOC函数将文档分成更小的块,对每个块进行向量化,并保存向量嵌入。
- 在数据摄入期间,使用保留函数将标量字段添加到集合中。
- 整块策略的定制
- 自定义拆分器,以确定如何将文档划分为数据块。使用像“”这样的角色。”、“\n”或任何其他自定义字符串。
- 保存管道配置
- 在添加和配置函数之后,现在是保存管道的时间了。
- 点击“创建摄入管道”。
RESTful API方法
通过API创建一个摄入管道。使用curl命令来创建一个摄入管道。
- 管理管道
- 查看和管理管道
- 单击“管道”以查看可用的管道及其详细信息和令牌使用情况。
- 通过API使用GET请求来列出或查看管道的详细信息。
- 运行管道
- 要以矢量格式处理和存储数据,请运行摄入管道。
- 现在,执行搜索管道来执行语义搜索。
- 使用删除管道从集合中删除不需要的文档块。
- 估算管道使用情况
- 借助Zilliz的Web UI,您可以看到运行管道的令牌使用情况。
- 下降管道
- 您可以通过API(GET请求)或使用web UI来放弃尚未使用的管道。
索引文档
当用户在管道操场上时,可以在doc_url字段中输入文档的URL。如果他们希望摄取文档,那么他们将点击“运行”,这个过程就会完成。此步骤将文档转换为可搜索的向量集合。
自定义块化策略
使用Zilliz云管道,您可以定制分块策略。用户可以使用用于将文档划分为块的分割器来定义块的大小。此外,还可以指定句子、行和段落的自定义分隔符。
选择模型
根据所需的块大小和文档的总体大小,选择一个用来生成向量嵌入的模型。Zilliz云管道显示了对各种模型的支持,每个模型都有自己的块大小范围。
最佳实践
- 通过不同块大小的实验,以找到检索质量和效率之间的最优平衡。
- 使用拆分器功能可以根据特定的标准将文档划分为小块,如段落、自定义分隔符或句子。
- 继续检查管道的使用情况,并了解Zilliz云计算的限制。 故障排除提示和优化策略
- 您的文档应该与INDEX_DOC函数兼容。
- 对于标记或HTML文件,INDEX_DOC函数将文档按头划分,然后根据指定的块大小划分为更大的部分。因此,请确保相应地调整块的大小。
- 如果所选的模型没有给出最好的结果,那么您也可以使用其他模型进行实验。
结论
Zilliz云管道将非结构化数据变成了一个可搜索的向量集合。它们会显著影响了数据处理和语义搜索。Zilliz云管道可以搜索图像、视频帧和多模态文档。将来将为这些类型的搜索添加其他管道。
综上所述,Zilliz云管道通过简化了文档分块过程,提高了可搜索性,从而彻底改变了数据处理和语义搜索。当使用非结构化数据时,它的特性——包括创建用于摄入、搜索和删除的管道的能力——使它成为开发人员和数据工程师的无价工具。该平台承诺通过强调效率、可伸缩性和易用性来进一步彻底改变我们处理和搜索信息的方式。这鼓励了探索和集成到不同的数据工作流中。
如果你想自己尝试Zilliz云管道,可以试试这个名为使用Zilliz云管道构建RAG的训练营。 23.webp
技术干货
Forrester Wave™ 向量数据库报告:Zilliz 获评全球领先者
Forrester 是科技领域最知名的研究公司。他们最新发布了 2024 年向量数据库供应商 Wave™ 报告,Zilliz 被评为领导者!
2024-09-27技术干货
如何选择合适的 Embedding 模型
检索增强生成(RAG)是生成式 AI (GenAI)中的一类应用,支持使用自己的数据来增强 LLM 模型(如 ChatGPT)的知识。 RAG 通常会用到三种不同的AI模型,即 Embedding 模型、Rerankear模型以及大语言模型。本文将介绍如何根据您的数据类型以及语言或特定领域(如法律)选择合适的 Embedding 模型。
2024-08-26技术干货
一起来认识GPU-Cagra 索引
而当我们谈论到高性能的计算,GPU总是一个绕不开的话题,在向量领域也不例外。
2024-08-08