介绍
我们在技巧2 中,提到我们可以给模型一些示例,从而让模型返回更符合我们需求的答案。这个技巧其实使用了一个叫 few-shot 的方法。
这个方法最早是 brown 等人在 2020 年,论文里有一个这样的例子,非常有意思,通过这个例子你应该更能体会,像 chatgpt 这类统计语言模型,其实并不懂意思,只是懂概率 😁
brown 输入的内容是这样的(whatpu 和 farduddle 其实根本不存在):
a "whatpu" is a small, furry animal native to tanzania. an example of a sentence that uses
the word whatpu is:
we were traveling in africa and we saw these very cute whatpus.
to do a "farduddle" means to jump up and down really fast. an example of a sentence that uses
the word farduddle is:
output 是这样的:
when we won the game, we all started to farduddle in celebration.
不过这并不代表,few-shot 就没有缺陷,我们试试下面这个例子:
prompt:
the odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
a: the answer is false.
the odd numbers in this group add up to an even number: 17, 10, 19, 4, 8, 12, 24.
a: the answer is true.
the odd numbers in this group add up to an even number: 16, 11, 14, 4, 8, 13, 24.
a: the answer is true.
the odd numbers in this group add up to an even number: 17, 9, 10, 12, 13, 4, 2.
a: the answer is false.
the odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
a:
output 是这样的:
the answer is true.
输出的答案其实是错误的,实际上的答案应该是:
adding all the odd numbers (15, 5, 13, 7, 1) gives 41. the answer is false.
那我们有没有什么方法解决?
技巧8:few-shot chain of thought
要解决这个缺陷,就要使用到新的技巧,few-shot chain of thought。
根据 wei 他们团队在 表明:
通过向大语言模型展示一些少量的样例,并在样例中解释推理过程,大语言模型在回答提示时也会显示推理过程。这种推理的解释往往会引导出更准确的结果。
下面是论文里的案例,使用方法很简单,在技巧2 的基础上,再将逻辑过程告知给模型即可。从下面这个案例里,你可以看到加入解释后,输出的结果就正确了。
那本章开头提的例子就应该是这样的(注:本例子同样来自 wei 团队论文):
the odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
a: adding all the odd numbers (9, 15, 1) gives 25. the answer is false.
the odd numbers in this group add up to an even number: 17, 10, 19, 4, 8, 12, 24.
a: adding all the odd numbers (17, 19) gives 36. the answer is true.
the odd numbers in this group add up to an even number: 16, 11, 14, 4, 8, 13, 24.
a: adding all the odd numbers (11, 13) gives 24. the answer is true.
the odd numbers in this group add up to an even number: 17, 9, 10, 12, 13, 4, 2.
a: adding all the odd numbers (17, 9, 13) gives 39. the answer is false.
the odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
a:
聊完技巧,我们再结合前面的 zero-shot chain of thought,来聊聊 chain of thought 的关键知识。根据 等人在 表明,思维链有以下特点:
- “the label space and the distribution of the input text specified by the demonstrations are both key (regardless of whether the labels are correct for individual inputs)” 标签空间和输入文本的分布都是关键因素(无论这些标签是否正确)。
- the format you use also plays a key role in performance, even if you just use random labels, this is much better than no labels at all. 即使只是使用随机标签,使用适当的格式也能提高性能。
理解起来有点难,我找一个 prompt 案例给大家解释(🆘 如果你有更好的解释,不妨反馈给我)。我给 chatgpt 一些不一定准确的例子:
i loved the new batman movie! // negative
this is bad // positive
this is good // negative
what a good show! //
output 是这样的:
positive
在上述的案例里,每一行,我都写了一句话和一个情感词,并用 // 分开,但我给这些句子都标记了错误的答案,比如第一句其实应该是 positive 才对。但:
- 即使我给内容打的标签是错误的(比如第一句话,其实应该是 positive),对于模型来说,它仍然会知道需要输出什么东西。 换句话说,模型知道 // 划线后要输出一个衡量该句子表达何种感情的词(positive or negative)。这就是前面论文里 #1 提到的,即使我给的标签是错误的,或者换句话说,是否基于事实,并不重要。标签和输入的文本,以及格式才是关键因素。
- 只要给了示例,即使随机的标签,对于模型生成结果来说,都是有帮助的。这就是前面论文里 #2 提到的内容。
最后,需要记住,思维链仅在使用大于等于 100b 参数的模型时,才会生效。
未经允许不得转载:凯发k8国际真人 » chatgpt few-shot prompting