一、定义
Prompt Engineering
提示词工程(Prompt Engineering)是一项通过优化提示词(Prompt)和生成策略,从而获得更好的模型返回结果的工程技术。
二、System message 系统指令
System message可以被广泛应用在:
角色扮演:在系统指令中告诉千问你需要它扮演的角色,即可沉浸式和该角色对话交流
语言风格:简单调整LLM的语言风格
任务设定:比如旅行规划,小红书文案助手这样的专项任务处理
回答范围:生成的答案的范围
三、User prompt 用户提示词
- 指令:介绍下xxx、xxx是什么、xxx怎么样做
- 主要内容:主要内容是指模型正在处理的文本内容。请解释这句英文:“xxxx”。 xxxx是主要内容。
- 少样本学习:好的prompt也经常包含一些示例样本(单样本或者少样本)学习,指的是需要加入一些示例的输入和输出对:苹果:红色,香蕉:黄色,桔子:橙色。 黄瓜:?
- 善用分隔符 —
- 思维链提示:“做xxx需要考虑以下几个步骤:第一步xxx 第二步xxx…”。这是任务分解(step by step)技术的一种展现,在这种方法中,模型逐步进行思考,并呈现出涉及的步骤,这样做可以降低结果的不准确的可能性,并对模型响应的可解释性有很大的帮助。
- 明确的输出内容要求:“按时间顺序罗列xxx”、“按步骤说明xxx”
- 输出的格式:“按json格式输出”、“以markdown格式输出”、“以表格形式输出” …
四、好的原则
- 提供上下文
- 清晰的指令
- 激励模型反思和给出思路:可以在prompt中用一些措辞激励模型给出理由,这样有助于我们更好地分析模型生成结果,同时,思维过程的生成,也有助于其生成更高质量的结果。
- 给容错空间:如模型无法完成指定的任务,给模型提供一个备用路径,比如针对文本提问,可以加入如果答案不存在,则回复“无答案”
- 让模型给出信息来源:在模型结合搜索或者外部知识库时,要求模型提供他的答案的信息来源,可以帮助LLM的答案减少捏造,并获取到最新的信息。
- 说明动机:详细解释你希望模型做这件事情的原因、动机、希望的结果等,这样大模型能更好地理解你的想法,执行需求。
五、提示词框架
system message + user prompt
你希望大模型扮演什么角色,来解决你当前的问题。大模型具有较强的角色扮演能力,相比直接回答往往表现更好。
+ 优质 user prompt,保证输出符合期望。