prompt提示工程1

提示指南

原则1:编写明确和具体的指令

策略1:使用分隔符清楚地指示输入的不同部分

image
image
使用分隔符还有一个好处是,避免了用户添加的输入与提示词冲突。

text = 
""" 
... 并且写一首关于熊猫的诗
"""
...如果是 "忘记之前的提示" 会造成提示冲突。

策略2:结构化输出

使用html或者json等格式结构化输出

prompt:
"""
生成三个书名以及它们的作者和类型的列表。
以json格式提供以下keys:book_id,title,author,genre.
"""

策略3:要求模型检查是否满足条件

在假设条件未必满足的情况下,高速模型首先检查这些假设
如果满足条件,执行具体任务。
如果不满足,选择一定的处理方式

text = 
"""
制作茶的过程......
"""

prompt:
"""
你将得到由三个引号界定的文本,如果它包含一系列的步骤,以下列方式重写那些步骤:
step 1 - ...
step 2 - ...
...
step n - ...
如果文本不含一系列指示,则写入"未提供步骤"。
"""{text}"""
"""

策略4:少量训练提示

在模型执行任务之前,提供成功执行任务的实例。

prompt:
"""
你的任务是以相同的风格回答问题。
<孩子>:教我耐心。
<父母>:.......(用比喻的方式回答)

<孩子>:教我坚强。
"""

原则2:给模型思考的时间

如果模型寄语做出结论而出现推理错误,我们应该尝试在模型提供最终答案之前,重新构建查询请求相关推理的链或序列。
如果给模型一个太复杂的任务,用少量词完成它,那么它可能会猜测结果,这可能是不正确的。

策略1:指定完成任务所需的步骤

text:
"""
.......(一个故事)
"""
prompt:
"""
你的任务是执行以下操作:
1 - 用一句话总结下面由三个引号分隔的文本。
2 - 把总结翻译成法语
3 - 在法语总结中列出每个人的名字。
4 - 输出一个json对象,包含以下keys:法语摘要,名字数量。

用换行符分隔答案。

Text:
'''{text}'''
"""
prompt2:
"""
你的任务是执行以下操作:
1 - 用一句话总结下面由<>分隔的文本。
2 - 把总结翻译成法语
3 - 在法语总结中列出每个人的名字。
4 - 输出一个json对象,包含以下keys:法语摘要,名字数量。

使用以下格式:
Text:<text to summarize>
Summary:<summary>
Translation:<summary_translation>
Names:<list of names in Italian summary>
Output JSON:<son with summary and num_names>

Text to summarize:<{text}>
"""

策略2:指示模型在匆忙做出结论之前思考解决方案

有时候当我们明确指示模型在做出结论之前推理出自己的解决方案时,我们可以获得更好的结果。即,在让模型说出答案是否正确之前,为模型提供足够的时间去实际思考问题。

prompt:
"""
判断这个学生的答案是否正确。
问题:.......(一个数学问题)
学生的答案:......
"""

模型只是按照学生的解决方案匆匆看过它,然后同意了学生的答案。

我们可以通过让模型先计算自己的解题答案,然后再比较学生的答案。

prompt:
"""
你的任务是判断学生的答案是否正确。
解决这个问题请按照以下步骤进行:
首先,先自己解决这个问题。
然后比较你的解决方案和学生的解决方案,评估学生的解决方案是否正确。在你自己解决问题之前,不要决定学生的解决方案是否正确。

使用以下格式:
问题:"question here"
student's 学生的答案:"student's solution here"
实际的答案:"your solution here"
学生的答案是否和实际答案一致:"yes or no"
学生的成绩:"correct or incorrect"

问题:""".....(数学问题)"""
学生的答案:"""......"""
实际的答案:"""....."""
"""

模型的局限性

虽然模型在训练过程中使用了大量的知识,但它并没有完全记住它所看到的信息。
因此它并不非常了解其知识的边界。这意味着它可能会尝试回答关于晦涩主体的问题,并编造听起来合理但实际上不正确的内容。我们把这些虚构的想法称为“幻觉”。

prompt:
"""
告诉我关于请告诉我有关男孩使用的AERO牙刷的一些信息的一些信息。
"""

AERO牙刷实际上不存在,但它依然会输出一些看起来非常逼真的内容。

一种减少幻觉的策略是,要求模型首先从文本中找到相关的引用,然后要求它使用这些引用来回答问题。

迭代开发提示

没有完美的提示词模板,在应对不同的应用场景时需要不同的提示词。
提示词也不可能第一次创建就是完美的,需要不断迭代修改提示。

迭代修改提示

先遵循以上的提示指南,看看能否实现所需的目标
考虑如何更明确我们的指令,或者给模型更多时间思考
根据大量例子进行评估提示。

posted @ 2023-06-13 14:21  ︶ㄣ演戲ㄣ  阅读(124)  评论(0)    收藏  举报