趋近智
检索增强生成(RAG)系统的效用不仅取决于检索到正确的信息;它很大程度上取决于信息如何呈现给大型语言模型(LLM)。提示词是检索到的上下文与生成过程之间的桥梁。编写好这个提示词对于指导LLM生成准确、相关且基于上下文的回答必不可少。
可以将提示词视为您提供给LLM的使用手册。它需要清楚地说明任务,呈现相关证据(即检索到的上下文),并指明如何使用这些证据来满足用户最初的请求。一个结构不佳的提示词可能会使LLM偏离方向,即使检索步骤很成功。它可能忽略上下文,误解用户查询,或未能有效整合信息。
构建RAG提示词的常见起点是将检索到的上下文和原始用户查询组合成一个单一的LLM输入。一个基本模板可能如下所示:
根据以下上下文:
[CONTEXT_CHUNK_1]
[CONTEXT_CHUNK_2]
...
[CONTEXT_CHUNK_N]
回答以下问题:[USER_QUERY]
在这里,[CONTEXT_CHUNK_1] 到 [CONTEXT_CHUNK_N] 是从您的知识源检索到的实际文本段落的占位符,而 [USER_QUERY] 则是用户原始的问题或指令。
上下文相对于查询的放置位置很重要。虽然上面的模板将上下文放在前面,您也可以将其放在查询之后。一些LLM可能表现出近期偏见,对提示词后面出现的信息给予更多关注。通常需要通过实验来确定您的特定LLM和任务的最佳放置位置。
比单独放置更重要的是提供给LLM的指令。明确的指令有助于约束模型的行为,并鼓励它依赖所提供的信息。请考虑以下变体:
上下文:
[CONTEXT]
问题:[USER_QUERY]
严格根据所提供的上下文回答。如果信息不存在,请回复“我无法根据所提供的上下文回答。”
用户问题:[USER_QUERY]
相关信息:
文档1:[CONTEXT_CHUNK_1]
文档2:[CONTEXT_CHUNK_2]
结合文档中的相关信息,提供一个全面的回答。
这些指令指导LLM如何使用上下文,减少了产生幻觉(编造信息)或单纯依赖其内部可能过时的知识的可能性。
当您的检索器返回多个相关文本片段时,您需要在提示词中以清晰的方式呈现它们。简单地将它们连接起来可能会使LLM感到困惑。更好的方法包括:
* * *等字符)或特定标签(如[CONTEXT] ... [/CONTEXT])。使用以下上下文片段来回答问题:
上下文1:
[CONTEXT_CHUNK_1]
上下文2:
[CONTEXT_CHUNK_2]
问题:[USER_QUERY]
来自'report_v2.pdf'第5页的上下文:
[CONTEXT_CHUNK_1]
来自'website_faq.html'的上下文:
[CONTEXT_CHUNK_2]
问题:[USER_QUERY]
使用提供的上下文回答问题。
检索步骤并非总是完美的。有时,它可能返回并非真正相关的片段,或者完全找不到任何相关信息。您的提示词结构应该预料到这一点。通过指导LLM在上下文无用时如何表现(如前面“严格依据上下文”示例所示),您可以鼓励其给出更诚实可靠的回答,而不是基于不良证据强行提供答案。
我们来看几个场景:
场景1:简单问答
Llama-3-8B-Instruct model?"根据以下上下文:
上下文1:
The Llama 3 family includes models with 8B and 70B parameters. Both initial instruction-tuned versions support context lengths of 8,192 tokens.
上下文2:
When choosing a model, consider the trade-off between parameter count and computational requirements. Larger models often perform better but require more resources. Context window limitations also affect suitability for tasks involving long documents.
回答以下问题:What is the maximum context window size for the `Llama-3-8B-Instruct` model? 只使用提供的上下文。
场景2:未找到相关上下文的查询
根据以下上下文:
[未找到相关上下文]
回答以下问题:What is the airspeed velocity of an unladen swallow? 只使用提供的上下文。如果上下文不包含答案,请说明。
RAG的提示词工程很少是一次性过程。理想的结构很大程度上取决于所使用的特定LLM、您的数据特性以及您预期用户查询的复杂性。从基本结构开始,使用代表性查询和检索到的上下文进行测试,分析LLM的输出,并迭代地改进提示词。措辞、格式或指令清晰度上的微小变化有时可以给生成回答的质量和可靠性带来很大的改善。
通过精心构建提示词,您创建了一个清晰的沟通渠道,使LLM能够有效运用检索到的信息,并生成基于您特定知识库的回答。这种结构化方法对于发挥RAG的能力作用很大。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造