提示工程-Prompt Engineering
提示工程(Prompt Engineering)
[!NOTE] 《Prompt Engineering Guide》学习笔记
原文链接:提示工程指南 | Prompt Engineering Guide (promptingguide.ai)
基本概念
提示工程(Prompt Engineering)就是探讨如何设计出最佳提示词,用于指导语言模型帮助我们高效完成某项任务。
两个API超参数
temperature
: 参数越小返回的结果越准确,越确定,反之返回的结果越随机;top_p
:与temperature
参数相同作用。
零样本提示与小样本提示
- 零样本提示(zero-shot prompting),即用户不提供任务结果相关的示范,直接提示语言模型给出任务相关的回答;
- 小样本提示(Few-shot Prompting)范式,即用户提供少量的提示范例,如任务说明等;
提示词的一般要素
指令:想要模型执行的特定任务或指令。
上下文:包含外部信息或额外的上下文信息,引导语言模型更好地响应。
输入数据:用户输入的内容或问题。
输出指示:指定输出的类型或格式。
提示技术
少样本提示
[!NOTE]
- 使用的格式也对性能起着关键作用,即使只是使用随机标签,这也比没有标签好得多
- 其他结果表明,从真实标签分布(而不是均匀分布)中选择随机标签也有帮助。
避免先放所有的积极例子,然后最后放消极例子。如果标签的分布偏斜,这个问题会进一步放大。一定要进行大量实验,以减少模型对这种类型的偏见。
链式思考提示( Chain-of-Thought Prompting)
在提供少样本示例的时候,向模型解释部分推理过程,尝试让模型从一步一步推导得到正确答案
Example:
1 |
|
对于零样本提示,也可以在问题最后提示“让我们一步一步地解决这个问题,以确保我们有正确的答案”,来达到我们想要的效果。
![[Pasted image 20230526144627.png]]
方向性提示
给予LLMs主要关注的一些词,要求模型以此做出回答。
![[Pasted image 20230526145919.png]]
ReAct(Reason +Act)
引入多段"思考+检索+信息摘取+再思考 + 最后回答" 的策略,目前new bing貌似就是类似的方法
LLMs 提示工程的应用
- 辅助训练大模型
- 生成训练数据
- 生成代码
- 执行各种文字类的工作
- 生成提示函数,便于后续快速调用
封装成提示函数
Prompt:
1 |
|
Use:
1 |
|