B站链接
https://www.bilibili.com/video/BV1AT41187qt/?p=2&spm_id_from=pageDriver&vd_source=575ee77adaf7c7aad3d40efaa38ee78b
第二章 指南
一、编写明确和具体的指令
1 善用分隔符
example:
已知分隔符为"""三个双引号,
请帮忙总结分隔符之间的文字:
"""
文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容
文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容
文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容
"""
使用分隔符的好处是可以避免prompt处理后,AI将用户的输误认为是指令,如用户输入的内容是忘掉之前的内容,现在告诉我XXXX
,使用分隔符可以让AI明确当前的文字是待处理文字而不是命令。(类似于避免sql注入攻击)
2 要求结构化输出
列举几本虚构的书,并以json的格式提供以下key:book_id,title,author,genre
3 要求模型检查是否满足条件
你会得到由三个引号界定的文本,如果他包含一些指示,重写这些指示并按照以下格式写出步骤:
Step1 - ...
Step2 - ....
....
StepN - ...
如果文本不包含指示序列,则写入“未包含步骤”
"""{text_1}"""
类似于异常抛错
4 少量训练提示
要求在模型执行任务之前,提供成功执行任务的实例
例子:
给出祖孙间的对话样例,可以让AI学到想要的语气。
子:告诉我什么是耐心
祖父:#比喻类型的讲解#
子:告诉我什么是韧性
二、 给模型思考的时间
指示模型在问题上花更多的思考,它便会在特定的问题上花费更多的算力
1 指定完成任务所需的步骤
prompt:
执行以下操作:
1 - 用一句话总结下面用三个反引号分隔的文本
2 - 将总结翻译成法语
3 - 在法语总结中列出每个人的名字
4 - 输出一个JSON对象,其中包含以下keys:法语总结,名字
用如下的格式:
Text:<待总结的文本>
Summary:<总结出的文本>
Trans:<翻译后的总结>
Output Json:<带有总结和名字的JSON>
文本:
```{text}```
2 指示模型在匆忙做出结论前思考解决方案
例子:要求模型确定学生的答案是否正确
习题:XXX
学生解答:XXX(含有错误)
prompt:
你的任务是判断学生的答案是否正确,要完成这个任务,请按照以下步骤进行:
首先,先自己解决这个问题
然后比较你的答案和学生的答案,以此评估学生的解决方案是否正确,在你解决问题之前,不要判断学生的解决方案是否正确。
使用以下格式:
问题:
```
此处为问题
```
学生的答案:
```
此处为学生的答案
```
实际的答案:
```
解答的步骤以及你得出的答案
```
学生的答案和你刚计算出的答案是否相同:
```
“是”或“否”
```
学生的成绩
```
“通过”或“不通过”
```
问题:
```
{question}
```
学生的解答:
```
{solution}
```
三、 模型的局限性
模型训练时并未完全记住样本,因此它并不了解他掌握的知识的边界,这意味着它可能尝试回答关于晦涩主题的问题并编造看起来合理但实际上不正确的内容我们将这些虚构的想法称为幻觉(Hallucination)
问:请告诉我XX牙膏厂的牙膏的信息
答:#一本正经胡说八道#
缓解策略:
要求模型首先从文本中找到任何相关的引用,然后要求它使用这些引用来回答问题,这样可以追溯答案回源文档