攻坚Prompt的技巧

196 阅读4分钟

一、核心方法论与框架

这些框架提供了结构化的思考方式,帮助你构建复杂的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.
      

少样本学习特别适用于:定义复杂格式、模仿特定风格、处理有固定模式的任务。


三、业界规范与最佳实践

除了方法论,还有一些被广泛认可的书写规范:

  1. 清晰具体,而非模糊笼统

    • 避免:“写点关于市场营销的东西。”
    • 推荐:“为一款新的咖啡订阅APP起草一篇300字左右的推特文案,目标用户是25-35岁的都市白领,强调其便捷性和豆子品质。”
  2. 使用分隔符清晰标明输入部分

    • 使用""", ````, ---, <>, XML标签等将指令和需要处理的内容分开,防止“提示注入”。
    • 示例: “总结以下用三引号括起来的文本:...文本内容...
  3. 指定输出格式

    • 明确要求模型以JSON、HTML、Markdown、纯文本等格式输出,便于后续自动化处理。
    • 示例: “请以JSON格式输出,包含name, email, phone三个字段。”
  4. 迭代优化

    • Prompt工程是一个迭代过程。很少有一次就完美的Prompt。根据第一次的输出结果,不断调整和细化你的指令,这是一个标准流程。
  5. 链式思考(Chain-of-Thought, CoT)

    • 对于复杂推理问题,要求模型分步思考,展示其推理过程,能极大提高最终答案的准确性。
    • 示例:在问题后加上“让我们一步步思考。”("Let's think step by step.")
  6. 设定约束与避免事项

    • 明确说明不要什么,与说明要什么同样重要。
    • 示例: “不要使用专业术语。”、“避免主观评价。”
  7. 温度(Temperature)和Top_p设置

    • 这是模型参数,而非Prompt内容,但与之紧密相关。
    • 低温度(如0.2) :输出更确定、更集中,适合事实性、确定性的任务。
    • 高温度(如0.8) :输出更随机、更多样,适合创意生成任务。

总结:核心思想

所有的方法论和规范都围绕一个核心思想:将LLM视为一个能力极强但需要精确指引的合作伙伴。你的任务就是通过Prompt,为它提供最清晰的“工作说明书”(SOW)

  1. 给它一个角色(Contextualize)
  2. 说清楚要什么(Be Specific)
  3. 提供必要信息(Input Data)
  4. 规定成品样子(Set Constraints & Format)
  5. 通过示例教学(Show, Don‘t Tell)
  6. 不断调试优化(Iterate)

掌握这些方法论和规范,你将能更加系统性和可预测地从大型语言模型中获取价值。