在前面的分享中,我们已经了解了RAG系统的完整流程:从文档加载、文本分块、信息嵌入生成向量,到索引构建存储向量数据库,再到检索阶段根据用户查询匹配到最相似的结果,最后把匹配的结果交给大模型生成最终答案。
从这个流程我们可以构建一个完整的RAG系统,但在实际应用中,只有这些是远远不够的。
为了提高RAG的检索质量,我们还需要做很多优化的工作。除了之前讲到的分块的优化、向量索引的优化,我们还需要对检索前和检索后做很多优化内容。
今天我们主要关注预检索优化环节中第一阶段查询翻译(Query Translation)。

什么是查询翻译?
简单理解就是在真正的检索之前,先对用户查询进行“再加工”,让查询的问题变得更清晰、更准确、更适合机器去理解。
当遇到用户查询问题质量不高,表达内容模糊不清,不能覆盖所需要检索信息的所有方面时,我们就需要采取一系列如查询重写、查询分解和查询扩展等优化策略来改写用户的查询,提升查询嵌入与文档嵌入的相关性,从而达到更精确的检索效果。
查询翻译策略
下面我们详细介绍了几种流行的查询翻译策略:
查询重写(Re-Phrase)
核心思想:直接通过提示词去指导大模型对用户的查询进行重写优化。将口语化、不规范的的查询转换成更适合检索的标准化表达。
优势:当用户使用口语化表达、包含错别字或表述不准确的时候,查询重写可以很容易的提升检索精确度。
from openai import OpenAI
import os
from dotenv import load_dotenv
# 加载.env文件中的环境变量,包括API密钥等敏感信息
load_dotenv()
# 初始化OpenAI客户端,指定DeepSeek URL
client = OpenAI(
base_url="https://api.deepseek.com",
api_key=os.getenv("DEEPSEEK_API_KEY")
)
defrewrite_query(question: str) -> str:
"""使用大模型重写查询"""
prompt = f"""
请将以下用户查询重写为更适合知识库检索的标准化表达:
原始查询:{question}
重写要求:
1. 使用更准确的技术术语和标准表达
2. 明确查询意图,避免歧义
3. 去除口语化表达和冗余词汇
4. 扩展缩写,补充完整信息
5. 保持原查询的核心意图不变
请直接给出重写后的查询(不要加任何前缀或说明)。
"""
# 使用DeepSeek模型重写查询
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": prompt}],
temperature=0,
)
return response.choices[0].message.content.strip()
query = "那个机器学习的东西怎么调参数啊?"
rewritten = rewrite_query(query)
执行结果:
📝 原始查询: 「那个机器学习的东西怎么调参数啊?」
🔄 正在重写查询...
✨ 重写查询: 「机器学习模型超参数调优方法」
多查询(Multi-Query)
核心思想:将用户查询的同一问题生成多种问法。这能生成多样化的查询嵌入,增加命中相关文档的概率,弥补单一问法可能存在的偏差。
优势:可以大幅提高检索精确度,尤其是针对处理模糊和多语义类型的查询问题。

我利用 LangChain 中的 MultiQueryRetriever 实现并记录执行结果。
import os
from dotenv import load_dotenv
from langchain_chroma import Chroma
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_deepseek import ChatDeepSeek
from langchain_huggingface import HuggingFaceEmbeddings
# 加载文档数据
loader = TextLoader("data/txt/糖尿病.txt", encoding="utf-8")
data = loader.load()
# 文本分块
text_splitter = RecursiveCharacterTextSplitter(chunk_size=300, chunk_overlap=50)
all_splits = text_splitter.split_documents(data)
# 向量存储
embed_model = HuggingFaceEmbeddings(model_name="BAAI/bge-small-zh")
vectorstore = Chroma.from_documents(documents=all_splits, embedding=embed_model)
# 设置LLM
llm = ChatDeepSeek(
model="deepseek-chat", temperature=0.1, api_key=os.getenv("DEEPSEEK_API_KEY")
)
# 创建多查询检索器
multi_query_retriever = MultiQueryRetriever.from_llm(
retriever=vectorstore.as_retriever(search_kwargs={"k": 3}), llm=llm
)
query = "糖尿病有什么症状?"
# 使用MultiQueryRetriever进行多查询生成和检索
docs = multi_query_retriever.invoke(query)
执行结果:
🔎 测试查询: 「糖尿病有什么症状?」
🔄 正在生成多个查询并检索...
INFO: HTTP Request: POST https://api.deepseek.com/v1/chat/completions "HTTP/1.1 200 OK"
INFO: Generated queries: ['糖尿病常见症状有哪些表现? ', '糖尿病初期会出现哪些身体信号? ', '如何识别糖尿病的典型临床体征?']
RAG融合(RAG-Fusion)
核心思想:这种方法是一种增强型多查询,在多查询执行检索后使用倒数排序融合 (RRF) 算法,对查询返回的所有文档按相关性统一排序,而非简单合并,旨在为大模型(LLM)提供最优化、最全面的上下文。
优势:相比于简单的合并,它能够更加有效的筛选出最核心、最相关的结果。

查询分解(Query Decomposition)
核心思想:将用户查询拆分成多个子问题,并行或顺序处理。此方法把复杂的查询做了分解简化处理,丰富了检索上下文,从而能生成更细致、准确的答案。
优势:确保复杂问题的各个方面都得到检索,每个子问题都能找到最相关的信息,为LLM提供多维度的背景信息。

回溯提示(Step Back Prompting)
核心思想:当用户查询问题太过具体,将问题抽象成一个更高层次的“后退”问题,然后结合对原始问题和抽象问题的双重检索结果,为模型提供宏观与微观相结合的上下文,以生成更深刻、更全面的答案。
优势:同时获取具体信息和通用背景,提供更全面的知识基础,丰富上下文信息。结合具体细节和整体的理解,防止过度聚焦于狭窄信息。
假设文档嵌入(HyDE )
核心思想:针对不佳的用户查询,先由大模型生成一个理想的“假设答案”。再用这个假设答案的嵌入去检索真实文档,以此提高检索的精准度。
优势:假设答案与目标文档语义更接近,减少查询与文档间的语义鸿沟。生成的假设答案包含更多相关概念,同样丰富上下文信息。
总结
通过本文的介绍,我们深入了解了RAG预检索优化中查询翻译的六大核心策略。这些策略各有特色,适用于不同的应用场景:
- • 查询重写适合处理口语化和不规范表达
- • 多查询能够提高检索的召回率和覆盖面
- • RAG融合通过智能排序提供最优质的检索结果
- • 查询分解擅长处理复杂的多维度问题
- • 回溯提示结合宏观与微观视角提供全面理解
- • 假设文档嵌入有效缩小查询与文档间的语义差距
在实际应用中,我们往往需要根据具体的业务场景和数据特点,灵活组合使用这些策略。比如,对于技术文档问答系统,查询重写和假设文档嵌入可能更为有效。而对于复杂的业务咨询场景,查询分解和回溯提示可能是更好的选择。
普通人如何抓住AI大模型的风口?
领取方式在文末
为什么要学习大模型?
目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。
目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!
最后
只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!
在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

大模型全套学习资料展示
自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!
01 教学内容

-
从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!
-
大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!
02适学人群
应届毕业生: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。

vx扫描下方二维码即可

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!
03 入门到进阶学习路线图
大模型学习路线图,整体分为5个大的阶段:

04 视频和书籍PDF合集

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)

05 行业报告+白皮书合集
收集70+报告与白皮书,了解行业最新动态!

06 90+份面试题/经验
AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)

07 deepseek部署包+技巧大全

由于篇幅有限
只展示部分资料
并且还在持续更新中…
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

387

被折叠的 条评论
为什么被折叠?



