Prompt Enginneering
关键原则:编写清晰、具体指令 和 给予模型充足的思考时间。
设计原则及使用技巧
原则一:编写清晰、具体的指令。
清晰的表达需求,提供充足上下文,使语言模型能够准确理解我们意图。基于此原则衍生出的技巧
- 使用分隔符清晰地表示输入地不同部分。
提示词注入:用户输入的文本可能包含与你预设的Prompt相冲突的内容,如果不加分割,这些输入就可能注入并操纵语言模型,轻则导致模型产生毫无关联的不正确的输出,严重的话可能造成应用的安全风险。
- 寻求结构化的输出
要求LLM返回JSON或者其它结构化的输出并于处理。
- 要求模型检查是否满足条件
如果任务包含不一定能满足的假设(条件),我们可以告诉模型先检查这些假设,如果不满足,则会指出并停止执行后续的完整流程。您还可以考虑可能出现的边缘情况及模型的应对,以避免意外的结果或 错误发生。
- 提供少量示例
“Few-shot” prompting(少样本提示),即在要求模型执行实际任务之前,给模型提供一两个参考样例,让模型了解我们的要求和期望的输出样式。
原则二:给模型时间去思考
在设计Prompt时,给予语言模型充足的推理时间非常重要。语言模型和人类一样,需要时间来思考并解决复杂问题。 应通过Prompt引导语言模型进行深入思考。可以要求其先列出对问题的各种看法,说明推理依据,然后再得出最终结论。在 Prompt 中添加逐步推理的要求,能让语言模型投入更多时间逻辑思维,输出结果也将更可靠准确。
技巧:
- 指定完成任务所需的步骤。
- 指导模型在下结论之前找打一个自己的解法
在 Prompt 中先要求语言模型自己尝试解决这个问题,思考出自己的解法,然后再与提 供的解答进行对比,判断正确性。这种先让语言模型自主思考的方式,能帮助它更深入理解问题,做出 更准确的判断。