大模型的训练与应用 | 七、进阶的RAG技术(上篇):分块和矢量化、搜索的索引、Rerank和过滤

在这里插入图片描述

一、分块和矢量化

在处理自然语言处理(NLP)任务时,特别是在使用transformer模型进行文本分析和搜索时,分块和矢量化是两个关键步骤。

  • 向量索引和查询向量:首先,需要将文档内容转换成向量形式,这通常通过使用预训练的transformer模型来实现。这些向量可以被存储在一个索引中,以便快速检索与查询向量最接近的语义。

  • 分块技术:由于transformer模型有固定的输入序列长度限制,因此需要将长文本分割成较小的块,以便模型能够有效处理。这些块应该是语义上完整的单元,如句子或段落,而不是随意切分的片段。
    (简单来说:计算机一次只能处理一定量的词,所以我们需要把长文章分成小段,比如一个个句子。这样,计算机就可以一段一段地理解文章了。)

  • NodeParser:在LlamaIndex中,NodeParser是一个工具,它允许用户定义文本的分割方式,包括自定义文本分割器、处理元数据以及定义节点或块之间的关系。

  • 数据块大小:块的大小取决于所使用的嵌入模型和它的token容量。例如,BERT模型通常限制在512个token以内,而OpenAI的ada-002模型可以处理更长的序列,达到8191个token。选择块的大小需要在保持足够上下文以供模型推理和确保文本嵌入有效性之间找到平衡。

  • 嵌入模型的选择:为了生成块的嵌入,可以选择专门的搜索优化模型,如bge-large或E5系列。这些模型可能在特定任务上进行了优化,以提供更好的搜索结果。

  • MTEB排行榜:MTEB(Model The Efficient BERT)排行榜是一个资源,可以提供关于最新和最有效的NLP模型的信息,这些模型可能用于文本嵌入和搜索任务。

在实际应用中,选择合适的分块策略和嵌入模型对于提高搜索的准确性和效率至关重要。此外,还需要考虑如何将分块后的向量与查询向量进行比较,以找到最相关的结果。这通常涉及到距离度量(如余弦相似度)和可能的后处理步骤,以优化搜索结果的相关性。


二、搜索的索引

面向RAG的大模型应用的关键部分是用于搜索的索引,它存储前面得到的向量化内容。

  • 向量化内容的索引:在处理大型模型(如RAG)的应用时,需要一个索引来存储文本内容的向量化形式。这允许快速检索与查询向量最接近的语义内容。

  • 查询和块的向量化:在搜索过程中,查询首先被向量化,然后系统在索引中查找与这些查询向量距离最近的块向量。

  • 平铺索引:最基本的索引实现是平铺索引,它通过遍历所有块向量并计算与查询向量之间的距离来进行搜索。

  • 高效的向量索引:为了在大规模数据集上实现有效的检索,需要使用如faiss、nmslib或annoy等高效的向量索引库,它们采用近似最近邻搜索技术,如聚类、树结构或HNSW算法。

  • 管理型解决方案:还存在一些管理型解决方案,如Elasticsearch或专门的向量数据库,它们不仅提供索引功能,还负责数据摄取和处理流程。

  • 元数据与向量存储:根据索引的选择,可以同时存储元数据和向量,使用元数据过滤器根据特定条件(如日期或数据源)进行搜索。

  • LlamaIndex的索引支持:LlamaIndex支持多种向量存储索引,并提供其他索引实现,如列表索引、树索引和关键字表索引。

  • 双索引策略:对于大型文档集合,可以创建两个索引:一个用于摘要,一个用于文档块,以分两步进行搜索,首先通过摘要过滤,然后对相关块进行详细搜索。
    在这里插入图片描述

  • 问题生成与向量化:可以要求大型语言模型(LLM)为每个块生成问题,并将这些问题向量化,然后在运行时使用这些问题向量进行搜索,以提高搜索质量。

  • HyDE方法:HyDE是一种反向逻辑方法,它要求LLM为给定查询生成假设响应,然后使用这个响应的向量与查询向量来提高搜索质量。

  • 上下文添加:为了提高搜索质量,可以为LLM添加周围的上下文,这可以通过句子窗口检索或父文档检索实现。

  • 句子窗口检索:在句子窗口检索中,每个句子都被单独嵌入,以提供高准确性的上下文搜索。

  • 父文档检索:父文档检索涉及将文档拆分成块的层次结构,并在检索期间使用父块作为上下文。

  • 稀疏检索算法:可以结合使用稀疏检索算法(如tf-idf或BM25)和向量搜索,以获得最佳结果。

  • 集成检索器和RRF:在LangChain或LlamaIndex中,集成检索器可以实现多种检索器的组合,并使用RRF算法进行结果的重新排序。

  • 混合或融合搜索:混合搜索结合了语义相似性和关键字匹配,以提供更全面的检索结果。
    在这里插入图片描述


三、Rerank和过滤

在得到了检索结果后,需要通过过滤来重新排序。LlamaIndex 提供了多种可用的后处理程序,根据相似度评分、关键词、元数据过滤掉结果,或者用其他模型对结果进行重新排序,比如基于句子transformer的交叉编码器、 根据元数据(比如日期最近性)内聚重新排序等等。

  • 检索结果的初步获取:在使用索引进行搜索后,我们通常会得到一个初步的检索结果列表,这个列表包含了与查询向量距离最近的文档块或句子。

  • 过滤(Filtering):过滤是后处理程序的一部分,它根据特定的标准(如相似度评分、关键词匹配、元数据条件等)来筛选和排除不相关的结果。

  • 重新排序(Reranking):在过滤之后,可能会使用其他模型对剩余的结果进行重新排序。这个过程称为重新排序,目的是进一步优化结果的相关性。

  • 使用LlamaIndex的后处理程序:LlamaIndex提供了多种后处理程序,这些程序可以基于不同的标准对检索结果进行过滤和重新排序。

  • 相似度评分:可以使用相似度评分作为过滤和重新排序的依据。例如,只保留评分高于某个阈值的结果。

  • 关键词过滤:根据查询中的关键词对结果进行过滤,只保留包含这些关键词的文档块。

  • 元数据过滤:利用元数据(如作者、日期、来源等)进行过滤,例如,只保留最近一周内发布的文档。

  • 使用模型进行重新排序:可以使用基于句子的transformer模型(如交叉编码器)来评估和重新排序结果。这些模型能够更深入地理解文本的语义内容。

  • 元数据内聚性:根据元数据的内聚性对结果进行重新排序,例如,优先显示来自同一作者或同一来源的结果。

  • 提供上下文给LLM:过滤和重新排序后的最终结果将作为上下文提供给大型语言模型(LLM),以便生成更准确和相关的回答。

Rerank和过滤是将检索到的上下文提供给LLM以获得结果答案之前的最后一步,确保了提供给模型的信息是最相关和最有用的。

通过这一过程,可以显著提高检索系统的性能,确保用户或系统能够得到最准确和最有价值的信息。


最后

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频,免费分享!

在这里插入图片描述

一、大模型全套的学习路线

L1级别:AI大模型时代的华丽登场
L2级别:AI大模型API应用开发工程
L3级别:大模型应用架构进阶实践
L4级别:大模型微调与私有化部署

在这里插入图片描述

达到L4级别也就意味着你具备了在大多数技术岗位上胜任的能力,想要达到顶尖水平,可能还需要更多的专业技能和实战经验。

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

三、大模型经典PDF书籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

在这里插入图片描述

四、AI大模型商业化落地方案

在这里插入图片描述

作为普通人在大模型时代,需要不断提升自己的技术和认知水平,同时还需要具备责任感和伦理意识,为人工智能的健康发展贡献力量。

有需要全套的AI大模型学习资源的小伙伴,可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费

在这里插入图片描述

如有侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值