RAG
文章平均质量分 77
水的精神
一件事,要么不做,要么做到极致。
展开
-
Text2sql的一些技巧
最近看到了一篇关于text2sql的文章,以及一些论文。对使用模型做text2sql给了一些不错的建议。原创 2024-04-17 16:20:59 · 298 阅读 · 0 评论 -
一些Github上开源的RAG 应用
我也是做RAG相关工作的。周末抽了一些时间,来看看开源的RAG技术能够做到什么程度。其实我重点关注的是以下几点(以下几个点是RAG提升的关键点):这些开源技术他们是怎么做文档解析的(有哪些我们可以借鉴的,哪些是我不知道的)如何做切分的不同的场景数据又是如何制定不同的策略的还有如何做召回的,召回策略是什么?以及如何选用embedding模型,rerank模型效果怎么样,本地快速部署效果是否方便?原创 2024-04-14 18:44:21 · 957 阅读 · 0 评论 -
PDF文件底层数据结构
最近在做RAG的雕花工作。想要在PDF解析上,能够有一定的突破。上上周调研了一周的PDF解析的组件。但是还是没有一个开源的解析的很不错的组件。这篇文章,一起来看看是否能从PDF文件的底层数据结构上入手,来进行解析。PDF(Portable Document Format,可移植文档格式)是一种广泛使用的文件格式,用于呈现文档,包括文本、图像和多媒体内容。PDF文件的存储原理和结构设计得非常复杂,以确保跨平台的一致性和高效的文件传输。原创 2024-03-17 15:52:22 · 1212 阅读 · 0 评论 -
文档解析应该获取哪些知识?
在数字化时代,PDF文档已成为信息共享的主要格式之一。然而,要从PDF中提取有价值的知识并不容易,因为PDF设计为一种用于阅读和打印的静态格式,而不是为了内容的动态提取和分析。尽管如此,随着技术的进步,我们现在有能力从PDF文档中提取比以往任何时候都更多的内容和知识。以下是一篇关于从PDF文档中提取知识的全面指南,包括可以挖掘的数据类型和一些实用的方法。原创 2024-03-17 14:16:51 · 947 阅读 · 0 评论 -
检索增强生成(RAG)应用的构建:LangChain与LlamaIndex的比较与选择
对于我要做RAG应用,我应该使用两者中的哪一个。或者说还是都使用?在人工智能领域,检索增强生成(RAG)应用正变得越来越受欢迎,因为它们能够结合大型语言模型(LLMs)的自然语言处理能力和私有或专有数据源的丰富信息。在构建RAG应用时,开发者面临的一个重要选择是选择合适的工具或框架。本文将探讨两个流行的工具:LangChain和LlamaIndex,并提供决策指南。原创 2024-03-17 13:25:36 · 1424 阅读 · 0 评论 -
获取PDF中的布局信息——如何获取段落
PDF解析是极其复杂的问题。不可能靠一个工具解决全部问题,尤其是五花八门,格式不统一的PDF文件。除非有钞能力。如果没有那就看看可以分为哪些问题。 提取文本内容,提取表格内容,提取图片。我认为这些应该是分开做的事情。python有一些组件,是有专长的。 问题分解以后,最重要的一个事情是,版面分析。怎么确定边界,就是哪一块是什么内容?是正文,还是表格,还是图片?文本、图片及形状涵盖了常见的PDF元素,本文介绍利用PyMuPDF提取这些页面元素,及其基本数据结构。原创 2024-02-29 13:19:00 · 1143 阅读 · 0 评论 -
PDF 解析问题调研
说点真实的感受:网上看啥组件都好,实际测,啥组件都不行。效果好的不开源收费,开源的效果不好。测试下来,发现把组件融合起来,还是能不花钱解决问题的,都是麻烦折腾一些。 这里分享了目前网上能够看到的资料。很多资料都是反复重复的,且效果不好的。目前网上基本没有太好用的工具,也没有太好的方案资料。剩下的就是收费效果好的。原创 2024-02-28 19:54:04 · 1591 阅读 · 0 评论 -
分享一点PDF中获取表格的探索过程
挑选了可以解析PDF中表格的组件,进行了测试。主要测试了pdfplumber 和camelot整体的感受是:网上看啥组件都好,实际测,啥组件都不行。效果好的不开源收费,开源的效果不好。测试下来,发现把组件融合起来,还是能不花钱解决问题的,都是麻烦折腾一些。原创 2024-02-28 19:46:26 · 529 阅读 · 0 评论 -
如何使用程序通过OCR识别解析PDF中的表格
一、Paddle-structure是目前我们能找到的可以做中英文版面分析较好的一个基础模型,其开源版可以识别十类页面元素。这篇文章介绍演示如何使用。pdf的解析大体上有两条路,一条是基于规则,一条是基于AI。所谓基于规则就是根据文档的组织特点去“算”每部分的样式和内容。笔者认为这种方式很不通用,因为pdf的类型、排版实在太多了,没办法穷举。一、Paddle-structure。原创 2024-02-27 20:03:14 · 1259 阅读 · 0 评论 -
如何准确获取PDF文件中的标题
想要在PDF文件中,解析获取全部的标题,是一件比较麻烦的事情。正是因为PDF文件中的内容可能是五花八门的格式。但是获取标题信息,又是一件非常重要的事情。标题中往往蕴含着非常多的概括性信息。本文将介绍一种较为准确的提取标题的方式。使用python组件+LLM。本文会给出调试后的可运行代码,以及prompt,还有运行结果。原创 2024-02-27 12:35:39 · 1334 阅读 · 2 评论 -
RAG中如何解决上下文知识连贯性问题 || 如何更好的切分和组织非结构化的文档数据
本文探讨了在RAG中进行搜索时的难度级别及其解决方法。对于容易级别,主要涉及解决搜索问题,而对于困难级别,则需要考虑上下文和复杂性。文中根据斯坦福论文提出了解决这些问题的方法,包括从段落中获取总结性问题的答案,以及利用树形结构组织数据来解决上下文关联问题。原创 2024-02-23 17:30:24 · 1081 阅读 · 0 评论 -
Query Rewrite —— 原始query蒸馏,提升召回率,和召回质量
query改写其实理解起来很简单,就是把原始的query经历一系列的操作,然后变成另外一个query,从而达到提升召回率和准确率的效果。query改写的过程中,这一系列的操作,其实是围绕两个方面展开的。第一是在原始query中添加一些有用的内容(可以理解为query扩展),把本该召回却没有召回的内容给召回,提高topK的召回率。第二是在原始query中去掉一些杂质内容(可以理解为蒸馏),对于长尾的query,很可能存在很多的干扰项。特别是在Bm25相关性召回下,对query条件进行蒸馏,会有一定的收益。原创 2024-02-22 13:26:01 · 318 阅读 · 0 评论 -
用十篇论文聊聊关于使用LLM做query Rewrite的问题
本文介绍了query改写。介绍了七种利用LLM进行query改写方式。包含了10余篇论文,论文有的出自微软、谷歌等大厂之手,还有北大,人大等高校。质量有所保障,对比了不同的query改写的效果。原创 2024-02-21 19:11:44 · 1974 阅读 · 0 评论 -
Query Rewrite —— 基于大模型的query扩展改写,HyDE 生成假设性答案(论文)
通常用户的query是无法预测的。给定一个候选集,直接命中和query最相关的文档是一件困难的事情。这篇论文中,提出了HyDE,也就是根据query,利用LLM去生成假设性回答。然后将给出的假设性回答,去做文本的embedding,然后做向量检索召回。论文中证明,HyDE这种方式相比较BM25可以。原创 2024-02-21 16:29:25 · 650 阅读 · 0 评论 -
Query Rewrite —— 基于大模型的query扩展改写,PRF(论文)
本文介绍了一篇典型的 PRF (Pseudo-relevance feedback)思路的论文,用于利用LLM来做query改写,提升召回率,召回效果。为大家介绍PRF的主要流程,PRF的提升效果。PRF的弊端。 以及不同规模的LLM对改写的效果的影响。原创 2024-02-21 15:39:49 · 618 阅读 · 0 评论 -
Query Rewrite —— 基于大模型的query扩展改写,PRF+ GRF协同发力减少LLM的幻觉问题(论文)
(伪相关反馈)为了解决模型的幻觉问题,在改写前,先拿原始query去进行一次query,然后将召回的数据作为参考内容,送给模型,根据这些内容重新生成query。优势:可以一定程度上解决模型幻觉问题,有效解决解决词汇表不匹配问题。毕竟是根据query召回的内容去生成query的。劣势:这将会很依赖首次的检索,如果召回的数据质量很差,就GG了。(生成相关反馈)最近关于生成相关性反馈(GRF)的研究表明,使用从大型语言模型生成的文本的查询扩展模型可以改进稀疏检索,而不依赖于第一次检索的有效性。原创 2024-02-21 11:59:28 · 1114 阅读 · 0 评论 -
搜索中关于稀疏检索和稠密向量检索的召回效果比较
不同检索方式说明最近在做搜索召回提升相关的研究工作。对比了稀疏检索和稠密向量检索的效果。其中使用的搜索引擎为elasticsearch8.x版本。稀疏检索包括BM25的检索方式,以及es官方在8.8之后版本提供的稀疏向量模型的方式。稠密向量检索,是指借助机器学习的模型做文本嵌入,然后用es8.x以后版本提供的向量检索。测试数据说明测试数据包括了中文和英文,涉及了法律和新闻数据。原创 2024-02-20 23:11:33 · 1046 阅读 · 0 评论 -
Query Rewrite —— 基于大模型的query扩展改写,如何减少LLM的幻觉问题,召回提升15%(北大论文)
如何有效的丰富扩展query,是一个提升召回率的关键问题。在大模型时代到来后,大家都开始使用LLM来扩展query。尽管LLM具有显著的文本生成能力,但它也容易产生幻觉,仍然难以代表其训练语料库中包含的完整的长尾知识。在北大的论文中,介绍了通过检索和大模型的结果,提升召回率的方法。论文提出:为了缓解上述模型的幻觉问题,方案是由原始query检索到的文档D,将D提供给模型,作为辅助材料,再让模型生成新的query。先进行一次普通检索,召回数据有可能帮助llm做出更好的预测。原创 2024-02-20 16:06:47 · 996 阅读 · 2 评论 -
Query Rewrite —— 基于大模型的query扩展改写,通过GRM减少LLM的幻觉问题(论文)
自从大模型火了以后,各行业各都发生了翻天覆地的变化。其中query Rewrite也开始使用大模型来做query 扩展。大模型所有的优点都可以得到很好的体现,同样大模型的所有缺点也无法避免。这里只说一个,关于大模型的幻觉问题。如果使用大模型来生成改写query,幻觉问题,会非常糟糕的变成噪音query数据,而影响了最终的查询的召回,甚至是南辕北辙。这篇论文提出,建设相关性评估模型,来过滤掉模型生成的负面的case。从而减少使用大模型做query Rewrite的时候的负面影响。的。原创 2024-02-20 10:44:34 · 571 阅读 · 0 评论 -
Query Rewrite —— 基于大模型的query扩展改写,综合考虑上下文信息(人大论文)
在session上下文中,捕获用户的搜索意图,是一件较为复杂和困难的事情。一起看一下人大的这篇论文。论文中提出了一个简单而有效的提示框架,称为LLM4CS,以利用LLM作为搜索意图解释器来促进会话搜索。具体来说,我们首先提示LLM在多个视角下生成较短的查询重写和较长的假设响应,然后将这些生成的内容聚合成一个集成的表示,以稳健地表示用户的真实搜索意图。原创 2024-02-19 17:44:33 · 1361 阅读 · 1 评论 -
Query Rewrite —— 基于大模型的query扩展改写(基于思维链),召回提升3%
查询扩展是一种广泛应用于提高搜索系统召回率的技术。在本文中,我们提出了一种利用大型语言模型(llm)的生成能力的查询扩展方法。与传统的查询扩展方法,如伪相关反馈(PRF),它依赖于检索一组好的伪相关文档来扩展查询不同,我们依赖于LLM的生成和创造性能力,并利用模型中固有的知识。我们研究了各种不同的提示,包括零射击、少射击和思维链(CoT)。我们发现CoT提示对于查询扩展特别有用,因为这些提示指示模型逐步分解查询,并可以提供大量与原始查询相关的术语。原创 2024-02-19 11:33:06 · 1689 阅读 · 0 评论 -
Query Rewrite —— 基于大模型的query扩展改写,召回提升3%-15%
本文介绍了一种简单而有效的查询扩展方法。通过大语言模型(LLM)的小样本提示生成答案,然后和原始query进行拼接,作为新的query。实验结果表明query2doc 通过以下方式提高了 BM25 的性能3% 到 15%。原创 2024-02-18 18:18:01 · 881 阅读 · 0 评论 -
RAG 排坑指南001——文档解析
RAG搜索增强是一个极其简单的概念。简而言之就是将搜索召回的内容,送给模型润色,重新生成更好的答案。看似简单,实际做起来,就极其的复杂。想要做个演示demo也很简单,复杂的是如何把回答正确率提升到90以上。RAG中的问题非常之多。并且问题环环相扣。例如,如果文档解析做不到,就不可能在召回的阶段将内容准确的召回(也就是召回率低)虽然可以通过扩大topK来尽可能的提升召回率,但是假如在解析的过程中数据丢失了。是无论如何都找回不到的。如果无法召回,正确的答案就无法送给模型,自认而然就无法回答正确。原创 2024-02-18 15:26:30 · 650 阅读 · 0 评论 -
如何构建Prompt,帮我生成QA,作为召回率检索的测试集?
最近在做搜索召回率的提升工作。粮草未动兵马先行!在做之前应该先有一把尺子来衡量召回率的好坏。所以应该先构建测试数据集,然后去做标准化测试。有了测试机集以后。再去做搜索优化,才能看出来效果。当然可以选择一些开源的测试集。如果可以的话构建自己场景下的数据集更好一些。还原生产环境的测试数据才是最有用的。既然有了大模型,我选择用模型来给我构建测试数据。(人工标注数据的成本是极高的,使用模型更划算一些。)在这篇文章中,我会分享如何通过写Prompt,来帮我构建数据集。原创 2024-01-11 20:31:13 · 1240 阅读 · 0 评论 -
llama_index 创始人为我们展示召回提升策略(提升15%)
看看 llama_index 创始人是如何将召回效果提升15%的,简单来讲就是句向量和数据分层。原创 2024-01-11 13:27:10 · 815 阅读 · 0 评论 -
密集检索:我们应该使用什么样的检索粒度?(如何提升召回率)
本文探讨了不同检索粒度在密集检索和下游任务中的性能影响,并重点介绍了新提出的命题检索单位。通过实证比较,发现基于命题的检索在密集检索中显著优于传统的句子检索单位,并可显著提高下游问答任务的性能。命题检索单位具有精确性、简洁性、可扩展性和交互性等优点。相较于常用的段落或句子检索,命题作为原子级信息载体,以其简洁、自包含的特性,能够更精准地提炼文本中的关键事实信息。通过在多个开放领域问答数据集上对比不同检索粒度下的检索模型性能,实验结果显示命题检索在提高检索召回率和下游问答任务准确度方面均优于传统方法。原创 2024-01-10 13:41:25 · 1036 阅读 · 0 评论 -
OpenAI 是如何一步一步把RAG做到98%的准确性得
一起来看看Open官方的演讲,他们是如何把RAG从45%的准确性做到98%的。原创 2024-01-09 13:36:19 · 695 阅读 · 0 评论 -
RAG 最新最全资料整理
最近在做RAG方面的工作。它山之石可以攻玉,做了一些调研,包含了OpenAi,百川,iki.ai为我们提供的一些实现方案。本文以时间顺序,整理了最近最新最全的和RAG相关的资料。都是满满的干货,包含了RAG评测工具、各个巨头的优质文章、还有OpenAi的演讲视频、还有综述性论文。希望对做RAG又不知道如何做好RAG的同学们有帮助。RAG测评工具时间RAG时间:作者是iki.ai的联合创始人兼CEO原文链接(英文)百川RAG时间 :优质综述论文讲清楚什么是RAG,全貌是什么样的。原创 2024-01-09 13:02:13 · 1196 阅读 · 0 评论 -
如何做好chatFile?如何做RGA?
向量语义检索,跟具有普适性,用户的问法可能和文档中的内容描述方式不一样,此时语义检索可以发挥好的作用。而BM25在用户输出的内容和文档强相关的时候,往往能获取到更好的效果,例如用户问题中的诸多关键词,都在原文中出现了,往往召回效果会比向量语义检索更好。很短的词语在向量模型中,会丢失语义,因为在embedding的时候,就是用段落做的embedding。暂时认为回答多的正确。然后把问题,和回答不对的结果,回答正确的结果,做比对。目前在问题生成上,存在较多的问题,经常发现,模型自己给的问题,无法正确回答!原创 2023-12-26 20:09:25 · 858 阅读 · 0 评论 -
RAG 全链路评测工具 —— Ragas
RAG是目前比较火热的一个概念。对应的应用如雨后春笋般涌出。我们在实际的探索中,可能会有各种各样的优化方案。但是优化是否有用呢?模型影响会有多大呢?我们需要一把尺子,来做全链路的衡量。才能够得出,到底应该朝哪个方向走。自动化评估大模型增强检索RAG方案的好坏,实现基于场景数据选择大模型增强检索框架、embedding算法、大模型底座等,从而更好服务业务。这里提供一个全链路评测工具ragas。这里提供了所有的链接。因为官方提供的文档已经飞非常全了。我会提供对应的gitbub地址,讲解视频,文档等。原创 2024-01-08 20:41:39 · 1189 阅读 · 0 评论 -
RAG——如何选择文本embedding模型
想要做语义检索,迫切需要embedding模型来做文本的嵌入。也就是转向量。huggingface上那么多text embedding模型,到底应该选择什么模型效果更好呢?有条件的可以自己测试,如果不具备这个能力,可以看看这个排行榜!可以根据自己的场景,自己的资源,自己的语言需求来选择合适的模型,再去做测试,看看是否能够满足。原创 2024-01-07 14:30:21 · 766 阅读 · 0 评论