一、什么是Prompt?

Prompt是一种基于人工智能(AI)指令的技术,通过明确而具体的指导语言模型的输出。在提示词工程中,Prompt的定义涵盖了任务、指令和角色三个主要元素,以确保模型生成符合用户需求的文本。

任务: Prompt明确而简洁地陈述了用户要求模型生成的内容。这包括在特定应用场景中,用户希望模型完成的任务或生成的文本类型。

指令: 模型在生成文本时应遵循的指令是Prompt中的关键要素之一。这些指令具体规定了模型生成文本的方式,通过清晰的语言来引导模型以获得所需的输出。

角色: Prompt中还包括模型在生成文本时应扮演的角色。这有助于更好地定义模型的行为,确保生成的文本符合用户预期。

二、什么是Prompt工程?

在与大模型进行交流的过程中,由于用户经验不足、模型差异性会出现Prompt指令不当的问题,因此需要通过Prompt工程,使用户能够控制模型的输出,使其生成相关、准确且高质量的文本。这与机器学习的过程类似,需要进行迭代。

举一个实际的例子:

假设我们的目标是让模型生成关于科技新闻的文章。初始时,我们可能给出一个简单的Prompt:

“生成一篇关于最新科技进展的文章。”

然而,模型可能会输出一些泛泛的信息,不够深入或专业。通过Prompt工程的迭代过程,我们会逐步优化Prompt。首先,我们可能会尝试明确指定一些关键词,如:

“以量子计算为主题,生成一篇科技新闻文章。”

这样,模型更有可能生成与量子计算相关的深入内容。在分析模型的输出时,我们可能发现某些输出仍然不够准确或不符合我们的预期。因此,下一步迭代中,我们可以进一步细化Prompt:

“以量子计算为主题,强调其在未来技术发展中的影响,生成一篇深度科技报道。”

通过这个反复的过程,我们不仅让模型更好地理解我们的需求,也提高了生成内容的相关性和质量。这个实例展示了Prompt工程迭代的过程,通过调整指令和任务描述,逐步优化模型的输出,使其更好地满足特定场景的需求。

三、Prompt工程的格式与要求

1. Prompt工程的格式

以下提供Prompt的通用格式和示例,按照该格式我们可以在任何场景中去思考如何去编写prompt。在对于每个场景中,在编写prompt时需要考虑五个部分,分别是角色、任务、指令、input和output。

角色:该场景下大模型需要担任的角色

Prompt: “请问有没有推荐的旅行目的地?”

Response: “当然,以下是一些值得推荐的旅行目的地:西安、南京、北京、苏州、大理、丽江、喀纳斯。”

任务:大模型需要完成的任务

上述prompt要求的推荐最佳旅行目的地就是我们向大模型提出的任务。

指令

i. ‘’‘此处是示例’‘’

ii. <此处是示例>

iii. —此处是示例—

Prompt: “假设你是一名资深旅行顾问,请参照三引号中的案例的语气和提供攻略的方式为我推荐中国旅行目的地 案例: ‘’‘伊豆急行之[黑船电车] 日本小众玩法:来伊豆不可错过的海景列车一一黑船电车。交通攻略:伊豆急行线来往最多的是普通列车,线路和窗外的景色与黑船电车是一样的,但是黑船电车拥有180度的面朝大海的座位。需要注意的是黑船号每天只有三班,分别是早上,中午,下午各一班,一定记得看下时刻表。玩法推荐:强烈推荐购买伊豆急行一日券/两日券。一日券价格为1200日元/一人;二日券价格为2000日元/人。血 行程路线:有名的城崎海岸(门胁吊桥、门胁灯塔)、伊豆高原(大室山)、以及小众的下田市的白滨海岸,都可坐此列车到达。黑船雷事主要行驶於熟海~伊豆急下田’‘’

Response: “当然,我很高兴你对中国旅行感兴趣。我为你推荐的目的地是:旅行目的地推荐:[丽江古城] 介绍:欢迎来到中国的丽江古城,这是一个充满历史和文化底蕴的古老城市。被联合国教科文组织列为世界文化遗产,丽江以其古老的街道、古朴的建筑和多元的民族文化而著称。”

Prompt: “你是一个智能家居分析高手,你需要分析用户对智能家居发出的指令并从用户的指令中结构化的输出提取出信息。输出完毕后结束,不要新增内容。定义的字段为设备类型、操作类型、设备参数、设置值、提醒时间、操作场所。用户输入:把卧室空调温度调至25度。”

Response: “设备类型:‘空调’ 操作类型:‘设置’ 设备参数:‘温度’ 设置值:‘25度’ 操作场所:‘卧室’”

Prompt: “假设你是一名资深旅行顾问,请为我推荐旅行目的地。让我们一步一步思考,按照以下内容进行:首先需要了解用户的兴趣和喜好,例如历史、自然、文化等。然后,需要考虑用户的预算和旅行时间,为用户提供合理的建议。最后,应该总结推荐的目的地,并解释为什么这是最佳选择。”

Response: “作为一名资深旅行顾问,我很高兴为您推荐旅行目的地。让我们一步一步思考:了解用户的兴趣和喜好;考虑用户的预算和旅行时间;总结推荐的目的地并解释为什么这是最佳选择。”

思维链:模型响应被指示一步一步地进行并呈现所涉及的所有步骤

意图识别:使用意图识别来识别用户指令。先拆大分类下的意图,再回答具体的问题。

提供示例:示例文本和输出类别。通常可在以下三个符号内放置示例并提示模型参照:

Input

a.句子:提供指令需要参照的句子

b.文章:提供指令需要解析的文章

c.问题:提供指令需要回答的问题

根据上述智能家居案例中,最后"用户输入:把卧室空调温度调至25度。"就是输入给大模型最后的提示词,大模型需要根据该输入进行解析并回答。

Output:可以定义输出的格式和指示标准,以确保模型生成的结果符合预期

Prompt: “假设你是一名资深旅行顾问,请参照三引号中的案例的语气和提供攻略的方式为我推荐中国旅行目的地,要求:交通攻略、热门景点、最佳路线等内容相互结合,从而省钱又能玩得尽兴。案例: ‘’‘伊豆急行之[黑船电车] 日本小众玩法:来伊豆不可错过的海景列车一一黑船电车。交通攻略:伊豆急行线来往最多的是普通列车,线路和窗外的景色与黑船电车是一样的,但是黑船电车拥有180度的面朝大海的座位。需要注意的是黑船号每天只有三班,分别是早上,中午,下午各一班,一定记得看下时刻表。玩法推荐:强烈推荐购买伊豆急行一日券/两日券。一日券价格为1200日元/一人;二日券价格为2000日元/人。血 行程路线:有名的城崎海岸(门胁吊桥、门胁灯塔)、伊豆高原(大室山)、以及小众的下田市的白滨海岸,都可坐此列车到达。黑船雷事主要行驶於熟海~伊豆急下田’‘’

Response: “旅行目的地推荐:[张家界] 介绍:欢迎来到中国的张家界,这是一个充满自然奇观和人文景观的旅行胜地。张家界因其独特的石柱地貌和悠久的历史而成为中国最独特的旅游胜地之一。省钱攻略:a.交通攻略:最经济的方式是选择飞往张家界的机票,提前预订可以享受更多折扣。从张家界荷花机场出发,你可以选择乘坐机场大巴或出租车前往市区。机场大巴价格相对较低,是一个省钱的选择。强烈建议提前规划好行程,以充分利用当地的公共交通工具,如巴士和缆车,省去不必要的出行开支。b.热门景点:张家界国家森林公园是不可错过的景点,独特的石柱群和梦幻的风景令人惊叹。天门山索道是欣赏天门山美景的绝佳选择,索道上的景色令人难以忘怀。c.最佳路线:第一天:游览张家界国家森林公园,感受那些宛如仙境的石柱。第二天:前往天门山,乘坐索道欣赏山间美景。第三天:漫步在宁静的古镇,品味当地美食和文化。玩法推荐:强烈推荐在张家界购买综合门票,以享受多个景区的折扣优惠。选择在淡季游览,不仅能够避开拥挤的游客高峰期,还能享受更多的优惠和特价。总结:张家界以其独特的自然美景和省钱的旅行方式,是一个让你既能省钱又能玩得尽兴的理想目的地。快来感受这座令人陶醉的山水之城吧!”

2. Prompt工程的要求

在进行以上五个部分的prompt工程时,在寻找比较满意效果的prompt还需要注意以下几点:

  • 多提供关键词:关键词能够和指令提示相结合,以创建更具体和有针对性的生成文本。
Prompt: “你是一位擅长创作春联的专家,请根据我提供的主题为我写出一副与主题相关的春联,其中你提供的春联必须满足三引号中的4个格式要求:

1、上下联字数必须相同。
2、上联末句尾字用仄声,下联末句尾字用平声。
3、要词性相对,位置相同。即名词对名词,动词对动词,形容词对形容词,数量词对数量词,副词对副词,而且相对的词必须在相同的位置上。
4、上下联的含义必须相互衔接,但用词又不能重复。'''接下来我将提供给你我的主题和新的要求:主题:龙年、大吉”

Response: “上联:龙腾云海春光美 下联:吉兆丰年福满堂”
  • 把事情说详细:在工作中,往往也是上级安排的命令和要求越详细,我们完成的工作才能越加符合他们的预期,在训练大模型时亦是如此,将要点都详细的告诉大模型往往效果会更好。

参照上一个prompt中,我们给出了非常详细且严格的对联格式要求,从而限制大模型的输出内容。

  • 指定输出长度:在生成文本时,若我们需要限定字数,此时需要告诉大模型相关信息,避免生成字数过少或过多。
  • 长文本用总结:在我们输入一段很长文本给大模型时,由于字数限制大模型可能无法全部读取,此时我们能将全篇文本进行分段,将前面内容让大模型总结从而将总结的内容衔接后面的内容,达到层层递进理解的效果。
  • 结尾可加约束:我们在提出问题时可以在结尾加一个"用户输入的问题:"这样相当于强调我们主要要分析的内容是结尾输入的这部分内容,帮助大模型更好的进行分析。