以下是一些提高 RAG 应用准确率的方法:
「准确」。基于结构化数据RAG避免了数据向量化和语义搜索的问题,直接利用原始数据和LLM的交互,提高了RAG的准确率。因为结构化数据的特征和属性都是明确的,可以用有限的标签集进行描述,可以用标准的查询语言进行检索,因此不会出现信息损失或语义不匹配的情况。而且,LLM只需要根据用户的问题,提取出核心的信息和条件,并形成标准的查询语句,而不需要理解整个文档的语义,因此也减少了LLM的幻觉的可能性。「高效」。基于结构化数据RAG提高了RAG的效率,因为它省去了数据向量化和语义搜索的过程,直接使用标准查询和原始数据进行回复。数据向量化和语义搜索的过程是非常耗时和资源密集的,因为它们需要对海量的文本数据进行处理和计算,而且还需要存储和更新大量的向量数据。而结构化数据RAG只需要对结构化数据进行标准查询,这是一个非常快速和简单的过程,而且结构化数据的存储和更新也比向量数据更容易和更节省空间。「灵活」。基于结构化数据RAG提高了RAG的灵活性,因为它可以适应不同的数据源和查询需求,只要数据是结构化的,就可以用这种方法进行RAG。结构化数据是一种非常通用和广泛的数据格式,它可以表示各种各样的信息和知识,例如表格、数据库、XML等。而且,结构化数据的查询语言也是非常标准和通用的,例如SQL、SPARQL等。因此,结构化数据RAG的方法可以应用于不同的领域和场景,只要将用户的问题转化为相应的查询语言,就可以实现RAG。
上面的章节提到了了很多论文,论文的特点决定了他们的方法更多的是从细节出发,解决具体的细节问题。而RAG是更是一个在工业领域大放异彩的技术,下面我们将从RAG Flow的角度介绍几个行业最佳的RAG实践,看看在真实应用场景下应该如何构建RAG Flow。[heading3]1、OpenAI[content]从OpenAI Demo day的演讲整理所得,并不能完全代表OpenAI的实际操作。在提升RAG的成功案例中,OpenAI团队从45%的准确率开始,尝试了多种方法并标记哪些方法最终被采用到生产中。他们尝试了假设性文档嵌入(HyDE)和精调嵌入等方法,但效果并不理想。通过尝试不同大小块的信息和嵌入不同的内容部分,他们将准确率提升到65%。通过Reranking和对不同类别问题特别处理的方法,他们进一步提升到85%的准确率。最终,通过提示工程、查询扩展和其他方法的结合,他们达到了98%的准确率。团队强调了模型精调和RAG结合使用时的强大潜力,尤其是在没有使用复杂技术的情况下,仅通过简单的模型精调和提示工程就接近了行业领先水平。
其中,她是陈美嘉,这里是人设中的设定。吵架的经过是知识库中的内容。在我提问了之后,大模型去知识库里找到了相关内容,然后回复了我。这就是一个简单的正确回复的demo示例。然而,我们会发现,有时候她的回答会十分不准确。图二明显回答的牛头不对马嘴。图三是知识库截图,其中是有“一菲为美嘉找了一份助教工作”的内容的。但是回答这个问题时,AI并没有根据正确的知识库内容回答。这,就是基于知识库问答中的一个非常常见的错误场景。在其他情况下,甚至有可能出现报价错误、胡编乱造等等。这在严肃场景中,是不能接受的出错。现在应该能够直观的理解,为什么需要让大模型根据知识库回答的更加准确、更符合我们的要求。在AI领域中,优化AI更准确回答问题的过程,有一个更加专业的术语,叫做RAG。接下来,咱们进入正题,一步一步探索,如何优化回答。二、基础概念如果我们要优化幻觉问题和提高准确性,就务必要了解清楚从“问题输入”--“得到回复”,这个过程中,究竟发生了什么。然后针对每一个环节,逐个调优,以达到效果最佳化。因此,我们先深入其中了解问答全貌。[heading3]1、RAG介绍[content]RAG(Retrieval-Augmented Generation),即检索增强生成,是一种结合信息检索和文本生成能力的技术,它由两部分组成:一个“检索器”和一个“生成器”。检索器从外部知识中快速找到与问题相关的信息,生成器则利用这些信息来制作精确和连贯的答案。这种结合使得RAG非常适合处理需要广泛知识的任务,如问答系统,能够提供详细而准确的回答。