大模型提示工程

大模型提示工程

 转:9 大模型提示词工程应用_哔哩哔哩_bilibili

转:提示词(Prompt)工程入门(非常详细),零基础入门到精通,看这一篇就够了_prompt提示词工程-CSDN博客

 提示词工程,或称Prompt Engineering,是一种专门针对语言模型进行优化的方法。它的目标是通过设计和调整输入的提示词(prompt),来引导这些模型生成更准确、更有针对性的输出文本。

1. 原则

 

  

2. 清晰的指令

 

 

编写清晰的指令不意味着简短的指令,因为在许多情况下,更长的提示实际上更清晰且提供了更多上下文,这实际上可能导致更详细更相关的输出。

比如说以下指令:
请描述一下风。
请描述一下西北风。
请描述一下春天的风。

什么是CSP?
什么是计算机网络中的CSP(内容安全策略)?
什么是计算机网络中的CSP(内容安全策略)?并详细描述其原理。

为指令添加一些详细的背景信息,输出的结果会更加符合我们的预期。

2.1. 分隔符(☆)

 

 

 

 

大模型基于概率生成,每次生成的话不一样

2.2. 结构化输出

 

 

 

 

使用网页,直接复制文本

使用接口,就用代码

2.3. 参考示例(☆)

 

 

 

 

2.4. 角色扮演

 

或者

我希望你能充当我的私人健康教练,作为一个健身30年的老教练,为我的个人健康与减肥设计专业的建议,我是一个未参加过专业训练的初级健身人员,身高1。65m,女性,体重60kg(体脂率是36偏高),平时我的工作是早9晚6一天8小时,周末可能会加一天的班,平时的时间集中在晚上早上7点半以前和周末,我目前身体健康,并无健身器材方向的锻炼要求,我想减重到50kg,你应该利用你的运动科学知识、营养建议和其他相关因素来为我创建适合我的计划。在今后对话中,不再需要我额外的说明。

 

2.5要求模型检查是否满足条件

如果任务做出的假设不一定满足,我们可以告诉模型先检查这些假设,如果不满足,指示并停止执行。

你还可以考虑潜在的边缘情况以及模型应该如何处理它们,以避免意外的错误或结果。

在如下示例中,我们将分别给模型两段文本,分别是制作茶的步骤以及一段没有明确步骤的文本。 我们将要求模型判断其是否包含一系列指令,如果包含则按照给定格式重新编写指令,不包含则回答未提供步骤。

 1 # 有步骤的文本
 2 text_1 = f"""
 3 泡一杯茶很容易。首先,需要把水烧开。
 4 在等待期间,拿一个杯子并把茶包放进去。
 5 一旦水足够热,就把它倒在茶包上。
 6 等待一会儿,让茶叶浸泡。几分钟后,取出茶包。
 7 如果你愿意,可以加一些糖或牛奶调味。
 8 就这样,你可以享受一杯美味的茶了。
 9 """
10 prompt = f"""
11 您将获得由三个引号括起来的文本。
12 如果它包含一系列的指令,则需要按照以下格式重新编写这些指令:
13 
14 第一步 - ...
15 第二步 - …
16 17 第N步 - …
18 
19 如果文本中不包含一系列的指令,则直接写“未提供步骤”。"
20 """{text_1}"""
21 """
22 response = get_completion(prompt)
23 print("Text 1 的总结:")
24 print(response)
25 
26 # >>>>>>> 输出 <<<<<<<
27 Text 1 的总结:
28 第一步 - 把水烧开。
29 第二步 - 拿一个杯子并把茶包放进去。
30 第三步 - 把烧开的水倒在茶包上。
31 第四步 - 等待几分钟,让茶叶浸泡。
32 第五步 - 取出茶包。
33 第六步 - 如果你愿意,可以加一些糖或牛奶调味。
34 第七步 - 就这样,你可以享受一杯美味的茶了。
35 
36 # 无步骤的文本
37 text_2 = f"""
38 今天阳光明媚,鸟儿在歌唱。
39 这是一个去公园散步的美好日子。
40 鲜花盛开,树枝在微风中轻轻摇曳。
41 人们外出享受着这美好的天气,有些人在野餐,有些人在玩游戏或者在草地上放松。
42 这是一个完美的日子,可以在户外度过并欣赏大自然的美景。
43 """
44 prompt = f"""
45 您将获得由三个引号括起来的文本。
46 如果它包含一系列的指令,则需要按照以下格式重新编写这些指令:
47 
48 第一步 - ...
49 第二步 - …
50 51 第N步 - …
52 
53 如果文本中不包含一系列的指令,则直接写“未提供步骤”。"
54 """{text_2}"""
55 """
56 response = get_completion(prompt)
57 print("Text 2 的总结:")
58 print(response)
59 
60 # >>>>>>> 输出 <<<<<<<
61 Text 2 的总结:
62 未提供步骤。

泡一杯茶很容易。首先,需要把水烧开。
在等待期间,拿一个杯子并把茶包放进去。
一旦水足够热,就把它倒在茶包上。
等待一会儿,让茶叶浸泡。几分钟后,取出茶包。
如果你愿意,可以加一些糖或牛奶调味。
就这样,你可以享受一杯美味的茶了。


根据以上文本,如果它包含一系列的指令,则需要按照以下格式重新编写这些指令:
第一步 - ...
第二步 - …

第N步 - …

如果文本中不包含一系列的指令,则直接写“未提供步骤”。

今天阳光明媚,鸟儿在歌唱。
这是一个去公园散步的美好日子。
鲜花盛开,树枝在微风中轻轻摇曳。
人们外出享受着这美好的天气,有些人在野餐,有些人在玩游戏或者在草地上放松。
这是一个完美的日子,可以在户外度过并欣赏大自然的美景。

根据以上文本,如果它包含一系列的指令,则需要按照以下格式重新编写这些指令:
第一步 - ...
第二步 - …

第N步 - …
如果文本中不包含一系列的指令,则直接写“未提供步骤”。

 

 2.6长文章处理

如果大语言模型支持的token比较少,如何处理长文章?
示例:将文章拆开几部分,发送给大模型

我将向您发送几条消息,如果文本中没有包含"</endoftext>"你只需要回复OK,如果收到后,则将前面的消息合并一起生成一份详尽的中文摘要。以下是内容第一部分:

 

 

2.7让大模型引导

如果对一个行业没有清晰的认识,可以反问大模型:

假设你是一个互联网方向上的资深专家,我是向你来咨询互联网发展历史的小白客户,需要详细而确切的信息,但我不太懂如何提问。请逐步引导我,让我的需求更具体。完成后回复“已完成背景收集,开始进行回复‘互联网发展历史’”。提问我问题的时候,请一个问题一个问题的进行询问,同时,我如果回答不知道,可以考虑问下一个问题。

 

 

3. 让模型思考

 

 

3.1. 指定步骤(☆)

 

 

 

 

大模型只是提供的便利,没有那么智能

大模型幻觉(一本正经胡说八道)需解决

 

 

3.2. 指导模型求解

 

 

 

 

判断学生的解决方案是否正确。

问题:我正在建造一个太阳能发电站,需要帮助计算财务。

土地费用为 100美元/平方英尺

我可以以 250美元/平方英尺的价格购买太阳能电池板

我已经谈判好了维护合同,每年需要支付固定的10万美元,并额外支付每平方英尺10美元作为平方英尺数的函数

首年运营的总费用是多少。

学生的解决方案:

x为发电站的大小,单位为平方英尺。

费用土地:100x

太阳能电池板费用:250x

维护费用: 100,000美元+100x

总费用: 100x+250x+100,000美元+100x=450x+100,000美元

 

 

文心一言、kimi和豆包,都回复“错误”

 

 

4. 迭代优化

 

 

 

 

 

 

 

 

 

 

  

4.1. 添加长度限制(☆)

 

 

 

 

 分词器不是按字数来分的,不会严格按照字数要求提供,但是相差不大,在可接受范围

4.2. 添加关注偏向(☆)

 

 

 

  

4.3. 添加表格表述

 

 

5. 文本概括

 

 

比如摘要

 

 

 

 

这个熊猫公仔是我给女儿的生日礼物,她很喜欢,去哪都带着。公仔很软,超级可爱,面部表情也很和善,但是相比于价钱来说,它有点小,我感觉在别的地方用同样的价钱能买到更大的。快递比预期提前了一天到货,所以在送给女儿之前,我自己玩了会。

5.1. 限制输出文本长度(☆)

 

 

这个熊猫公仔是我给女儿的生日礼物,她很喜欢,去哪都带着。公仔很软,超级可爱,面部表情也很和善,但是相比于价钱来说,它有点小,我感觉在别的地方用同样的价钱能买到更大的。快递比预期提前了一天到货,所以在送给女儿之前,我自己玩了会。

您的任务是生成一个产品的简短摘要,对文本进行概括,30个字。

5.2. 设置关键角度侧重(☆)

 

 

 

 

这个熊猫公仔是我给女儿的生日礼物,她很喜欢,去哪都带着。公仔很软,超级可爱,面部表情也很和善,但是相比于价钱来说,它有点小,我感觉在别的地方用同样的价钱能买到更大的。快递比预期提前了一天到货,所以在送给女儿之前,我自己玩了会。

您的任务是生成一个产品的简短摘要,对文本进行概括,30个字,侧重在快递服务上。

 

 

5.3. 关键信息抽取(☆)

 

 

这个熊猫公仔是我给女儿的生日礼物,她很喜欢,去哪都带着。公仔很软,超级可爱,面部表情也很和善,但是相比于价钱来说,它有点小,我感觉在别的地方用同样的价钱能买到更大的。快递比预期提前了一天到货,所以在送给女儿之前,我自己玩了会。

 

请提取产品运输相关信息

 

 

6. 文本转换

 

 

6.1. 文本翻译

 

 

6.2. 识别语种

 

6.3. 多语种翻译

 

6.4. 语气和写作风格调整(☆)

 

 

6.5. 文件格式转换

 

 

 

 

 

6.6. 拼写和语法纠正

 

6.7. 综合样例

 

 

 

 

7. 局限性

虚假知识:模型偶尔会生成一些看似真实实则编造的知识。

 

如果模型在训练过程中接触了大量的知识,它并没有完全记住所见的信息,因此它并不很清楚自己知识的边界,这意味着它可能会尝试回答有关晦涩主题的问题,并编造听起来合理但实际上并不正确的答案,我们称这些编造的想法为幻觉。

 

比如,我们要求告诉我们 Boie 公司生产的 AeroGlide UltraSlim Smart Toothbrush 产品的信息,事实上,这个公司是真实存在的,但产品是编造的,模型则会一本正经地告诉我们编造的知识。

 

模型会输出看上去非常真实的编造知识,这有时会很危险,因此,请确保使用我们在本节中介绍的一些技巧,以尝试在构建自己的应用程序时避免这种情况,这是模型已知的一个弱点,也是我们正在积极努力解决的问题。 在你希望模型根据文本生成答案的情况下,另一种减少幻觉的策略是先要求模型找到文本中的任何相关引用,然后要求它使用这些引用来回答问题,这种追溯源文档的方法通常对减少幻觉非常有帮助。

 

8. Prompt优化策略

1、明确具体:加入场景要求、具体任务

2、提供上下文:正确的区分不同的部分的内容(指令与背景信息使用符号区分)

3、正确的语法:使用正确的语法和拼写,避免使用过于技术性或不常见的术语

4、分步询问:复杂任务分步进行,提供引导或者示例

5、输出要求:提供输出要求,比如,结构化的输出

 

9. 基础Prompt结构

9.1. 公式

指令 + 输入数据 + 背景 + 输出要求

9.2. 结构说明

 

 10.大语言模型常用场景

10.1周报

假设你是一位高级产品经理,你需要帮我写一份周报,下面是我本周的工作内容:
1、优化了APP的对话界面设计。
2、上线了APP帮助中心的AB实验。
注意你写的周报中需要包含:
【本周工作进展】:本周做了哪些事,产生了哪些结果。
【下周工作安排】:基于本周的结果下周要推进哪些事。
【思考总结】:简要说说本周的收获和反思。

举例:下面是我写过的周报,请按照我书写的风格来完成后续的周报书写,从结构、口吻、表述方式等角度进行复写。

 

posted @ 2024-12-25 16:47  tvxqpurpleline  阅读(24)  评论(0编辑  收藏  举报