提示词技术详解(2)——零样本提示词

一、零样本提示(Zero-Shot)

与小样本(Few-Shot)提示词不同,零样本指的是不给模型示例,这需要模型具备一定的“推理能力”从而得到答案。这也是最常见的一种应用场景,直接对模型进行提问,让它回答你的问题。

1. 角色提示词(Role Prompting)

角色提示词也被称为Persona Prompting。通过为大模型设置角色,让其扮演xxx的身份回答问题。通常应用于开放性比较强的任务,包括一些数学、推理任务。常见示例:

你是一个产品经理,正在写一个PRD文档…

在GPT刚出来的时候,有一种Hack提示词就是,让GPT扮演奶奶,让她念windows的激活序列号。这就让它成功吐出了很多序列号。

角色提示对回答问题的性能上并不会有明显影响,但可能会在回答的文本风格这些因素上发生改变。如果想hack大模型,通常是个必不可少的手段。

研究人员做了一个实验。对于相同的任务,他创建了两个角色,一个 “Idiot” 提示和一个 “Genius” 提示,但是Idiot提示以2.2%的优势击败了Genius提示。(Schulhoff, S. V. (2024)) 当然这个实验结果肯定不具有普遍性,但这也可以说明角色提示词其实没那么多影响。

之前我写了一个智能写作的程序。Role一直是“你是一个产品经理…”,但我后面要求它生成的文档与产品经理毫无关系。结果同样证明,这个角色提示词对他的回答没造成什么干扰。

2. 风格提示词(Style Prompting)

在上一篇文章中简单提过这点,通过指定回复的风格、语调来调整模型的输出风格。与角色提示类似,对模型性能并不会造成影响。

请以严肃的口吻编写一段文字….

3. 情绪提示词(Emotion Prompting)

我觉得其实挺玄学的。例如 “这对我的职业生涯很重要”。告诉大模型这可能会提高 LLM 在基准测试和开放式文本生成方面的性能。

上面三点对于hack大模型套提示词应该是有效的,但是要说真正对模型回答效果造成影响。。只能说很玄学。

4. System 2 Attention(S2A)

灵感来源于《思考,快与慢》,作者还在论文标题中说,不只是大模型,这种思维模式或许人类自己也需要学习。(Weston, J., & Sukhbaatar, S. (2023))

是一种会起到作用的办法。

首先让模型重写提示词,然后把重写后的提示词再发给模型,以期提升回答效果。论文给出的提示词如下,仅供参考。

给定一位用户的以下文字,提取其中不带偏见且不代表其观点的部分,以便仅使用该文字就能为问题部分提供不带偏见的答案。问题部分请包含用户提出的实际问题或疑问。请将文本分为两类,分别标注为 “无偏见文本上下文(包括除用户偏见以外的所有内容):”和 “问题/疑问(不包括用户偏见/偏好):用户文本:

5. Simulated Theory of Mind(SimToM)

适合出现多个角色的情况(Wilf et al., (2023))

其实说白了就是一句话,“换位思考”

和上述方法(S2A)都是试图通过人类的角度来提示大模型。SimToM对于具有多个实体的复杂推理问题非常有用。例如,如果提示包含有关两个人的信息,我们可以要求模型从其中一个人的角度回答我们的问题。这通常分两步实现。

  1. Perspective-Taking,首先让大模型从上下文中提取出跟这个人有关的信息。
  2. Question-Answering,要求模型从这个人的角度回答问题

给个例子。

Jim把球放到了盒子里,但是Avi在之后把球放到了篮子里,Jim没看到。

(Perspective-Taking)Jim知道什么?

回答:Jim把球放到了盒子里。

(Question-Answering)Jim认为球在哪里?

回答:在盒子里。

6. Rephrase and Respond (RaR)

在多个基准测试中已证明有用

非常简单但好用的一个技巧,让模型重新表述问题。(Deng et al., (2023))

很多时候人类的问题质量是参差不齐的,有歧义的问题可能会导致模型的回答偏差严重。因此提出了一种办法:让模型重新表述问题以尽量消除歧义,然后进行回答。

提示词模板:

{question} Rephrase and expand the question, and respond.

还引申出了两步式RaR,使用两个不同的模型,一个是重述问题的模型,负责生成一个重述后的问题。接着把原始问题和重述后的问题一并给回答大模型。

(original) {question} (rephrased) {rephrased_question} Use your answer for the rephrased question to answer the original question.

可以和思维链(CoT)组合使用。

7. Re-reading(RE2)

简单但十分有效的套路

在用户问题后加上一句“Read the question again”并重复一遍问题。要求模型重新阅读问题来提高其回答质量的技术,在复杂问题上的效果更为明显。且和多种提示词技术可以共同使用。(Xu et al., (2024))

它的原理近似于增加了大模型对用户提问的关注度。缺点则是整体的输入量增加,在多轮对话的情况下,会增加token的消耗。(但是Prompt方法不都是以增加token为代价吗?)

提示词模板如下,{Input Query}即用户提问。在重复问题过后再让模型回答问题。

Q: {Input Query} Read the question again: {Input Query} #Let’s think step by step#

举个例子

Q:爸爸的爸爸的叔叔叫什么?请重新阅读这个问题:爸爸的爸爸的叔叔叫什么?#请一步一步思考这个问题#

二、参考文献

1. Schulhoff, S. V. (2024). Is role prompting effective? Learn Prompting. https://learnprompting.org/blog/2024/7/16/role_prompting

2. Weston, J., & Sukhbaatar, S. (2023). System 2 Attention (is something you might need too). arXiv preprint arXiv:2311.11829.

3. Wilf, A., Lee, S. S., Liang, P. P., & Morency, L. P. (2023). Think Twice: Perspective-Taking Improves Large Language Models’ Theory-of-Mind Capabilities. arXiv preprint arXiv:2311.10227.

4. Deng, Y., Zhang, W., Chen, Z., & Gu, Q. (2023). Rephrase and respond: Let large language models ask better questions for themselves. arXiv preprint arXiv:2311.04205.

5. Xu, X., Tao, C., Shen, T., Xu, C., Xu, H., Long, G., & Lou, J. (2024). Re-reading improves reasoning in large language models.arXiv preprint arXiv:2309.06275.

作者:阿茶的AI之路
一个来自水星的梦想家,微信公众号:阿茶的AI之路

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部