Prompt Engineering

781 阅读6分钟

Prompt Engineering

什么是 Prompt Engineering

利用 Prompt 来引导 AI 产生回应并获取所需结果的方法被称为 AI Prompt Engineering. Prompt 可以是一种陈述或一段代码块, 也可以只是一串词语. 就像你可能会提示一个人如何开始写一篇论文, 你可以使用 Prompt 来引导AI模型执行特定任务, 和人类作家一样, AI模型可以在拿到提示后, 根据该材料构建文章.

什么是 Prompt

简单的说, 文本是用户与生成型 AI 模型之间的主要交流方式, 通过在文本界面中输入 Prompt, 用户可以指示模型执行什么任务.

对于 DALLE-2 和 Stable Diffusion 等图像生成AI模型来说, Prompt 一般是用户对输出结果的描述 (比如: "奶牛在吃草").

对于 GPT-3 和 ChatGPT 等大型语言模型 (LLM) 来说, Prompt 可以从简单的查询 (比如: "谁是美国总统") 到包含各种事实的复杂问题, 甚至可以输入包含原始数据的 CSV 文件作为 Prompt 的一部分, 当然也可以是一个开放式的请求 (比如: "给我讲个笑话").

  • Prompt Engineering 是为 AI 模型设计和创建提示的过程. 这包括选择适当的数据类型并对其进行格式化, 以便 AI 模型可以理解并使用它来学习.
  • Prompt Engineering 旨在如何创建高质量的训练数据, 使AI模型能够做出准确的预测和决策. 这是开发和部署 AI 系统的重要步骤.

Prompt Engineering 的重要发展和语言模型 GPT-2 和 GPT-3 有很大关系. 2021 年, 通过在多个 NLP 数据集使用 Prompt Engineering, 人们发现, 当呈现涉及到思维进程的实例时, 语言模型提供了更准确的推理表示. 如果 prompt 包含支持思维链的措辞 (例如: "让我们逐步思考"), 则可以通过零样本学习提高语言模型在多步推理问题中的有效性. 同时许多机器学习模型 (例如: DALL-E, Stable Diffusion, Midjourney), 将文字提示作为输入, 并输出相关的视觉效果, Prompt 开始被广泛应用.

虽然 Prompt 得到广泛使用, 但许多用户仍因为 AI 无法输出他们想要的理想结果而困恼, 因此 Prompt Engineering 成为一种解决方案.

Prompt Engineering 技巧

无论用户是想生成精彩的故事, 令人惊叹的图像, 还是文本摘要器或者自动视频编辑器工具, 他需要知道如何利用 Prompt 来驱动这些强大的生成模型. 提示可以包含以下任何一项:

  • Instructions (指示)
  • Question (问题)
  • Input data (数据)
  • Examples (例子)

合格的 Prompt Engineering 旨在正确的组合这些元素.

以下是提升 Prompt 质量的一些技巧:

  1. 确保 Prompt 出现在提示中的上下文之前, 并用 # 或 "." 分隔它们.

不要使用这种方式:

重写下面的文字.
{文字内容}

尝试输入这样的提示:

重写下面的文字.
""
{文字内容}
""
  1. 为了达到预期的结果, 重要的是尽可能多提供关于潜在情况的具体描述性信息.

避免使用:

写一篇关于人工智能的文章.

尝试键入这样的提示:

正式写一篇关于人工智能的 500 字文章,重点关注它对金融的影响.
  1. 用例子表达.

避免使用:

给我一个域名的创意.

尝试键入这样的提示:

给我一个像 chinamuseum.cn 这样的域名创意,其中包含了解释网站用途的关键字.
  1. 简明扼要地表达, 避免使用不必要的词.

避免使用:

给我简单的解释一下人工智能的历史, 并以读者角度提一下当中的历史事件.

尝试输入这样的提示:

以简短而引人入胜的方式解释人工智能的历史.
  1. 对于通过文本生成图像的 AI 工具, 尽可能具体的描述, 并上传示例图像.

尽管 AI 模型在不断改进, 但用户仍然需要更好的 Prompt Engineering 来充分发挥这些模型的巨大潜力.

Prompt Engineering 例子

以下是不同 Prompt 的结果差异.

write-compare-1.png

write-compare-2.png 正如以上所见, 随着 Prompt 的变化, 获得了一篇试图从不同角度描述主题的文章.

domain-compare-1.png

domain-compare-2.png 虽然在第一个示例中甚至无法获得域名, 但在第二个示例中, 通过在 Prompt 里加入例子, 获得了结果.

写好一个 Prompt 并不简单, 因为它需要简洁的语言, 和对 Prompt 目标的清晰理解. 一个好的 Prompt 应该是具体, 开放, 易于理解的. 它应该包含足够的信息, 以便让AI了解用户所问的内容以及期望得到什么样的答案. 此外, 好的 Prompt 还应该对目标受众具有相关性, 吸引力和趣味性.

Prompt 的上下文和目的也很重要. 特别是 text-to-text (文本到文本) 的 AI 工具, 使用过程就像是在与人交谈. 因此, 正如人与人交谈时会注意用词一样, 也应该注意在 Prompt 中使用的词语.

总的来说, 这取决于任务的复杂性和要传达的信息, 但是通过一些练习和对细节的关注, 任何人都可以写出好的 Prompt.

Prompt 模板

SCQA 框架

  • S: situation - 描述当前情况或背景
  • C: compliaction - 描述问题或挑战
  • Q: question - 提出问题
  • A: answer - 给出回答或解决方案

PEEL 框架

  • P: point - 提出观点或结论
  • E: evidence - 给出支持观点的证据
  • E: explanation - 解释证据如何支持观点
  • L: link - 将观点与其它相关主题联系起来

STAR 框架

  • S: situation - 描述当前情况或问题
  • T: task - 描述需要完成的任务
  • A: action - 描述需要采取的行动
  • R: result - 描述行动带来的结果

GROW 框架

  • G: goal - 设定具体目标
  • R: reality - 分析现状
  • O: options - 确定可行的选项
  • W: way forward - 制定计划 实现目标

SMART 框架

  • S: specific - 设定具体目标
  • M: measurable - 设定可衡量目标 以便跟踪进展
  • A: achievable - 设定实现目标的可行方案
  • R: relevant - 确保目标与进展方向相关
  • T: time bound - 设定明确的时间限制

PESTLE 框架

  • P: political - 分析政治环境的影响
  • E: economic - 了解经济环境的影响
  • S: social - 分析社会和文化因素的影响
  • T: technological - 识别技术因素的影响
  • L: legal - 确定法律因素的影响
  • E: environmental - 分析环境因素的影响

FOCUS 框架

  • F: follow up - 了解最新情况
  • O: opportunity - 寻找机遇
  • C: challenges - 识别可能遇到的挑战
  • U: understanding - 了解行业的文化和政策
  • S: strengths - 强调能力和技能的优势

Welcome to the AI-driven world

文生文 (Text-to-text)

  • Chinchilla
  • ChatGPT
  • Notion AI
  • Chai
  • NovelAI
  • Caktus AI
  • AI Dungeon

文生图 (Text-to-image)

  • MyHeritage AI Time Machine,
  • Reface app
  • Dawn AI
  • Lensa AI
  • Meitu AI Art
  • Stable Diffusion
  • DALL-E 2
  • Google Muse AI
  • Midjourney
  • DreamBooth AI
  • Wombo Dream
  • Tome AI
  • Interior AI
  • NightCafe AI
  • QQ Different Dimension Me

其它

  • Poised AI
  • Make-A-Video
  • Uberduck AI
  • MOVIO AI
  • Tome AI