想必大家从很多看过文章“100个必学的提示词技巧”、“50个最优雅的提示词”,这些内容很棒,但是好学的人可能会问, :::warning ❓❓❓
真的有一套系统的方法,来优化提示词吗?
如果有系统的方法,那这个方法是不是也可以是一套提示词? ::: 答案是肯定的!已经有对应的商业化产品了。

优化提示词的系统性方法:
这里借鉴了Git上一个高星的系统性创建prompt的方法论(当然这个方法,也是现在绝大多数人采用的一套方法)
https://github.com/mattnigh/ChatGPT3-Free-Prompt-List

CRISPE 提示框架:

CRISPE Prompt Framework:

  • Capacity and Role: What role (or roles) should ChatGPT act as?
  • Insight: Provides the behind the scenes insight, background, and context to your request.
  • Statement: What you are asking ChatGPT to do.
  • Personality: The style, personality, or manner you want ChatGPT to respond in.
  • Experiment: Asking ChatGPT to provide multiple examples to you.

说人话

  1. (能力&角色)你想他帮你办事,他是谁比较好,最好相关领域的专家;
  2. (洞察)尽量说清楚背景和上下文,你到底想干嘛,为啥要这么干,单纯一个任务,有时候有可能给出的方案并不符合期望;
  3. (陈述)说清楚任务,最好把要求列全,任务尽数说明;
  4. (个性)回复风格也是可以自定义的,这里你可以指定语气、文字格式(表格、markdown格式、HTML格式…);
  5. (示例)如果你举的出来例子,尽量举个一两个;

基本上我们当前所看到的绝大多数Prompt都是基于这套框架所定义出来的,至于为什么要用这套方法,其实大家试出来的,因为这套方法对LLM效果最符合预期。

GPT自动优化提示词(现有工具)

我们可以先看看现在的提示词自动优化工具:

PromptGenius

这是POE上比较火爆的一个Prompt优化Bot,我们看一下它自身的Prompt(很幸运,这个Prompt是开放的,我们可以直接查看)
image.png :::info An AI prompt is text or information I provide to the AI model to generate its output. I want you to be my AI Prompt Writing Assistant. Your goal is to help me create the best possible prompt for my needs, which will be used by AI language model. You will follow this process:
1. Improve my prompt through continuous iterations by following the next steps.
2. base on my input(the prompt I gave you), you will generate 3 sections:
(1) Possible answers to the prompt.(pretend you are an AI language model)
(2) Revised prompt(rephrase the input/prompt I gave you to make it clear, specific, and easy to understand by AI language model.).
(3) Questions (ask relevant questions to gather additional information from me to ensure the prompt meets the my needs).
3. We will continue this iterative process with me providing additional information to you and you updating the 3 section until I say we are done. :::

我们翻译成中文的话: :::info Prompt是我输入给AI语言模型用来生成输出的文本或信息。我希望你成为我的Prompt智能助手,你的目标是帮助我产生满足我需求的最佳Prompt,这份Prompt会给到AI语言模型。你会遵循以下的步骤:
1.按照后面的步骤,通过持续迭代,改进我的Prompt提示。
2.根据我的输入(我给你的Prompt),你会生成3个部分:
(1)Prompt对应的可能答案。(假装你是AI语言模型)
(2)优化之后的Prompt。(改写我给你的Prompt,使其清晰、具体、易于AI语言模型理解)
(3)问题(你提出相关问题,从我这里收集更多的信息,以确保Prompt满足我的需求)
3.我们将继续这个迭代过程,我为您提供更多信息,您更新3个部分,直到我们说完为止。 :::

PromptPerfect

https://promptperfect.jina.ai/home
当然这个已经是一个成熟的商业化产品了,它提供了傻瓜式(for新手)、流程式(for老手)的自动化优化方式。
image.png
如果我们观察PromptPerfect当中的很多优化后的内容,其实也符合CRISPE 提示框架。

基于CRISPE 提示框架的Prompt Optimize Bot

那如果我们想要做一套Prompt,基于CRISPE的方法论,形成一个类似于上文中提到的Prompt优化器,可以吗?当然也可以。
因为gpt4的token很贵,所以我们可以在gpt3.5 上优化之后,再到gpt4上去提问。
gpt帮我“优化提示词” - 图3

至于具体的Prompt内容,我就不编写了,如果有朋友看完之后,觉得有兴趣,可以编写一套流程出来,欢迎共享。