技术干货

大型语言模型与搜索

2024-07-25

By Antony G.

大型语言模型与搜索

大型语言模型与搜索

大型语言模型(LLMs)改变了人工智能领域。它们经过大量文本数据的训练,以生成类似人类的响应。LLMs在各种应用中展示了显著的多样性和能力,从聊天机器人到语言翻译系统。然而,它们影响特别突出的一个领域是在提高搜索能力方面。

在今天的数据驱动世界中,先进的搜索技术至关重要,信息的体量和复杂性持续呈指数级增长。Zilliz及其旗舰开源产品Milvus在推进搜索技术方面至关重要,它通过实现生成式AI模型(如OpenAI LLMs)与传统搜索方法的融合。Milvus为许多向量搜索应用提供了最优的查询性能,有效索引和搜索大规模、非结构化数据。它的先进索引和搜索算法专为处理现代数据集的复杂性而设计,使Milvus成为寻求在其搜索应用中利用LLMs力量的组织的不可或缺的工具。让我们深入了解一些LLM与搜索协同作用的实际例子。

使用Milvus的检索增强生成(RAG)

尽管LLMs在文本生成方面有着强大的能力,因为它们是针对大量公开可用数据进行预训练的,但它们仍有局限性,例如在提示中生成虚假信息,它们没有足够的数据参考(也称为幻觉)或缺乏特定领域的、专有的或私密的知识。像Milvus这样的向量数据库为LLMs带来外部数据源,旨在减轻这些局限性。这类系统被称为RAG。例如,利用Milvus的向量搜索能力,用户可以集成生成模型生成相关内容(例如,图像、文本)并快速在大型数据库中找到最相似的结果。

让我们看看如何使用Milvus、LlamaIndex和OpenAI创建一个演示RAG系统。

LlamaIndex是一个基于LLM的应用的数据框架,允许轻松摄取、结构化和访问私有或特定领域的数据,将这些数据安全、可靠地注入LLMs,以实现更准确的文本生成。OpenAI是一个训练有素的LLM,用于生成类似人类的文本,你已经知道Milvus是什么:一个可靠的开源向量数据库。

实施步骤

访问Zilliz Cloud并免费注册入门版。然后,复制集群设置参数,即集合名称、API密钥和URI。之后,启动一个Google Colab笔记本,并将该信息粘贴到一个单元格中,如下所示。

# Zilliz Cloud Setup ArgumentsCOLLECTION_NAME = 'RAG' # Collection name of your choiceURI = 'https://in03-277eeacb6460f14.api.gcp-us-west1.zillizcloud.com' # Endpoint URI obtained from Zilliz CloudAPI_KEY = 'Your key' # Also obtained from Zilliz Cloud

目前与大型语言模型互动的一个常见方式是通过聊天界面,您可以在其中输入提示,让LLM回答,如图1所示。

图1. 用户与LLM交互的流程图

但是鉴于我们之前强调的LLM面临的挑战,例如幻觉、有限的领域知识等,我们实现了一个RAG系统,如图下图所示,以添加外部数据以获得更好的性能。让我们分解流程图,包括Colab笔记本上的代码示例。

图2. 用户在RAG系统中与LLM交互的流程图

在图2中,我们看到用户提出了一个提示。然后,该提示传递给向量数据库进行与现有外部数据的相似性搜索。这就是索引发生的地方。索引是组织和结构化数据的过程,使其更容易、更快地检索和搜索。例如,Milvus提供了几种索引类型,用于对字段值进行排序,以实现高效的相似性搜索。在Zilliz Cloud中,索引由您(自动索引)处理。它还提供了三种度量类型:余弦相似性(COSINE)、欧几里得距离(L2)和内积(IP),用于测量向量嵌入之间的距离,您可以在Zilliz cloud上配置,如图3所示,或使用您喜欢的编程语言,如Python、NodeJS、Java、Go进行配置。

图3. 从Zilliz Cloud创建模式

通过Zilliz增强查询理解

在将提示和相关数据摄入Milvus之后,下一步是利用自然语言处理(NLP)能力增强查询理解。例如,Milvus配备了先进的索引技术,允许搜索语义相似性。当用户询问有关文档的问题时,Milvus根据向量表示中编码的语义相似性检索相似文档。这确保了在查询处理期间考虑了相关文档。这里是Zilliz Cloud的一个示例。图4显示了我们在之前分享的Colab笔记本上摄入Milvus的数据部分的嵌入示例。假设我们想要查询图4中参考的文档最相关部分。Milvus允许进行向量搜索。

图4. Zilliz Cloud上的向量相似性搜索

点击向量搜索,Milvus允许我们执行向量查询搜索,如图5所示,通过选择Milvus检索的向量表示中编码的语义相似性最高的K个相关文档,从而增强查询理解和促进更准确的信息检索。

图5. 向量相似性搜索的配置

执行搜索后,Milvus可以检索最相关的5个文档,如图6所示。正如我们在图2中看到的,向量数据库中发生的向量相似性结果通过为用户的查询增加更多上下文来增强查询。与图1的设置相比,这在很大程度上有所不同,图1的设置缺少向量数据库。重要的是要注意,这个向量搜索操作可以使用Zilliz Cloud支持的编程语言之一执行,如Python、Node.js、GO和Java,如Milvus的搜索和查询文档中所述。

图6. 向量搜索的结果

使用Zilliz技术重新排列搜索结果

在我们之前看到的代码示例中,我们使用了单个文档进行检索。然而,在许多现实世界的情况下,我们可以通过增加多个文档来为LLM更好地回答问题。当我们有多个文档时,就会出现一个挑战;我们应该使用哪些文档来帮助模型更好地上下文化?这就是排名理念的来源。重新排名器评估并重新排序搜索结果,以提高与特定查询的相关性。因此,重新排名器将选择最相关文档的列表,并使用它们提出上下文化查询,如图7所示。

图7. 使用重新排名器优化RAG

使用LLMs和Milvus优化搜索结果

除了重新排名,Milvus还有更多技术来优化搜索结果。由于LLMs经常生成大量数据,这可能在存储和检索方面带来挑战,Milvus支持压缩技术,如量化和剪枝,以减少向量的存储占用,而不会显著牺牲搜索精度。量化降低了向量组件的精度,而剪枝消除了相关性较低的组件,优化了存储和搜索效率。

框架和Zilliz及Milvus的未来

重大的技术进步和不断增长的行业需求标志着像Milvus这样的向量数据库和基于LLM的应用的未来。根据Zilliz在2024年发布的一项战略博客,预计持续的研究和开发工作将提高向量数据库中的算法效率、存储优化和查询处理能力,可能得到专用硬件加速器的辅助。与此同时,AI在各个行业的日益普及将推动对可扩展解决方案的需求,定位向量数据库为数据分析和洞察力获取的关键工具。向量数据库与新兴技术如基于图的数据库和联邦学习框架的融合,为更全面的AI驱动决策带来了希望。此外,深度学习和强化学习等机器学习技术的进步可能会进一步提升向量数据库的能力,促进AI应用的创新和发现。

由Zilliz和Milvus驱动的搜索技术的发展不仅仅是一个被动的过程。这是一段旅程,作为技术专业人士和研究人员,您是其中的一部分。这段旅程将推动重大的行业转型,允许进行高度个性化的、多模态的和智能的搜索体验。通过利用先进的LLMs和可扩展的向量索引能力,搜索引擎将成为在日益复杂和相互连接的世界中导航和获取信息的不可或缺的工具。要积极参与这段旅程并了解最新进展,请加入Milvus Discord频道,与工程师和社区直接互动。

结论

在这篇博客中,我们探讨了Zilliz和Milvus通过集成大型语言模型(LLMs)来增强搜索技术的能力。利用Zilliz在NLP方面的能力以及Milvus高效的索引和搜索算法,我们已经看到了如何优化搜索结果,提高查询理解。通过RAG的概念,我们展示了如何将生成式AI模型与传统搜索方法相结合,可以产生优越的结果,使用户能够快速、准确地访问相关内容。我们强调了Milvus在促进向量表示的摄取、存储和检索方面的作用,而Zilliz通过语义分析、实体识别和意图分类丰富了查询理解。

资源

Milvus向量数据库是什么?- The New Stack

使用 Milvus 和 LlamaIndex 的检索增强生成(RAG)

使用重新排名器优化 RAG:角色和权衡 - Zilliz 博客

高效的 RAG:为您的 LLM 生成和评估高质量内容

在 5 分钟内使用 LangChain 和 Milvus 构建开源聊天机器人 - Zilliz 博客

基础 LLM - Microsoft 社区中心

ReadtheDocs 使用 Zilliz 免费层的检索增强生成(RAG)

VectorDBBench:开源向量数据库基准工具 - Zilliz 博客

使用 LangChain 自我查询向量数据库 - Zilliz 博客

OpenAI 的 ChatGPT - Zilliz 博客

向量索引 Milvus v2.0.x 文档

  • Antony G.

    Antony G.

    Freelance Technical Writer

    准备好开始了吗?

    立刻创建 Zilliz Cloud 集群,存储和检索您的向量。

    免费试用 Zilliz Cloud