We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
图1:RAG的基础方案
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三部分优化目标分别如下:
其次,根据优化目标,选择不同类型的方案或方案组合。
下述内容列举了一些当前比较主流的方案及其优化目标:
以下是Rerank的大模型实现方式:
RAG-Fusion兼备2-stage和Query Transformation的优点,且不需要大模型来进行Reranking,是当下热度较高的方案。
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有如下实现:
6.Question Construction[12]是利用Metasearch和Text-to-SQL等技术提升对“结构化”数据查询的准确性。“结构化”数据不仅仅存在于关系型数据中(例如数据库),也存在于非关系型的文本中(例如文本中的数字,年份等)。使用Metasearch和Text-to-SQL可以有效地提升这部分数据的召回率。而鉴于Metasearch和Text-to-SQL都是较为成熟的技术,这里就不一一展开了。
“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 您好,我是一位专业的文章改写大师,很高兴为您提供文章改写服务。请告知您的需求,并提供原始文章,我将根据您的要求和期望进行文章改写,在保持原意的基础上,使之更加易读、流畅。期待与您的合作!
ReAct: Synergizing Reasoning and Acting in Language Models
The text was updated successfully, but these errors were encountered:
为什么优化LLM很难
本次演讲的目的
上面两张图,优化不是线性的,而是从两个方面去优化,context和llm。
一个典型的优化流程
改进示例
RAG的基本流程
注意这里HyDE效果不好,FT Embedding有效果,但是太花钱了
上面这些方法都是针对如何获得context的,还没有涉及到finetune,效果已经有了98%。
下面是一个需要警惕的情况
回答是一首歌,看似是出现了幻觉
但其实不是幻觉,因为context里有相关的文档。
整个RAG里容易出错的地方太多了,检索可以出错,llm可以出错。这也是为什么我们需要使用恰当的指标对不同容易出错的地方进行评价。这里提到了ragas的4个评价指标。
下面是使用FT后成功的效果
使用FT的注意事项(哈哈,训练语料很重要的)
下面是FT的步骤
FT的best practices
FT+RAG的优点
使用了GPT4进行FT,结果也才84。。还是RAG容易出效果啊
Sorry, something went wrong.
BrambleXu
No branches or pull requests
2024
Click me
2014/01
RAG“新手村”速通攻略:RAG的2-stage优化核心策略及主流方案
Click me
图1:RAG的基础方案
RAG优化核心策略主要基于Information Retrieval的2-stage经典思路展开:即同时保证高召回率和精度。2-stage在基础RAG策略上进行升级,包含两个阶段:
第一阶段:最大化召回率(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三部分优化目标分别如下:
其次,根据优化目标,选择不同类型的方案或方案组合。
下述内容列举了一些当前比较主流的方案及其优化目标:
以下是Rerank的大模型实现方式:
RAG-Fusion兼备2-stage和Query Transformation的优点,且不需要大模型来进行Reranking,是当下热度较高的方案。
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有如下实现:
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(初始化)
2023-07 我为什么放弃了 LangChain?
Click me
ReAct: Synergizing Reasoning and Acting in Language Models
(ReAct 论文中的 ReAct 流示例)The text was updated successfully, but these errors were encountered: