-
Notifications
You must be signed in to change notification settings - Fork 116
Description
2024
Click me
2014/01
RAG“新手村”速通攻略:RAG的2-stage优化核心策略及主流方案
Click me
RAG优化核心策略主要基于Information Retrieval的2-stage经典思路展开:即同时保证高召回率和精度。2-stage在基础RAG策略上进行升级,包含两个阶段:
精度:The signal to noise ratio of retrieved context
召回率:Retrieved information to all the relevant information required to answer the question
第一阶段:最大化召回率(High Recall),同时接受较低的精度( Low Precision)。此阶段涵盖RAG的Indexing和Retrieval部分(为了区别于一般意义上的Retrieval,我们改称该部分为Recalling),其目标是使用较为快速、低廉的方式覆盖全部输入文档,并保证问题相关的文档切片都可以被召回。
第二阶段:提升精度(Higher Precision)。此阶段由新增的Reranking部分构成,其目的是在切片文档被获取后进行“Postprocessing”,以提升Top_K的精度,降低送往大模型文档切片的噪声。
在11月的开发者大会上,OpenAI展示了2-stage策略的效果。经过2-stage改造,OpenAI RAG系统的准确率从45%提升到98%(图3):
在53%的准确度提升中,约44%的提升来源于针对Indexing、Recalling和Reranking这三个部分的优化。由此可见,针对这三部分的优化是RAG优化的核心。
2-stage在Recalling、Indexing和Reranking等三个部分至少存在9个优化点位(图4)。每个点位都包括N个技术实现,此外,点位的组合又会产生多种优化方案,非常容易让新手眼花缭乱,陷入实现细节。
所以,在方案选择上,我们建议采用“Top-Down”策略。首先,依据实际业务需求厘清优化目标,明确要在哪一个或者多个部分实现优化。Recalling、Indexing和Reranking三部分优化目标分别如下:
- Recalling的目标是完善Query以取得更高的召回率;
- Indexing的优化目标是在提升召回率的同时保证语义完整性;
- Reranking的优化目标是保证Top_K的精度。
其次,根据优化目标,选择不同类型的方案或方案组合。
下述内容列举了一些当前比较主流的方案及其优化目标:
- Standard 2-stage由基础RAG策略 + Reranking环节构成。该方案中最重要的是Reranker(也称为cross-encoder,由大模型或者算法实现),其能够在召回的切片之上,基于相关性对切片进行重排,以保证返回最相关的n个切片。
以下是Rerank的大模型实现方式:
- 商业模型 - Cohere AI[2];
- 开源模型 - bge-reranker[3]。
- Question Transformation[4]是通过改写、拓展和丰富问题的语义以提升召回率。当前比较流行的方案包括:
- Rewrite-Retrieve-Read:使用大模型改写问题;
- Step Back prompting:使用大模型产生问题的“Step-back Question”,并将问题和Step-back一同用于召回;
- Follow Up Questions:将历史对话记录融入当前问题进行召回;
- Multi Query Retrieval:使用大模型基于原始问题,从不同角度产生多个新问题,并使用每一个新问题进行召回;
- HyDE[5]:使用大模型产生问题的Hypothetical答案,并将问题和答案一同用于召回。
- RAG-Fusion[6] 结合Multi Query Retrieval 和基于Reciprocal Rank Fusion (RRF)[7]算法的Reranker,通过产生多个问题变种、进行多次召回,再用RRF算法进行合并和排序来提升召回率和精度。其主要流程如下:
RAG-Fusion兼备2-stage和Query Transformation的优点,且不需要大模型来进行Reranking,是当下热度较高的方案。
- Hybrid Search[8] 同时执行Keyword Search和Vector Search,并使用RRF算法合并、并重排两种不同检索的结果(图8)。相较于Vector Search,Keyword Search更善于:
- 精准匹配,例如产品名称和人名;
- 仅匹配几个字符;
- 匹配低频度词汇。
BM25[9]是Keyword Search的核心算法,该算法估算Keyword与文档之间的相关性,已经被广泛应用于搜索系统,其特点是可以高速完成对海量文档的覆盖。
此外,相当多的Vector Store,例如Pinecoine、TencentVectorDB等,已经原生支持Hybrid Search,通过调整参数即可调整Hybrid Search中Keyword Search和Vector Search的比例。
5.Small-to-Big采用分离索引和内容的方式以提升Vector Search的完整性。该类方案通常通过一小段索引(节点)关联到一大块完整的切片,以小切片搜索的精确度驱动大切片内容的完整性。Small-to-Big有如下实现:
- Sentence-window retrieval[10]:索引句子,关联到句子的上下文;
- Auto-merging retrieval[10]:通过子节点递归关联父节点;
- Multiple-Vector Retriever[11]:通过切片的Summary,找到存储在Doc Store中的切片原文。
6.Question Construction[12]是利用Metasearch和Text-to-SQL等技术提升对“结构化”数据查询的准确性。“结构化”数据不仅仅存在于关系型数据中(例如数据库),也存在于非关系型的文本中(例如文本中的数字,年份等)。使用Metasearch和Text-to-SQL可以有效地提升这部分数据的召回率。而鉴于Metasearch和Text-to-SQL都是较为成熟的技术,这里就不一一展开了。
2023
2023-12 ChatGPT Prompt顶级思维框架:LangGPT(附Prompt生成器)
Click me
“LangGPT”的思维框架
RPBGCSWEI 分为9个核心组成部分:
• Role(角色)
• Profile(概况)
• Background(背景)
• Goals(目标)
• Constraints(约束)
• Skills(技能)
• Workflow(工作流)
• Examples(示例)
• Initialization(初始化)
示例prompt:
## Role: 文章改写大师
## Profile
- Author: 几道
- Version: 1.0
- Language: 中文
- Description: 我是一位专业的文章改写大师,擅长根据用户需求,以及提供的原始文章,将文章进行改写,使之更加易读、流畅。通过我专业的改写技巧和语言表达能力,帮助用户生成高质量的文章。
## Background
- 熟练掌握各类文章改写技巧和策略,包括但不限于替换词汇、重组句子、简化句子等方法。
- 对不同领域和行业的文章拥有广泛的理解和阅读经验。
- 注重文章改写后的文章质量和可读性,力求改写后的文章在语言表达和逻辑结构上更加优秀。
## Goals
- 帮助用户改写原始文章,使之更加清晰、准确、易读。
- 提供高质量的句子重组、词汇替换和简化句子等改写技巧,以满足用户的需求。
- 保持改写后文章的原意,并遵循用户对文章改写的要求。
## Constraints
- 严格按照用户的要求进行文章改写,不添加任何不必要的内容或修改原意。
- 不改写任何负面、不当或敏感内容。
- 如果不确定某些细节,会与用户进行沟通并进行确认。
## Skills
- 熟练使用各类文章改写技巧和策略,以提升文章的可读性和流畅度。
- 对不同领域的文章具有一定了解,能准确运用专业术语和行业概念。
- 善于与用户进行沟通和确认,确保改写后的文章符合用户的需求和要求。
## Workflow
1. 与用户充分交流,请求用户提供原文和需求。
2. 分析原始文章的内容和结构,设计合理的文章改写框架。
3. 使用专业的改写技巧和策略,进行文章的句子重组、词汇替换和简化句子等操作。
4. 与用户进行反馈交流,根据用户的意见和建议,对文章进行修改和完善。
## Examples
原文:
标题:带你回味经典,看看影视剧中的那些印象深刻场景
内容:大部分影视剧中,都有一些令人难以忘怀的场景,它们或许是剧情的高潮,或者是角色的情感表达,更或者是背景音乐的加持。这些场景在观众的心中留下了深刻的印象,成为了经典。让我们一起回顾一些影视剧中的那些难以忘怀的场景吧!
改写后:
标题:重温经典瞬间,探索影视剧中令人铭记的场景
内容:影视剧的世界充满了无数令人铭记的时刻。这些瞬间或是剧情的巅峰,展现角色的情感深处,或是背景音乐的完美融合,都为观众带来了难以忘怀的体验。这些精彩场景成为了经典,永存我们的心中。现在,就让我们一起重新探索这些影视剧中令人回味无穷的经典场景吧!
## Initialization
您好,我是一位专业的文章改写大师,很高兴为您提供文章改写服务。请告知您的需求,并提供原始文章,我将根据您的要求和期望进行文章改写,在保持原意的基础上,使之更加易读、流畅。期待与您的合作!









