商务服务
【RAG优化技术】 关键词&语义的混合检索实现
2024-11-11 09:45

【RAG优化技术】 关键词&语义的混合检索实现

一些纯语言模型,比如GPT-4,虽然也很强大,但它们的知识都是在训练时就固定下来的,无法实时更新。这就意味着,它们无法获取到训练之后出现的新信息。所以,对于一些需要最新信息,或者是一些特定场景的问题,纯语言模型可能无法给出满意的答案。

对于不同类型和语言的文件,我们需要选择适当的RAG技术。例如,对于PPT和PDF这些主要包含文本和图像的文件,我们可能需要使用能够理解和生成图像描述的模型。对于CSV和Excel这些主要包含结构化数据的文件,我们可能需要使用能够理解和生成数据摘要的模型。此外,不同语言的文件可能需要不同的嵌入模型以适应不同语言的语义。

因此,当我们描述问题时,有时并不清楚我们的提问是否与提供的文本表达存在歧义,或者当我们只有模糊的记忆,只知道一两个词时,向量库的语义搜索往往无法满足我们的需求。

因此,如果我们能够结合关键词和语义进行同时检索,就能够进一步提高我们的RAG的准确度。这种混合检索方法可以在保证搜索效率的同时,提高搜索的准确性和全面性。具体来说,当我们的问题描述不清楚,或者记忆模糊只知道一两个关键词时,混合检索方法可以通过关键词匹配找到可能的答案,然后结合语义匹配来进一步提高答案的准确性。

BM25 是一种基于概率的排名函数,用于信息检索系统。BM25原理是根据查询词在文档中的出现频率以及查询词在整个文本集中的出现频率,来计算查询词和文档的相似度。BM25模型的主要思想是:如果一个词在一份文档中出现的频率高,且在其他文档中出现的频率低,那么这个词对于这份文档的重要性就越高,相似度就越高。BM25模型对于长文档和短文档有一个平衡处理,防止因文档长度不同,而导致的词频偏差。

以下是使用Langchain进行混合检索的示例代码:

Llamaindex 使用的方法叫做 HybridFusionRetrieverPack,与 Langchain 的主要区别在于,它在进行混合检索之前,还会根据我们搜索的内容用大模型生成几条类似的提问,以提高我们提问的泛化能力。这种方法可以更有效地处理我们的模糊记忆和不确定的问题描述,使我们的搜索更加精确和全面。

其他的模型也是利用了BM25还有Embeding模型,但是Llamaindex主要还是对openai的支持比较好,所以它默认是用openai 的embeding模型的,如果你想要使用其他的Embeding模型,就需要将这些模型挂载到OneAPI上,通过配置key和base_url来转接调用

相当于它就会根据what is the main content?来生成5条差不多意思的句子然后再进行Langchain的那个操作

由于BM25模型主要依赖于词频来判断文档和查询词的相似度,因此当我们输入的词被错误地分词,或者当我们搜索名字或者号码这类内容时,模型的效果可能会大打折扣。这是因为在这些情况下,词频可能并不能准确地反映出查询词和文档的相关性。例如,一个人的名字在一篇文档中可能只出现一次,但这并不意味着这篇文档与查询词不相关。同样,如果我们在搜索电话号码时,由于电话号码通常是一长串数字,因此它的词频很可能非常低,但这并不影响其对于查询结果的重要性。因此,尽管BM25模型在许多情况下都能提供满意的检索效果,但在处理此类问题时,它的性能可能会大大降低。

因此,为了解决这个问题,我们可以考虑引入ElasticSearch。ElasticSearch是一个开源的、分布式的、RESTful搜索引擎,它的设计使得它非常适合执行诸如全文搜索、结构化搜索、实时聚合等复杂的搜索、分析任务。其内部使用Lucene作为索引和搜索的引擎,并做了很多优化和改进,使得ElasticSearch在处理复杂搜索时性能更高,使用更方便。

首先,我们可以尝试使用ElasticSearch进行纯关键词搜索。纯关键词搜索是最简单的一种搜索方式,不需要进行任何预处理或向量化,只需要对输入的关键词进行精确匹配。这种搜索方式的优点是简单、快速,但缺点是可能会漏掉一些含义相关但没有使用相同关键词的文档。但是,对于一些简单的、明确的搜索需求,纯关键词搜索是一个非常有效的方法。

搜索一个不知道是什么的词

结果如下,他还是能够精准识别出来,效果很不错

首先,我们需要安装并配置Elasticsearch。一旦Elasticsearch安装并运行,我们就可以创建一个索引,并将我们的数据添加到这个索引中。一旦数据被索引,我们就可以使用Elasticsearch的搜索API来查询数据。

下面是一个使用Elasticsearch进行混合识别的示例:

** 注意:有一个坑就是如果要使用ElasticSearch的这种混合检索,需要使用它的付费版本,所以如果真的需要混合检索可以用ElasticSearch的关键词再和普通向量检索的结果直接拼接去重融合就好了

不同的Embeding模型以及不同的RAG优化方法适用于不同的文本内容,我们需要根据实际情况进行选择和优化。例如,对于一些具有特定术语或者专业知识的文本,我们可能需要使用特定的嵌入模型以更好地理解和表示这些特定的词汇。同样,对于不同的搜索需求,我们可能需要调整我们的RAG策略,例如调整关键词和语义的权重,或者调整我们的向量库的大小和复杂性。这需要我们在实践中不断尝试和优化,以找到最适合我们需求的模型和策略。

    以上就是本篇文章【【RAG优化技术】 关键词&语义的混合检索实现】的全部内容了,欢迎阅览 ! 文章地址:http://www78564.xrbh.cn/news/27054.html 
     文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 迅博思语移动站 http://www78564.xrbh.cn/mobile/ , 查看更多   
最新文章
iphone8支持高清通话吗volte手机中文叫什么「iphone8支持高清通话吗」
iPhone 8支持高清通话吗?随着智能手机的不断进化,越来越多的功能成为了用户购买手机时的重要考虑因素。在众多的手机功能中,高
想买性价比高的手机?这些2025年的选择不可错过!新上市手机「想买性价比高的手机?这些2025年的选择不可错过!」
选手机是大多数人都会遇到的难题,尤其是预算有限的时候,怎么才能选到一款性价比超高的手机呢?我们来看看2025年手机市场的变化
手机电子琴键盘弹奏手机版电子琴「手机电子琴键盘弹奏」
手机电子琴键盘弹奏是一款音乐学习类型的软件,用户在这款软件当中可以通过软件来帮助自己进行练习,同时也可以在软件里面选择合
钟睒睒云南“种茶记”,一瓶无糖茶铺出茶农致富路
本文来源:时代财经 作者:李馨婷从云南大理出发,驾车向东南方行驶近2个小时,当高速公路延伸进哀牢山与无量山间时,便到了景东
三星S6和苹果6S哪个好?三星S6和iPhone6S配置参数全对比手机对比参数配置「三星S6和苹果6S哪个好?三星S6和iPhone6S配置参数全对比」
伴随着新款iPhone 6s的正式发布,新一轮的旗舰之战再次拉开帷幕,如果你近期刚好有购买旗舰新机的冲动,在三星Galaxy S6/S6 Edge
OPPO Reno8 8G+256G长沙鸿信通特价促销长沙手机报价「OPPO Reno8 8G+256G长沙鸿信通特价促销」
国内发布会时间2022年05月23日上市日期2022年05月31日手机类型5G,4G手机,3G手机,智能手机,平板手机,拍照手机,快充手机机身
巴喜路手机支架:桌面背贴创意支撑架子隐形手机「巴喜路手机支架:桌面背贴创意支撑架子」
每次看到桌上杂乱无章的手机摆放,是不是觉得特别头疼?今天给大家推荐一款超薄多功能折叠手机支架巴喜路手机支架。它不仅外观简
动漫人物手机端壁纸 · 哆啦A梦哆啦a梦手机壁纸「动漫人物手机端壁纸 · 哆啦A梦」
回复关键词“哆啦A梦”哆啦A梦那些漂亮的小哥哥小姐姐你们去抢好啦~这个蓝胖纸是我的! 希望它从我们的抽屉里钻出来是我们每个人
上海电力:4月1日融券净卖出2.14万股,连续3日累计净卖出2.68万股
证券之星消息,4月1日,(600021)融资买入6394.81万元,融资偿还3485.44万元,融资净买入2909.37万元,融资余额6.58亿元,近20
diskgenius扩容c盘重启电脑卡住_【拯救C盘大作战】电脑C盘老爆红怎么办?苹果手机扩容「diskgenius扩容c盘重启电脑卡住_【拯救C盘大作战】电脑C盘老爆红怎么办?」
驱动哥手把手对症下药帮扩大电脑内存下篇干货内容来啦!!大家都晓得随着系统使用的时间长了,C盘会有各种垃