一、核心方法论与框架
这些框架提供了结构化的思考方式,帮助你构建复杂的Prompt。
1. CRISPE 框架
这是一个非常全面和实用的Prompt设计框架,非常适合初学者和专业人士。CRISPE是以下单词的缩写:
- Capacity and Role (能力和角色): 指定模型扮演的角色(如:“你是一位资深机器学习工程师”)。
- Reason (背景、原因): 提供任务的背景信息和原因(如:“为了向新手解释清楚这个概念...”)。
- Insight (洞察、输入): 给出具体的任务指令和所需的输入信息。
- Statement (陈述要求): 明确说明对输出的具体要求(格式、长度、风格等)。
- Personality (个性): 定义输出应有的风格或个性(如:“用正式的报告风格”或“用幽默轻松的口吻”)。
- Experiment (试验): 鼓励进行多次试验和迭代(例如:“尝试多种写法,并给出版本号”)。
2. BROKE 框架
这是一个更侧重于目标和约束的框架,适合商业和产品场景。
- Background (背景): 任务的基本背景。
- Requirement (需求): 详细的任务需求。
- Objective (目标): 希望达成的最终目标。
- Key-point (关键点): 必须包含的关键信息或要点。
- Example (示例): 期望的输出示例。
3. RTF 框架 (Role-Task-Format)
一个非常简洁易记的框架,覆盖了大多数场景的核心要素。
- Role (角色): 扮演...。
- Task (任务): 做...。
- Format (格式): 以...格式输出。
4. CARE 框架
由Microsoft提出,强调上下文和相关性。
- Context (上下文): 提供丰富的背景信息。
- Action (行动): 明确需要执行的动作。
- Result (结果): 定义期望的结果形态。
- Example (示例): 提供示例。
二、高级技巧(Few-Shot Prompting)
这是业界公认的最强大技巧之一,即提供示例。
-
零样本(Zero-Shot) : 直接给出指令,不提供示例。依赖于模型的内置知识。
- 示例: “将‘Hello’翻译成法语。”
-
单样本(One-Shot) : 提供一个输入-输出的例子。
- 示例: ““Hello” -> “Bonjour”。 请将“Goodbye”翻译成法语。”
-
少样本(Few-Shot) : 提供多个(通常是3-5个)输入-输出的例子,让模型从中学习规律和模式。
-
示例:
text
英文: Hello -> 法语: Bonjour 英文: Thank you -> 法语: Merci 英文: How are you? -> 法语: Comment ça va ? 现在请翻译: I am learning about AI.
-
少样本学习特别适用于:定义复杂格式、模仿特定风格、处理有固定模式的任务。
三、业界规范与最佳实践
除了方法论,还有一些被广泛认可的书写规范:
-
清晰具体,而非模糊笼统
- 避免:“写点关于市场营销的东西。”
- 推荐:“为一款新的咖啡订阅APP起草一篇300字左右的推特文案,目标用户是25-35岁的都市白领,强调其便捷性和豆子品质。”
-
使用分隔符清晰标明输入部分
- 使用
""", ````,---,<>,XML标签等将指令和需要处理的内容分开,防止“提示注入”。 - 示例: “总结以下用三引号括起来的文本:
...文本内容...”
- 使用
-
指定输出格式
- 明确要求模型以JSON、HTML、Markdown、纯文本等格式输出,便于后续自动化处理。
- 示例: “请以JSON格式输出,包含
name,email,phone三个字段。”
-
迭代优化
- Prompt工程是一个迭代过程。很少有一次就完美的Prompt。根据第一次的输出结果,不断调整和细化你的指令,这是一个标准流程。
-
链式思考(Chain-of-Thought, CoT)
- 对于复杂推理问题,要求模型分步思考,展示其推理过程,能极大提高最终答案的准确性。
- 示例:在问题后加上“让我们一步步思考。”("Let's think step by step.")
-
设定约束与避免事项
- 明确说明不要什么,与说明要什么同样重要。
- 示例: “不要使用专业术语。”、“避免主观评价。”
-
温度(Temperature)和Top_p设置
- 这是模型参数,而非Prompt内容,但与之紧密相关。
- 低温度(如0.2) :输出更确定、更集中,适合事实性、确定性的任务。
- 高温度(如0.8) :输出更随机、更多样,适合创意生成任务。
总结:核心思想
所有的方法论和规范都围绕一个核心思想:将LLM视为一个能力极强但需要精确指引的合作伙伴。你的任务就是通过Prompt,为它提供最清晰的“工作说明书”(SOW) 。
- 给它一个角色(Contextualize)
- 说清楚要什么(Be Specific)
- 提供必要信息(Input Data)
- 规定成品样子(Set Constraints & Format)
- 通过示例教学(Show, Don‘t Tell)
- 不断调试优化(Iterate)
掌握这些方法论和规范,你将能更加系统性和可预测地从大型语言模型中获取价值。