AI提示词工程(Prompt Engineering)

参考 https://lilianweng.github.io/posts/2023-03-15-prompt-engineering/
这篇文章《Prompt Engineering》由Lilian Weng撰写,主要探讨了如何通过设计提示语(prompt)来引导大语言模型(LLM)以获得期望的结果。文章内容涵盖了多个与提示工程相关的技术和方法,下面是主要内容的总结:

1. 基本提示方法

  • Zero-shot(零样本):直接向模型提供任务文本,要求其返回结果。
  • Few-shot(少样本):提供一组高质量的示例,帮助模型更好地理解任务,从而提高模型的表现。

2. 示例选择技巧

  • 选择与测试样本语义相似的示例,以增强模型的理解。
  • 使用图形化的方法,如基于嵌入空间的k-NN聚类或图基方法,来选择多样且具有代表性的示例。

3. 示例排序技巧

  • 为避免偏差(如多数标签偏倚、近期偏倚等),可以随机排序示例。
  • 增加模型大小或更多示例并不总能减少示例顺序的变异性,因此排序对不同模型的影响可能有所不同。

4. 指令提示(Instruction Prompting)

  • 通过提供明确的任务说明而不是简单的示例,模型可以更好地理解任务要求。
  • 如InstructGPT等模型通过高质量的(任务说明,输入,输出)元组来进行微调,使模型更容易理解人类意图。

5. 链式思考(Chain-of-Thought, CoT)

  • CoT提示生成逐步推理的过程,帮助模型进行复杂的推理任务。简单任务对CoT的依赖较小,而复杂任务则能更显著受益于CoT提示。

6. 自一致性采样(Self-consistency sampling)

  • 通过多次采样并选择最合适的输出,利用多数投票的方式来增加推理的准确性。

7. 自动提示设计(Automatic Prompt Design)

  • 自动化设计提示方法,通过优化提示来增加输出的概率。例如使用AutoPrompt、Prefix-Tuning等方法,可以通过梯度下降等优化方法调整提示。

8. 增强语言模型(Augmented Language Models)

  • 引入外部工具(如程序语言、API调用、检索系统等)来增强语言模型的能力,拓宽其处理范围。

9. 工具增强语言模型(Tool Augmented Language Models, TALM)

  • 通过API调用等工具,使得模型能够处理更复杂的任务。比如,Toolformer模型通过自监督学习让模型学会如何调用外部工具。

10. 提示词模板

# AI角色定位
你是一位[角色,例如资深架构师,数学科学家], 需要完成以下任务:

# 任务说明
[在这里清晰描述任务,例如:对文本进行情感分类 / 将段落总结成要点 / 解答数学题 / 生成 SQL 查询]

# 示例(Few-shot)
以下是示例,请学习它们的输入与输出格式:

示例 1:
输入:
[示例输入 1]
输出:
[示例输出 1]

示例 2:
输入:
[示例输入 2]
输出:
[示例输出 2]

示例 3:
输入:
[示例输入 3]
输出:
[示例输出 3]

# 限制(Constraints)
- 使用清晰、准确的语言。
- 不要添加示例中没有的信息。
- 不要输出解释或推理过程(除非任务要求)。
- 输出必须严格遵守“输出格式”部分的结构。
- 不得包含未请求的多余内容。
- 如果输入包含歧义,请标注“无法判断”或返回指定 fallback。

# 输出格式(Output Format)
请按以下格式输出:

{
  "result": "<你的最终输出>",
  "confidence": "<0-100 的置信度估计(可选)>"
}
张贴在ai

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注