利用元数据过滤、Hybrid Search、 Agent 等功能提升您的 RAG 应用

什么是 RAG?
检索增强生成(Retrieval Augmented Generation,简称 RAG)是一种通过整合外部数据源来增强大语言模型(LLM)的技术。典型的 RAG 应用包含以下几个步骤:
索引流程:从数据源获取数据并创建索引。这个流程通常包括在 Milvus 中加载数据、切分数据,以及对数据进行排序。
检索和生成:在运行时,RAG 应用处理用户的查询,从存储在 Milvus 中的索引中获取相关数据形成上下文,然后 LLM 基于丰富的上下文生成响应。
有多种方法可以改进 RAG 应用。本文将介绍如何利用 Milvus 向量数据库的元数据过滤、Hybrid Search 和 Agent 功能来提升 RAG 应用的性能。
元数据过滤
在将数据插入 Milvus 时,建议同时包含元数据。例如,如果您需要在 Milvus 中插入 PDF 文件的向量,您可以同时插入页码、PDF 文件名、作者等元数据信息。
通过在 Milvus 中存储元数据,您可以在搜索时过滤掉不相关的数据,从而提升检索的速度和效率。元数据过滤特别适合 RAG 应用,因为您可以确保只将与用户查询相关的内容传入 LLM。
Milvus 支持 full-string 元数据匹配,系统会通过 prefix、infix、postfix,甚至字符通配符(wildcard)搜索来匹配字符串。
# Prefix example, matches any string starting with “The”.
expression='title like "The%"'
# Infix example, matches any string with the word “the” anywhere in the sentence.
expression='title like "%the%"'
# Postfix example, matches any string ending with “Rye”.
expression='title like "%Rye"'
# Single character wildcard example, matches any one single character at a specific position.
expression='title like "Flip_ed"'
同样,Milvus 也支持使用数组值进行元数据过滤。通过精确匹配或 contains_any() 检查数组中的是否有匹配的元素。
Hybrid Search
Milvus 单个 Collection 中最多可创建 10 个向量字段。换言之,Milvus 支持多向量查询,用户能够同时在多个向量列中进行搜索。这一功能促进了多模态搜索、稀疏和稠密向量混合搜索,以及密集向量和全文混合搜索,提供了多样化和灵活的搜索能力。 不同列中的向量由不同的 Embedding 模型生成,可以用于从不同方面表示同一条数据。 使用Hybrid Search 后,搜索结果会根据各种重排 (rerank)策略进行重新排序和整合。
image.png
Milvus Hybrid Search 的原理
利用各种类型的 Embedding 向量,包括由 BERT 和 Transformers 等模型生成的稠密向量,以及由 BM25、BGE-M3 和 SPLADE 等算法生成的稀疏向量。
支持来自各种非结构化数据类型(如图像、视频、音频和文本文件)的多模态向量。例如,在刑事调查中,可以用指纹、声纹和面部识别等多模态的生物特征来表示嫌疑人。多模态数据有助于跨不同模态识别目标。
支持将向量搜索和全文搜索相结合。
RAG 应用中的 Agent
LLM 无法单独使用,它们只能输出文本。而 Agent 可以通过使用 LLM 作为引擎来确定采取哪些行动以及向 LLM 传入哪些内容。在执行任务后,Agent 可以将结果传回 LLM,从而确定结束任务还是执行更多任务。
Agent 可以用来执行许多任务,如搜索网页、浏览您的电子邮件、纠正 RAG、根据检索文档对 RAG 添加自我反思(Self-reflection)或自我评分(Self-grading)等。
2.png
设置完成后,Agent 可以将新的数据添加到 Milvus 中,或检索数据并将其传入您的 LLM。通过使用 Agent,您的 RAG 系统中能够始终整合最新知识。Milvus 还支持通过 upsert()
函数轻松更新数据。
总结
通过使用 Milvus 中的元数据过滤、Hybrid Search 和 Agent 功能,您可以提升您的 RAG 应用性能。
元数据过滤帮助您根据特定信息过滤数据,实现精确和高效的搜索。混合搜索通过允许跨多个向量列进行查询,扩展了搜索能力。Agent 通过基于 LLM 输出自动执行操作来提升 RAG 功能。
技术干货
LLMs 记忆体全新升级:六大新功能全面出击,用户体验值拉满!
本次,我们新增了价格计算器、取消存储配额限制、自动暂停不活跃数据库等功能,用户体验感再上新台阶。通过阅读本文,用户可以快速、详尽地了解 Zilliz Cloud 的六大新功能!
2023-5-5技术干货
LlamaIndex 联合创始人下场揭秘:如何使用私有数据提升 LLM 的能力?
如何使用私有数据增强 LLM 是困扰许多 LLM 开发者的一大难题。在网络研讨会中,Jerry 提出了两种方法:微调和上下文学习。
2023-5-18技术干货
打磨 8 个月、功能全面升级,Milvus 2.3.0 文字发布会现在开始!
七大变化详解 Milvus 2.3.0
2023-9-1