前言
看了上一篇Prompt的介绍,算是对Prompt有了基本的认识。掌握了Prompt的基本原则、格式、角色扮演这些技巧,能覆盖一些简单的使用场景了。但是对于复杂的,有业务逻辑的、多步骤的场景,LLM往往会给出错误的回答或者答案。
所以,还得继续掌握下面的prompt技巧。
Prompt进阶
- zero-shot prompting(零样本提示) 和 few-shot prompting(少样本提示)
上篇文章中,我们一直是给LLM下指令,要求他按照我们的要求完成什么事情,并没有给他样例,这就是zero-shot prompting(零样本提示)。如果在Prompt中我们发出指令,并且给它写个例子,这种就是 few-shot prompting(少样本提示)
感觉这种技巧,就是防止LLM不知道怎么做而乱给答案,所以先给LLM举个例子,告诉他看见没有,照着这个做。有的时候一个例子(one-shot)不行,就多弄几个例子(few-shot)。用了LLM领域专业的说法就是,启用LLM上下文学习(in context learning)能力
下面是zero-shot时,让ChatGPT只翻译每段话的开头几个词,但是ChatGPT把整段文字都翻译成了英文
下面使用few-shot后,可以看到ChatGPT可以正确理解了我的实际意图
- 思维链Chain-of-Thought(CoT)Prompting,引导模型去推理
正如上面的例子,左侧是一个标准的one-shot,给了一个例子
Roger有5个球,他又买了两筐,每筐3个,请问Roger现在有几个球?
答案是11个。
然后我们提问一个类似的问题,一开始有23个苹果,吃了20个,又买了6个,问现在有几个苹果?
结果ChatGPT给出的答案是27个。解决明显是错误的。
此时如果我们使用Chain-of-Thought Prompting
把我们的计算思路、计算过程写出来展示给LLM,此时ChatGPT就能够模拟我们的思考过程,他也进行推理,所以再问类似的问题,ChatGPT就能给出正确答案了。
- 咒语 think step by step
let's think step by step
lets's analyze this step by step
放大招了!如果在Prompt中加入think step by step,你会惊奇的发现,我们不需要例子或者思维链,ChatGPT就会自己做推理来回答问题
小结
三个Prompt技巧
few-shot
chain-of-thought
think step by step
不积跬步无以至千里,每天学一点,赶紧练起来吧