如何写Prompt?
Prompt是什么?
Prompt指的是一个输入的文本段落或短语,作为生成模型输出的起点或引导。它可以是一个问题、一段文字描述、一段对话或任何形式的文本输入。模型会基于Prompt所提供的上下文和语义信息,生成相应的输出文本。
Prompt的作用
在大语言模型领域中,Prompt就是用户的输入,而模型会根据这个输入来预测下一个词出现的概率,从而逐字生成出下文。Prompt可以归类为多种不同的模式,以适应不同的应用场景和需求,例如:
- 特定指令:明确告诉模型需要执行的具体任务,如“生成一篇关于量子计算的科技新闻文章”。
- 指令模板:提供一种通用的指令格式,允许用户根据需要填入不同的内容,如“以‘红宝石咖啡馆,纵享每一口丝滑!’为标题写一篇小红书文案”。
如何写Prompt?
- 明确目标:确定你想要通过prompt实现的具体目标或结果。
- 分析缺陷:评估当前情况或已有方案,找出存在的问题或不足之处。
- 分析要素:详细思考为实现目标,prompt需要包含哪些关键信息或要素。
- 撰写prompt:基于前面的分析,开始撰写具体的prompt,确保语言清晰、准确。
- 测试:验证prompt是否满足需求,是否达到预期效果。如果测试结果不理想,需回到前面的步骤调整和优化。
- 引入案例:将prompt应用到具体场景中,通过实际案例验证其有效性和实用性,同时作为后续改进的基础。
- 辅助工具与资源:在流程中,可能使用到工具包(包含常用工具或资源)、prompt结构优(提供结构化的思考方式)和prompt框架(帮助组织prompt内容)等辅助手段。
<图片引自Datawhale-AI Agent活动-task2>
工具包神器介绍
1. Prompt框架——CO-STAR 框架
Prompt框架中的CO-STAR框架是一种用于设计prompt结构的模板,它包含六个核心部分,旨在引导语言模型生成更加精准、贴合需求的响应内容。
- Context(上下文) :为任务提供背景信息,帮助语言模型理解讨论的具体场景,确保生成的反馈具有相关性。
- Objective(目标) :明确告诉语言模型需要执行的具体任务,即期望的输出结果。
- Style(风格) :设定语言模型的“语气”,比如正式、幽默或亲切等,以符合特定的交流氛围或要求。
- Tone(语调) :调整语言模型的“情感”,让回应更符合用户的情绪或期望的情感色彩。
- Audience(受众) :确定目标听众是谁,比如专家、新手或孩子等,以便生成适合该受众群体的内容。
- Response(响应) :规定语言模型输出的格式,如列表、故事、报告或文本段落等,以满足用户的需求。
给出一个例子:
任务背景:假设你是一名社交媒体经理,需要为公司的新产品——一款新型超快速吹风机,在社交媒体平台上创建一个吸引人的帖子。
CO-STAR框架应用:
- Context(上下文) :公司即将推出一款新型超快速吹风机,需要在社交媒体上进行宣传。
- Objective(目标) :创建一个引人注目的帖子,吸引潜在客户的注意,并鼓励他们点击链接了解更多信息或购买产品。
- Style(风格) :采用轻松、幽默且富有创意的风格,以区别于其他竞争对手的严肃宣传方式。
- Tone(语调) :使用积极、乐观的语调,传递出产品的高效性和便捷性。
- Audience(受众) :目标受众是年轻、追求时尚和科技感的消费者,特别是那些对快速吹风机有需求的群体。
- Response(响应) :帖子应该包含吸引人的标题、简短的产品介绍、使用场景展示以及购买链接。同时,为了增加互动性,可以添加一些问答或投票元素。
2. Prompt结构优化
Prompt结构优化确实是为了让提示词(Prompt)更易读、更清晰地表达需求,同时方便智能体(Agent)或语言模型区分和处理内容。
-
使用分隔符:
- 分隔符就像是交通信号灯,在Prompt中起到明确区分各部分内容的作用。
- 可以使用特殊的字符序列,如“###”、“====”或“”等,来标记Prompt的不同部分。
- 例如,在Prompt中使用“### 目标”来标记目标的开始,使用“### 背景”来标记背景信息的开始,以此类推。
-
明确标注各部分内容:
- 在Prompt中明确标注出目标、背景、约束条件、风格、受众等关键信息。
- 可以使用加粗、斜体、下划线或不同颜色等方式来突出这些关键信息,使其更加显眼。
-
使用有序列表或无序列表:
- 对于包含多个要点或步骤的Prompt,可以使用有序列表(如1、2、3……)或无序列表(如-、*、+等)来组织内容。
- 这有助于智能体更清晰地理解Prompt的结构和顺序,从而提高生成内容的逻辑性。
-
保持简洁明了:
- Prompt应尽可能简洁明了,避免使用过多的修饰词或复杂的句式。
- 这样可以减少智能体的计算量,提高生成速度,同时避免产生冗余或偏离主题的内容。
3. 引入案例
在设计复杂Prompt时引入案例是一种非常有效的策略,这主要得益于大型语言模型(LLM)强大的学习能力。引入案例可以为Agent提供了一个具体的参考或模板,使其更清楚地理解你的期望和需求,同时,Agent可以掌握处理类似问题的技巧和方法,从而在未来的任务中表现得更好。
-
选择合适的案例:
- 选择与你的Prompt主题相关、具有代表性和典型性的案例。
- 确保案例能够清晰地展示你的期望和需求,同时避免过于复杂或模糊的描述。
-
在Prompt中明确标注:
- 在Prompt中明确标注出案例的位置和用途。
- 可以使用分隔符、标题或特殊标记来突出案例部分,使其更易于被Agent识别和处理。
-
提供详细解释:
- 如果案例本身较为复杂或难以理解,可以提供详细的解释或说明。
- 这有助于Agent更好地理解案例的意图和背景,从而更准确地生成符合期望的输出。