目前为止另一种提示策略是few shot prompt,它是基于一些样例(也称为shot)来完成你希望它做什么的展示模型。
考虑到上面的例子,在这些例子中,我们试图将客户反馈分为积极的和消极的。我们展示了3个正面/负面反馈的模型例子,然后我们展示了一个尚未分类的新反馈(它不起作用!:)。该模型认为前3个例子被分类为正面或负面,并使用该信息将新例子分类为负面。
这种组织例子的方式对我们而言是非常重要。由于我们将这3个例子作为输入:分类,因此模型在最后一行后输出一个单词,而不是说像这篇评论那样积极的输出一整句话。
备注:
每一对输入-输入 我们称为示例
更多的结构模型
对于few shot prompting的一个关键用例是,当您需要以一种难以向模型描述的特定方式结构化输出时。为了理解这一点,让我们考虑一个相关的例子:假设您需要通过分析当地报纸文章来编译附近城镇知名公民的姓名和职业。您希望模型阅读每篇文章,并以Last, First [OCCUPATION]格式输出姓名和职业列表。为了让模型这样做,你可以给它看一些例子:
通过显示正确输出格式的模型示例,它能够为新文章生成正确的输出。
备注:
尽管您可以使用指令提示符来生成相同的输出,但few shot prompt可以帮助输出更加一致。
变体的shot提示指令
“shot”一词与“例子”同义。除了few-shot prompting,还有两种其他类型的shot prompting。不要想太多!这些变量之间的唯一区别是您向模型展示了多少个示例。
变量:
0 shot prompting:没有例子显示给模型
1 shot prompting:向模型展示1个例子
few shot prompting:2+例子显示给模型
0-shot prompting
0-shot prompting是最基本的指令提示形式。它只是向模型显示一个没有示例的提示,并要求它生成响应。因此,到目前为止您看到的所有指令和角色提示都是0-shot指令提示。0-shot指令提示符的另一个例子是:
Add 2+2:
这是0-shot,因为我们没有展示任何完整的例子模型。
1-shot prompting
1-shot指令提示是指当您向模型展示单个示例时。例如,0-shot指令提示的的Add 2+2:的模型模拟1-shot指令提示:
Add 3+3: 6
Add 2+2:
我们只展示了一个完整的例子(Add 3+ 3:6),所以这是一个1-shot 指令提示。
Few-shot prompting
few-shot 指令提示是当你展示模型有2个或更多的例子时。所有在此变体部分以上的提示都是few-shot 指令提示。根据以上两种指令模拟few-shot指令提示:
Add 3+3: 6
Add 5+5: 10
Add 2+2:
这是因为我们已经展示了至少2个完整的例子(Add:3+ 3:6 和Add:5+ 5:10)。通常,你展示模型的示例越多,输出就越好,所以在大多数情况下,Few-shot prompting 比0-shot prompting 和1-shot prompting更受欢迎。
结论:
Few-shot prompting是一种强大的技术,可以让模型产生准确和正确格式化的输出!