01. RAG初步了解

1. Why rag

  大型预训练语言模型经过fine-tuning应用在下游NLP任务中表现良好,但是在知识密集型任务中表现不佳,甚至出现“幻觉”问题。同时,大模型也不能提供做出决策的信息源和及时更新最新知识。因此提出了RAG(Retrieval Augmented Generation),通过外部知识库来解决大模型的幻觉问题。

2. What rag

 用户输入Query --> Query语义向量化 --> 在向量数据库中检索找到相关知识片段 --> 构建Prompt: {Query + 相关上下文} --> 交给大模型生成回复 --> 返回最终回答

3. How rag

3.1 文件内容提取

  将资料文档如:txt、docx、xlsx、pptx、jpg、png等的文本内容提取出来。

3.2 向量数据库

  将提取到的文本内容,切分为chunk知识块,并将知识块文本存入向量知识库。

3.3 根据用户Query召回向量库的知识

  一般是混合召回:通过ElasticSearch(bm_25算法)工具,稀疏召回知识;通过embedding模型密集召回向量库中的知识;

3.3 大模型提示词

示例:

## 角色
你是一名经验丰富的xx领域专家,擅长通过用户提供的文本来回答用户的问题。

## 要求
1. 严格根据用户提供的文本来回答问题,直接输出回答结果,禁止输出无关内容。
2. 如果用户提供的文本内容和问题不相关,则直接回答不知道,禁止回答其它内容或胡乱回答。

## 工作流
1. Think step by step。
2. 理解用户问题,并根据用户提供的文本内容回答。
3. 如果能够根据文本内容来回答问题,则直接输入答案,否则直接回答不知道。


用户提供的文本内容:{{context}}
用户的问题: {{query}}
你的回答:

4. 优化

4.1 提高回答准确率

  1. 预存问答对,先通过预存问答对回答,然后通过rag保底。
  2. rerank调优

4.2 减小响应时间

  1. 缓存召回结果
  2. 加速推理,加资源。
posted @ 2025-05-20 00:08  橘子葡萄火龙果  阅读(33)  评论(0)    收藏  举报