6、大模型之RAG,即检索增强式生成(Retrieval Augmented Generation)

什么是RAG?

RAG,即检索增强式生成(Retrieval Augmented Generation),是一种结合了检索和生成两种方 法的自然语言处理技术。它利用检索技术从大量数据中快速找到相关信息,然后使用生成技术对这 些信息进行整合和创造,生成高质量的文本。

RAG的作用

  • 提高生成文本的质量和准确性:通过检索技术,RAG可以确保生成的内容基于可靠的信息源,从而提高文本的准确性和质量,减少模型的生成幻觉。

  • 增强生成文本的多样性:RAG可以从多个信息源中检索信息,使得生成文本的内容更加丰富和多样化。

  • 提高生成速度:检索技术可以快速定位到相关信息,从而加快生成过程。

  • 实现长文本生成:RAG可以处理长文本生成任务,因为它可以从多个信息源中检索和整合信息,生成连贯且内容丰富的长文本。

RAG每步难点和要解决的问题

1、首先是数据提取。

这一步的核心是要把各种结构化,非结构化数据能提取出来,用于后面的处理。这里的复杂度主要是:

1.1 文件格式复杂,以 pdf 为例子,不光有文字,还夹杂有图表,图片里面又有文字。

1.2 文件有上下文,要把上文相关的元信息提取出来,后面就更容易处理。如果不提取元信息,那下一步数据分块,就容易切分错误。

2、其次数据索引。

这一步做好文档的切分, embedding 模型,把文件 embedding 成向量,才可以把向量存到向量数据库里面去。这里的难点又有两个:

2.1 数据切分,过大,过小都会有问题

### 使用大模型RAG增强知识图谱检索 #### 方法概述 为了提升知识图谱的检索效率准确性,可以采用基于Retrieval-Augmented Generation (RAG) 的方法。这种方法结合了密集向量索引技术生成预训练模型的优势,在处理复杂查询时表现出色[^1]。 #### 实现细节 具体来说,Graph RAG 技术将整个知识图谱视为一个巨大的词汇表,其中每个实体关系都被当作独立词条来对待。这种设计允许系统在执行检索操作期间把实体及其关联的关系作为一个整体来进行考虑,从而提高了上下文理解能力连贯性[^2]。 当接收到用户提出的自然语言形的问题后: - **编码阶段**:利用BERT或其他类似的双向Transformer架构对输入文本进行编码得到固定长度的表示; - **检索阶段**:根据上述获得的语义特征从预先构建好的知识图谱数据库里挑选出最有可能包含答案的部分;此时会特别关注那些与问题中提到的关键概念密切相连的知识片段; - **解码/生成阶段**:最后一步则是调用T5这样的序列到序列转换器完成最终的回答合成工作。它可以根据前面找到的相关资料自动生成一段流畅且准确回应原问句的内容。 以下是简化版Python伪代码展示这一过程的核心部分: ```python from transformers import BertTokenizer, T5ForConditionalGeneration def rag_knowledge_retrieval(query_string): tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = T5ForConditionalGeneration.from_pretrained('t5-small') # 编码阶段 inputs = tokenizer.encode("question: " + query_string, return_tensors="pt") # 假设这里有一个函数可以从KG中检索相关信息并返回top-k条目 retrieved_facts = retrieve_top_k_facts_from_kg(inputs) context = ' '.join([fact['text'] for fact in retrieved_facts]) input_ids = tokenizer( f"context: {context} </s> question: {query_string}", max_length=512, truncation=True, padding='max_length', return_tensors='pt' )["input_ids"] outputs = model.generate(input_ids=input_ids) answer = tokenizer.decode(outputs[0], skip_special_tokens=True) return answer ``` 此段代码展示了如何集成现有的Hugging Face Transformers库中的组件来创建一个简单的RAG框架用于增强型知识图谱检索应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值