AI技术文章

简单却反直觉:通过「提示词重复」准确率从21.33飙升至97.33|谷歌重磅

作者:AI修猫Prompt0 次浏览 来源:AI修猫Prompt
简单却反直觉:通过「提示词重复」准确率从21.33飙升至97.33|谷歌重磅

竟然只需要一次Ctrl+V?这可能是深度学习领域为数不多的“免费午餐”。

竟然只需要一次Ctrl+V?这可能是深度学习领域为数不多的“免费午餐”。

70组基准测试,47次完胜,0次失败。这是Google Research在Gemini、GPT-4o和DeepSeek V3上测试Prompt Repetition(提示词重复) 策略后的成绩单。

简单却反直觉:通过「提示词重复」准确率从21.33飙升至97.33|谷歌重磅

仅仅是将提示词重复输入一次,Gemini 2.0 Flash-Lite在长文本检索任务上的准确率就从21.33%飙升至97.33%。更关键的是,这种提升不需要微调,不改变输出格式,甚至几乎不增加端到端延迟。恰好昨天收到一位读者朋友的私信,他也向我强烈推荐了这个“知乎热榜第一”的实用技巧:

简单却反直觉:通过「提示词重复」准确率从21.33飙升至97.33|谷歌重磅

为什么这种看似“简单粗暴”的操作如此有效?它又在何种边界下会失效?带着这些疑问,让我们深入Google Research这项反直觉研究的内核。

核心挑战:LLM的“线性阅读”困境

要理解为什么“重复”有效,您首先需要理解当前主流大语言模型(如GPT、Gemini、Llama等)的一个基础特性:因果注意力机制(Causal Attention)

什么是因果语言模型?

绝大多数LLM都是因果语言模型(Causal Language Models)。这意味着模型在处理文本时,是严格按照从左到右、从前到后的顺序进行的。

  • 过去的Token看不到未来:当模型处理输入序列前面的Token时,它无法“注意”或“看到”序列后面的Token。
  • 语境的单向依赖:只有后面的Token可以关注前面的Token。

“先读题”还是“先看选项”?

这种机制导致了一个实际问题:Token的顺序会极大地影响预测性能

想象一下做英语阅读理解题。如果试卷的格式是“先列出一大段文章(Context),最后才给出问题(Question)”,这对于人来说可能不是问题,因为我们可以读完问题后再回头看文章。但对于因果模型来说,当它在“读”前面的文章时,它还完全不知道后面会问什么。因此,它在构建文章的内部表示时,可能无法有效地提取与未来问题相关的信息。

简单却反直觉:通过「提示词重复」准确率从21.33飙升至97.33|谷歌重磅

研究者在论文中指出,<CONTEXT> <QUESTION>(语境在前,问题在后)的查询形式,往往比<QUESTION> <CONTEXT>(问题在前,语境在后)的表现要差。

解决方案:Prompt Repetition

为了解决上述问题,研究者提出了一种极其简单的策略:Prompt Repetition

简单却反直觉:通过「提示词重复」准确率从21.33飙升至97.33|谷歌重磅

具体操作

这一策略不需要修改模型架构,也不需要重新训练,仅需在输入层面进行转换:

简单来说,就是:Ctrl+A (全选) -> Ctrl+C (复制) -> Ctrl+V (粘贴到末尾)。把这一长串双倍的内容发送给模型即可。

  • 基线(Baseline):输入为<QUERY>
  • 重复策略:输入转换为<QUERY><QUERY>

生效机制

为什么简单的重复能解决问题?

当输入变为<QUERY><QUERY>时,模型在处理第二遍提示词时,能够利用注意力机制“回头看”到第一遍提示词中的所有内容。

这意味着,当模型在第二遍读取“语境”部分时,它已经通过第一遍的结尾看到了“问题”。这实际上模拟了人类“带着问题去阅读”的认知过程。这种机制让模型中的每一个Token都有机会关注到提示词中的任何其他Token,从而克服了因果注意力的局限性。

广泛的实验验证

为了验证这一假设,研究者在当前最主流的7个大模型上进行了广泛测试。这些模型涵盖了不同的厂商和参数规模:

  • Google:Gemini 2.0 Flash, Gemini 2.0 Flash Lite
  • OpenAI:GPT-4o, GPT-4o-mini
  • Anthropic:Claude 3 Haiku, Claude 3.7 Sonnet
  • DeepSeek:DeepSeek V3

测试时间为2025年2月至3月,使用的均是官方API。

涵盖的基准测试

研究使用了7个基准测试集,涵盖了从常识推断到数学问题的多个领域:

  1. ARC (Challenge):科学问答
  2. OpenBookQA:开放式问答
  3. GSM8K:小学数学文字题
  4. MMLU-Pro:多任务语言理解(专业版)
  5. MATH:数学问题
  6. NameIndex (自定义):长列表检索任务
  7. MiddleMatch (自定义):列表中间值匹配任务

实验结果:压倒性的胜利

实验数据表明,在非推理(Non-Reasoning)模式下,即不使用思维链(Chain of Thought)提示时,Prompt Repetition带来的提升是全面且显著的。

简单却反直觉:通过「提示词重复」准确率从21.33飙升至97.33|谷歌重磅

  • 胜率统计:在70组“模型-基准”的组合测试中,Prompt Repetition取得了47次统计学显著的胜利(p-value < 0.1),并且0次失败
  • 一致性:无论是在参数较小的模型(如Haiku, Flash Lite)还是顶级模型(如GPT-4o, Sonnet)上,准确率均有提升。

1.语境顺序的影响

研究者特别测试了两种输入顺序:

  • Options-first:选项在前,问题在后。
  • Question-first:问题在前,选项在后。

结果显示,在Options-first的场景下,Prompt Repetition带来的提升最为巨大。 12这有力地支持了前面的理论:重复输入让模型在处理选项时已经“知晓”了问题,从而弥补了语境在前时的劣势。

2.极端任务的表现:NameIndex

为了展示该方法在长上下文检索中的威力,研究者设计了NameIndex任务。

简单却反直觉:通过「提示词重复」准确率从21.33飙升至97.33|谷歌重磅

  • 任务描述:给定一个包含50个名字的列表,要求模型输出第25个名字。
  • 惊人的提升:对于Gemini 2.0 Flash-Lite模型,在基线情况下的准确率仅为21.33%。而在使用Prompt Repetition后,准确率飙升至97.33%

这表明,对于需要精确定位和记忆输入细节的任务,重复输入能产生质的飞跃。

效率分析:真有免费的午餐吗?

通常在计算机科学中,性能的提升往往伴随着成本的增加(如时间、算力)。将输入长度翻倍,直觉上似乎会使处理时间翻倍。但研究者的发现令人惊讶:对于用户感知到的延迟而言,Prompt Repetition几乎是零成本的。

简单却反直觉:通过「提示词重复」准确率从21.33飙升至97.33|谷歌重磅

第1列 (Accuracy): 再次确认准确率,绿/蓝最高,红色(填充)最差,说明必须重复内容才有效,光凑字数没用。

第2列 (Average Latency - 平均延迟):不同颜色的条几乎是一样长的,输入加倍并没有导致用户等待时间加倍。因为输入处理(Prefill)是并行的。

第3 & 4列 (Response Length - 回复长度),条的长度也是一样的,重复输入不会让模型变得啰嗦,它输出的答案长度和原来一样。

预填充(Prefill)与生成(Generation)

要理解这一点,您需要区分LLM推理的两个阶段:

  1. 预填充阶段(Prefill):模型处理输入的提示词。这个阶段是高度并行化的(Parallelizable)。
  2. 生成阶段(Generation):模型逐个生成输出Token。这个阶段是串行的,且通常是延迟的主要来源。

延迟数据

  • 生成长度不变:实验显示,Prompt Repetition并不会增加模型生成回复的长度(Token数)。
  • 延迟几乎持平:尽管输入翻倍增加了预填充阶段的计算量,但由于并行计算的特性,这种增加在总延迟中往往可以忽略不计。除了极少数超长文本(如NameIndex任务或重复3次)会导致Anthropic模型延迟增加外,其他情况下延迟与基线保持一致。

简而言之,您得到更准确的答案,却不需要等待更久。

边界条件:何时不需要重复?

虽然Prompt Repetition效果显著,但它并不是万能的。研究者指出了它的适用边界。

推理模型与思维链(Chain of Thought)

当研究者启用模型的推理能力,即提示模型“一步步思考”(Think step by step)时,Prompt Repetition的效果变得中性甚至微弱正向

简单却反直觉:通过「提示词重复」准确率从21.33飙升至97.33|谷歌重磅

  • 数据:在推理模式下,28次测试中仅有5次显著胜利,1次失败,其余为平局。
  • 原因分析:经过强化学习(RL)训练的推理模型,或者使用了思维链的模型,往往会在生成答案之前,在内部输出中重复用户的请求或关键信息。换句话说,模型已经在内部“自我重复”了,因此外部的显式重复带来的边际效益就降低了。

这也反向证明了Prompt Repetition的本质:它是一种显式的、由用户端发起的“思维链”替代品,适用于那些不进行显式推理的场景。

消融实验

为了科学地证明性能提升确实源于内容的重复,而不是仅仅因为输入变长了或者提示词结构的变化,研究者进行了严谨的消融实验(Ablation Studies)。

简单却反直觉:通过「提示词重复」准确率从21.33飙升至97.33|谷歌重磅

研究者对比了以下几种变体:

  1. Baseline:<QUERY>
  2. Prompt Repetition:<QUERY><QUERY>
  3. Prompt Repetition (Verbose):<QUERY> Let me repeat that: <QUERY>(加入自然语言连接词)
  4. Prompt Repetition x3:<QUERY><QUERY><QUERY>
  5. Padding (填充对照组):<QUERY> ... (无关句点) ...(填充至与重复相同的长度)

实验发现

  • 填充无效:图中所有的 红色柱子 (Padding) 高度通常都与橙色柱子持平或极低,说明使用句点填充(Padding)并未带来性能提升。这有力地证明了,效果的提升不是因为输入长度增加,而是源于重复的信息本身
  • 自然语言连接词:加入 "Let me repeat that"(Verbose版本)的表现与直接重复相似,有时略好,但差异不大。
  • 三次重复(x3):在某些极难的任务(如MiddleMatch)上,上图的最后一行,重复三次的效果甚至优于重复两次。 这暗示了对于特定难度的任务,更多的“回顾”机会可能是有益的。

总结

有时,解决最复杂问题的方案往往最朴素。Prompt Repetition 以一种近乎“反直觉”的简洁,打破了我们对复杂提示工程的迷信,证明了在非推理任务中,单纯的信息重申远比精心设计的思维链或填充策略更为有效。它巧妙地利用了并行计算掩盖了输入加倍的延迟成本,在不改变模型权重、不增加生成长度、不牺牲响应速度的“不可能三角”中找到了完美的平衡点。这一发现不仅为现有的 RAG 系统和长文本应用提供了立竿见影的优化手段,也为下一代模型设计留下了伏笔:既然“重复”如此有效,那么让模型在底层学会“自我回顾”而非依赖用户的显式输入,或许就是通向更强记忆力与精准度的下一块拼图。当模型记不住时,请记住:最高级的技巧,往往只需要再说一遍。

文章来自于“AI修猫Prompt”,作者 “AI修猫Prompt”。

相关主题

读完之后

加入 AINRK 交流群

了解加入交流群的方式,与更多 AI 从业者交流。

查看交流群说明(在新窗口打开)