RAG的介绍

RAG简介:
        RAG 是 “Reduced Instruction Set Computer” 的缩写,中文翻译为“精简指令集计算机”。它是一种计算机架构,旨在通过减少指令集的数量来提高性能。在 RAG 架构中,每条指令都执行相对简单的操作,并且使用非常标准的格式。这使得 RAG 处理器可以更快地执行指令,并且通常比复杂指令集计算机(CISC)更加节能。

1. RAG技术主要解决了什么问题

        解决通用LLM针对一些小众领域没有涉猎的问题

        提升LLM回答的准确性、权威性、时效性

        提高LLM回答的可控性和可解释性,提高模型的可信度和安全性

2. 什么是Rouge指标

        ROUGE 指标的全称是 (Recall-Oriented Understudy for Gisting Evaluation),主要是基于召回率 (recall) 的。ROUGE 是一种常用的大模型评价指标,由 Chin-Yew Lin 提出,其在论文中提出了 4 种 ROUGE 方法:

        ROUGE-N: 在 N-gram 上计算召回率 ROUGE-L: 考虑了机器译文和参考译文之间的最长公共子序列 ROUGE-W: 改进了ROUGE-L,用加权的方法计算最长公共子序列 ROUGE-S: 即使用了skip-grams,在参考摘要和待评测摘要进行匹配时,不要求gram之间必须是连续的,可以“跳过”几个单词

3. 针对通用的RAG,有哪些改进点?

        优化query:做query的纠错、改写,规范化和扩展

        对向量数据库做层次索引,提高检索效率和精度

        对LLM模型微调,针对当前垂直领域引入知识库,提升回答的专业性、时效性和正确性

        对最终输出做后处理,降低输出的不合理case

4. RAG增强检索概念

        RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合了信息检索和自然语言生成的方法,旨在提高自然语言处理任务中的信息检索和生成能力。以下是关于RAG增强检索概念的详细解释:

        RAG的核心原理:

        信息检索:从大量的文本数据中检索与查询相关的信息。

        自然语言生成:根据检索到的信息生成符合用户需求的自然语言文本。

RAG的作用

        提高信息检索的准确性和效率:通过结合检索和生成的方法,RAG可以更准确地理解用户的查询,从而更精确地检索相关信息。

        生成更贴近用户需求的自然语言文本:利用检索到的信息作为上下文,RAG可以生成更符合用户意图和需求的自然语言文本。

        提供更全面的文本处理能力:结合检索和生成的优势,RAG能够处理更复杂的自然语言处理任务。

        RAG的三个阶段

        (1)、提取阶段

        (2)、检索阶段

        (3)、生成阶段

        对输入查询进行理解和解析。

        使用索引和检索算法从文本数据中提取相关内容。

        目的是准确地捕获与查询相关的信息片段。

        使用提取阶段得到的信息进一步检索相关的文本片段或信息。

        可能涉及不同的检索策略和参数,以确保检索到的信息与用户查询相关且准确。

        利用检索到的信息,结合自然语言生成模型(如大型语言模型),生成符合用户需求的自然语言文本。

生成的文本结果会利用检索到的信息作为上下文。

避免针对特定任务再次进行训练:通过集成外部知识库,RAG可以处理不同的自然语言处理任务,而无需为每个任务重新训练模型。

优化模型输出效果:用户可以额外附加外部知识库,丰富输入,从而优化模型的输出效果。 减少模型幻觉:通过结合外部知识库,RAG能够生成更准确、更符合上下文的答案,减少模型生成的错误或不正确内容。

减少模型幻觉:通过结合外部知识库,RAG能够生成更准确、更符合上下文的答案,减少模型生成的错误或不正确内容。

5. 应用场景

        RAG技术在知识密集型NLP任务中表现出色,如问答系统、文本摘要、对话系统等。在这些任务中,RAG能够提供更准确、更全面的文本处理能力,满足用户的不同需求。

RAG的流程如下:

- 1文档加载

- 2文档分割

- 3文档向量化

-4构建知识库

- 5基于知识库的问答

6. 什么是RAG技术,技术架构是什么?

        RAG(Retrieval Augmented Generation),即检索增强生成技术,是LLM(Large Language Model)的增强技术,通过检索的方式,将文档中的信息引入到LLM中,从而实现对文档的检索和理解。

技术架构如下

文档加载->文档分块->文本向量化->构建知识库->query向量化->向量检索->生成Prompt->prompt提交LLM->输出结果

### NebulaGraph RAG介绍 NebulaGraph实现了基于知识图谱的检索增强生成(RAG),这有助于利用领域特定的知识来提高模型输出的质量和准确性[^1]。具体来说,当涉及到复杂查询或是需要高度专业知识的任务时,通过集成知识图谱中的结构化信息,能够有效减少AI系统的幻觉现象。 #### 基于知识图谱的RAG工作原理 在实现上,NebulaGraph发布了业界首个此类解决方案——即基于知识图谱的RAG功能。这一特性允许用户不仅限于传统的文本匹配方式来进行数据检索,而是可以通过关联实体之间的关系网络获取更精准的结果集[^2]。 对于开发者而言,这意味着可以在应用程序中轻松嵌入强大的语义理解和推理能力;而对于最终使用者,则可以获得更加贴合实际需求的信息推荐服务。 #### 使用案例分析 为了更好地理解如何应用这些技术,在官方文档中有两个具体的演示可供参考: - **Graph RAG vs Vector RAG**: 展示了两种不同类型的向量索引方法之间性能差异的同时,也突出了前者在处理具有明确模式的数据上的优势; - **Text2Cypher Visual Comparison**: 提供了一个直观的方式让用户看到自然语言查询是如何被转换成针对图数据库的有效命令序列,并执行相应操作的过程。 ```python from nebula3.gclient.net import ConnectionPool from nebula3.common.ttypes import Vertex, Edge # 连接到NebulaGraph实例并创建会话 connection_pool = ConnectionPool() session = connection_pool.get_session('root', 'password') # 执行Cypher风格的查询语句以展示RAG效果 result_set = session.execute( "MATCH (n)-[r]->(m) WHERE n.name='example' RETURN r LIMIT 10" ) for row in result_set.rows(): edge = row.columns()[0].get_edge() print(f"{edge.src_vertex_id} -> {edge.dst_vertex_id}") ``` 此代码片段展示了连接到NebulaGraph服务器并通过Cypher样式的查询语法进行简单的关系查找过程。虽然这段代码本身并不直接涉及RAG机制的具体细节,但它体现了构建在此基础上的应用程序可能采取的操作形式之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戏羽虞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值