RAG生成(二):提示词工程

提示词概述

提示词工程(Prompt Engineering),旨在通过开发和优化提示来有效利用语言模型的潜力。

提示词工程是为生成式 AI 模型设计输入以获取最佳输出的实践。 这些输入被称为提示词(Prompt)

提示词工程核心理念是,通过提供更优质的输入,可以让生成式 AI 模型(如大型语言模型)生成更符合需求的结果,也就是让模型能够更好地执行各种任务 ,包括生成创作,生成代码,聊天互动等。

一个通用的提示词通常包含以下几个元素:

1. 指令(Instruction):指明模型要执行的特定任务或操作

2. 上下文(Context):为模型提供额外信息或背景,可以帮助引导模型生成更准确的响应。

3. 输入数据(Input Data): 我们希望模型回答的问题或感兴趣的输入内容。

4. 输出指示符(Output Indicator):指定模型的输出类型或格式,例如格式、是否要求生成代码、总结文本或回答具体问题。

image-20250323075425612

提示词工程不仅仅是设计提示,而是通过深刻理解模型的功能和局限性,创造能够与模型输入产生最佳互动的提示,这其中包含了一系列的技巧。

RAG中提示词工程的技巧

这些技巧就是解决RAG中的问题,如缺失内容,格式错误,缺乏细节,回答不全面等采取的具体措施, 也是对评测指标答案及时性、信息整合能力、拒答能力、检错和纠错能力所做的针对设计。

1. 具体指令法 (优化指令)

指定回答预期,防止内容缺失,回答不全面:

清晰的指令可以让模型输出:更明确的任务目标和更符合预期的内容。

1
2
3
4
请根据上传的银行业报告,简洁总结当前的市场趋势,重点分析政策变化对行业的影响,输出为以下Markdown格式:
- **市场趋势**
- **政策影响**
- **竞争风险**

2 . 解释理由法 (优化指令, 强调指令的原因)

提升模型对任务特定规则或背景的理解能力:

在编写提示时,向模型解释为什么某些任务需要特定的处理方式。这样可以帮助模型更好地理解任务背景,从而提高输出的质量和相关性。

1
请生成一份简明扼要的银行业报告摘要,不要逐字重复段落内容。原因:读者可以访问完整文档,如果需要可以详细阅读全文。

3. 任务角色设定 (优化上下文,指定模型身份、立场和责任)

提升模型专业领域回答能力:

通过为模型设定特定的角色身份,可以帮助模型更好地理解任务要求和角色责任,从而输出更加一致、专业的内容。

1
2
3
4
你的角色: 知识库专家
- 背景:分析银行业市场数据
- 目标:生成一份详细的行业趋势分析
- 限制:仅根据报告中的数据生成分析

4. 文档基础说明 (优化上下文,对输入数据提供背景和来源信息)

奠定模型任务推理的基调:

为模型提供文档的背景信息和文本来源可以帮助奠定任务基础,让模型更好地进行任务推理和回答。

1
以下是关于银行业政策变化的相关规则,它们将用于回答有关政策对银行业影响的问题。

5. 示例学习 (优化输出指示符)

优化回答细节以及格式:

通过给模型提供多个参考示例,模型可以基于这些示例进行模式识别,进而模仿、思考并生成类似的答案

1
2
3
4
5
6
以下是两个关于银行业的分析示例,请按照这种格式对新的报告进行分析:
- 示例 1:**市场趋势**:由于政策放宽,银行贷款增长迅速。
- 示例 2:**政策影响**:新的利率政策可能会对中小企业贷款产生负面影响。


请对下面报告进行同样的分析。

6. 默认回复策略 (放在指令,上下文或者输出指示符部分都可以,旨在强调基于文档回答)

提升模型的拒答能力:

当模型无法从文档中获取足够信息时,通过设定默认回复策略,避免模型产生“幻觉”,即生成虚假的答案。这可以确保模型仅基于文档中的事实进行回答。

1
如果文档中没有足够的事实回答问题,请返回{无法从文档中获得相关内容},而不是进行推测。

通过以上提示工程技巧,RAG 任务的输出质量可以高效、低成本地提升,解决常见生成问题。

写在最后:

在提示工程中,过于具体的指令可能会限制模型的创造性,过于宽泛的提示则可能导致生成偏差。

如何在提示设计中找到合适的权衡点,既能够引导模型生成高质量结果,又不过度限制模型的灵活性,需要大家在实际场景中探索。

进阶: 深入理解模型提示词的原理

image-20250323104447095

突破路径:

image-20250323104703182

提示词参考阅读:

DeepSeek:从入门到精通(点开是百度网盘链接,放在书籍&手册目录下)