速通提示词工程Prompt Engineering
提示词工程简介[*]关注提示词开发和优化,帮助用户将大语言模型用于各场景和研究领域。
[*]利用提示工程来提升大语言模型处理复杂任务场景的能力,如问答和算术推理能力。
[*]通过提示工程设计、研发强大的工程技术,实现和大语言模型或其他生态工具的高效接轨。
[*]通过提示工程来提高大语言模型的安全性。
1 大语言模型设置
Temperature:temperature 的参数值越小,模型就会返回越确定的一个结果。
Top_p:同上 (一般建议:仅改变其中一个参数)
Max Length:大模型生成的 token 数
Stop Sequences:一个字符串,可以阻止模型生成 token
Frequency Penalty:减少token中词重复(重复数量多的 Token 惩罚高)
Presence Penalty:也减少token中词重复(重复次数无关的惩罚)
2 提示词要素
提示词可以包含:
[*]指令:想要模型执行的特定任务或指令。
[*]上下文:包含外部信息或额外的上下文信息,引导语言模型更好地响应。
[*]输入数据:用户输入的内容或问题。
[*]输出指示:指定输出的类型或格式。
3 设计提示的通用技巧
从简单开始:尝试将任务分解为更简单的子任务
指令:以不同的关键词,上下文和数据试验不同的指令,看看什么样是最适合你特定用例和任务
具体性:提示越具描述性和详细结果越好。如:提供示例。
避免使用不明确的词:如:“几句话”, “一些” 等
避免说不要做什么,而应该说要做什么。
4 简单的提示词示例
文本概括:[上下文] Explain the above in one sentence:
信息提取:[上下文] Mention the large language model based product mentioned in the paragraph above:
问答:[上下文] Question: What was OKT3 originally sourced from?Answer:
文本分类: Classify the text into neutral, negative or positive. Text: I think the food was okay. Sentiment:
(如果大模型返回的是大写的Neutral而非你想要的neutral:给出示例,或者更具体的命令。)
对话:可以设定回复的风格并给出示例:The following is a conversation with an AI research assistant. The assistant tone is technical and scientific. Human: Hello, who are you?AI: Greeting! I am an AI research assistant. How can I help you today?Human: Can you tell me about the creation of blackholes?AI:
代码生成:""" Table departments, columns = Table students, columns = Create a MySQL query for all students in the Computer Science Department """
推理:What is 9,000 * 9,000?
高阶提示技术
1 零样本提示
不提供任何示例。
Q: 1 + 1 = ?
A: 22 少样本提示
提供一些示例。
1-shot:
Q: “whatpu”是坦桑尼亚的一种小型毛茸茸的动物。一个使用whatpu这个词的句子的例子是:我们在非洲旅行时看到了这些非常可爱的whatpus。“farduddle”是指快速跳上跳下。一个使用farduddle这个词的句子的例子是:
A: 当我们赢得比赛时,我们都开始庆祝与farduddle。few-shot:
Q: 这太棒了!// Negative
这太糟糕了!// Positive
哇,那部电影太棒了!// Positive
多么可怕的节目!//
A: Negative但少样本在一些复杂问题表现不佳:
提示:
这组数字中的奇数加起来是一个偶数:4、8、9、15、12、2、1。
A:答案是False。
这组数字中的奇数加起来是一个偶数:17、10、19、4、8、12、24。
A:答案是True。
这组数字中的奇数加起来是一个偶数:16、11、14、4、8、13、24。
A:答案是True。
这组数字中的奇数加起来是一个偶数:17、9、10、12、13、4、2。
A:答案是False。
这组数字中的奇数加起来是一个偶数:15、32、5、13、82、7、1。
A:输出:
答案是True。3 链式思考(CoT)提示
带示例的CoT
提示:
这组数中的奇数加起来是偶数:4、8、9、15、12、2、1。
A:将所有奇数相加(9、15、1)得到25。答案为False。
这组数中的奇数加起来是偶数:15、32、5、13、82、7、1。
A:输出:
将所有奇数相加(15、5、13、7、1)得到41。答案为False。Wei等人(2022)认为这是足够大的语言模型才会出现的新兴能力。
0-Shot的CoT:“让我们逐步思考。”
提示:
我去市场买了10个苹果。我给了邻居2个苹果和修理工2个苹果。然后我去买了5个苹果并吃了1个。我还剩下多少苹果?
让我们逐步思考。输出:
首先,您从10个苹果开始。
您给了邻居和修理工各2个苹果,所以您还剩下6个苹果。
然后您买了5个苹果,所以现在您有11个苹果。
最后,您吃了1个苹果,所以您还剩下10个苹果。自动思维链(Auto-CoT)
Auto-CoT 是一种 无需人工设计示例 的提示构造方法,它能够自动生成“思维链”提示,以引导语言模型像人一样逐步推理。这种方法由 Google 的研究者在论文《Large Language Models are Self-Consistent Reasoners》中提出,是对手动 CoT 的一种自动化替代方案。
[*]自动聚类问题
把所有待解决的问题按“语义或结构”相似性分成几类(如加法类、排序类、计数类等)。
[*]每类用 Zero-shot CoT 生成示例
对每一类问题,选一个代表问题,对它使用 Zero-shot CoT(加一句提示:“Let's think step by step.”)生成一个包含中间推理步骤的解答。
[*]组装 few-shot 提示用于解新题
把每类生成的 CoT 示例拼成一个 few-shot prompt,然后用于引导模型解决其他同类(甚至跨类)的问题。
4 自我一致性
通过少样本 CoT 采样多个不同的推理路径,并使用生成结果选择最一致的答案。这有助于提高 CoT 提示在涉及算术和常识推理的任务中的性能。
提示:
...
Q:Michael有58个高尔夫球。星期二,他丢失了23个高尔夫球。星期三,他又丢失了2个。星期三结束时他还剩多少个高尔夫球?
A:Michael最初有58个球。星期二他丢失了23个,所以在那之后他有58-23 = 35个球。星期三他又丢失了2个,所以现在他有35-2 = 33个球。答案是33。
Q:Olivia有23美元。她用每个3美元的价格买了五个百吉饼。她还剩多少钱?
A:她用每个3美元的价格买了5个百吉饼。这意味着她花了15美元。她还剩8美元。
Q:当我6岁时,我的妹妹是我的一半年龄。现在我70岁了,我的妹妹多大?
A:输出:
1 当我6岁时,我的妹妹是我的一半年龄,也就是3岁。现在我70岁了,所以她是70-3 = 67岁。答案是67。
2 当叙述者6岁时,他的妹妹是他年龄的一半,也就是3岁。现在叙述者70岁了,他的妹妹应该是70-3 = 67岁。答案是67。
3 当我6岁时,我的妹妹是我的一半年龄,也就是3岁。现在我70岁了,所以她是70/2 = 35岁。答案是35。
(答案更可能是67)5 生成知识提示
简单来说,是用模型自己生成的知识来指导自己。
提示:
...
输入:一个人一生中吸烟很多香烟的常见影响是患肺癌的几率高于正常水平。
知识:那些一生中平均每天吸烟不到一支香烟的人,患肺癌的风险是从不吸烟者的9倍。在每天吸烟1到10支香烟之间的人群中,死于肺癌的风险几乎是从不吸烟者的12倍。
输入:一块石头和一颗卵石大小相同。
知识:卵石是一种根据Udden-Wentworth沉积学尺度的颗粒大小为4到64毫米的岩屑。卵石通常被认为比颗粒(直径2到4毫米)大,比卵石(直径64到256毫米)小。
输入:高尔夫球的一部分是试图获得比其他人更高的得分。
知识:知识:
1 高尔夫球的目标是以最少的杆数打完一组洞。一轮高尔夫球比赛通常包括18个洞。每个洞在标准高尔夫球场上一轮只打一次。每个杆计为一分,总杆数用于确定比赛的获胜者。
2 高尔夫球是一项精密的球杆运动,竞争选手(或高尔夫球手)使用许多类型的球杆,用最少的杆数将球打入球场上一系列洞中。目标是以最低的分数完成比赛,该分数是通过将每个洞上所用的杆数相加计算出来的。得分最低的选手赢得比赛。整合知识后提示:
问题:高尔夫球的一部分是试图获得比其他人更高的得分。是或否?
知识:高尔夫球的目标是以最少的杆数打完一组洞。一轮高尔夫球比赛通常包括18个洞。每个洞在标准高尔夫球场上一轮只打一次。每个杆计为一分,总杆数用于确定比赛的获胜者。
解释和答案: 答案:
不是,高尔夫球的目标不是获得比其他人更高的得分。相反,目标是以最少的杆数打完一组洞。总杆数用于确定比赛的获胜者,而不是总得分。6 链式提示
将任务分解为许多子任务。将子任务得到的结果作为新的提示词的一部分。
7 思维树(ToT)
增强模型在复杂问题解决和规划任务中的能力,比如数独解题、数学证明、策略规划等。
<strong>
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]