微信扫码
与创始人交个朋友
我要投稿
准确地找到与用户查询最相关的信息是RAG系统成功的关键,如何帮助检索系统提升召回的效果是RAG系统研究的热门方向,之前的文章介绍了在分块阶段的优化方法:RAG高级优化:基于问题生成的文档检索增强。本文将介绍三种query理解的方法,以增强检索增强生成(RAG)系统中的检索过程:
查询重写:重新定义查询,使其更加具体和详细。
Step-back提示:生成更广泛的查询,以获得更好的上下文检索。
query转化的优点
RAG系统在检索最相关的信息时经常面临挑战,特别是在处理复杂或模糊的查询时。这些查询转换技术通过重新制定查询以更好地匹配相关文档或检索更全面的信息来解决这个问题。
提升相关性:查询重写有助于检索更具体和相关的信息。
更好的上下文:后退提示允许检索更广泛的上下文和背景信息。
综合结果:子查询分解支持检索涵盖复杂查询的不同方面的信息。
灵活性:每种技术可以单独使用,也可以结合使用,这取决于具体的用例。
示例介绍
方案介绍
方案实现和举例
query_rewrite_template = """You are an AI assistant tasked with reformulating user queries to improve retrieval in a RAG system.
Given the original query, rewrite it to be more specific, detailed, and likely to retrieve relevant information.
Original query: {original_query}
Rewritten query:"""
query_rewrite_prompt = PromptTemplate(
input_variables=["original_query"],
template=query_rewrite_template
)
运行例子:
# example query over the understanding climate change dataset
original_query = "气候变化对环境的影响是什么?"
rewritten_query = rewrite_query(original_query)
print("Original query:", original_query)
print("\nRewritten query:", rewritten_query)
效果展示:
Original query: 气候变化对环境的影响是什么?
Rewritten query: 气候变化对各种生态系统的具体影响是什么,包括温度、降水模式、海平面和生物多样性的变化?
2 -退步提示
生成更广泛的查询,以便更好地检索上下文。
# Create a prompt template for step-back prompting
step_back_template = """You are an AI assistant tasked with generating broader, more general queries to improve context retrieval in a RAG system.
Given the original query, generate a step-back query that is more general and can help retrieve relevant background information.
Original query: {original_query}
Step-back query:"""
step_back_prompt = PromptTemplate(
input_variables=["original_query"],
template=step_back_template
)
运行例子
original_query = "气候变化对环境的影响是什么?"
step_back_query = generate_step_back_query(original_query)
print("Original query:", original_query)
print("\nStep-back query:", step_back_query)
效果展示:
Original query: 气候变化对环境的影响是什么?
Step-back query: 气候变化的一般影响是什么?
3-子查询分解
将复杂查询分解为更简单的子查询。
subquery_decomposition_template = """You are an AI assistant tasked with breaking down complex queries into simpler sub-queries for a RAG system.
Given the original query, decompose it into 2-4 simpler sub-queries that, when answered together, would provide a comprehensive response to the original query.
Original query: {original_query}
example: What are the impacts of climate change on the environment?
Sub-queries:
1. What are the impacts of climate change on biodiversity?
2. How does climate change affect the oceans?
3. What are the effects of climate change on agriculture?
4. What are the impacts of climate change on human health?"""
subquery_decomposition_prompt = PromptTemplate(
input_variables=["original_query"],
template=subquery_decomposition_template
)
运行例子:
original_query = "气候变化对环境的影响是什么?"
sub_queries = decompose_query(original_query)
print("\nSub-queries:")
for i, sub_query in enumerate(sub_queries, 1):
print(sub_query)
效果展示:
Sub-queries:
Original query: 气候变化对环境的影响是什么?
1. 气候变化如何影响生物多样性和生态系统?
2. 气候变化对海洋环境和海洋生物有什么影响?
3. 气候变化如何影响天气模式和极端天气事件?
4. 气候变化对陆地环境,如森林和沙漠有什么影响?
如果对内容有什么疑问和建议可以私信和留言,也可以添加我加入大模型交流群,一起讨论大模型在创作、RAG和agent中的应用。
好了,这就是我今天想分享的内容。如果你对大模型应用感兴趣,别忘了点赞、关注噢~
往期推荐
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-09-20
【GoMate框架案例】讯飞大模型RAG智能问答挑战赛top10 Baseline
2024-09-20
融合ChatGPT o1与TRIZ以解决复杂技术问题
2024-09-20
快手B端商业化技术探索:基于LLM构建智能RAG与Agent平台
2024-09-20
Agent+RAG+大纲驱动,AI创作新风暴
2024-09-20
RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验
2024-09-20
HippoRAG:模拟大脑记忆思索机制的 RAG
2024-09-20
在长上下文LLM的时代,RAG是否仍然必要?
2024-09-18
Golden-Retriever:提升工业知识库检索准确性
2024-07-18
2024-07-08
2024-07-09
2024-06-20
2024-05-05
2024-07-09
2024-06-13
2024-07-07
2024-07-07
2024-07-14
2024-09-20
2024-09-16
2024-09-12
2024-09-11
2024-09-10
2024-09-09
2024-09-07
2024-09-04