从Zero-shot到Few-shot:提示工程的进化

提示工程是大模型时代最具性价比的技术投资。一个精心设计的prompt可以让中等模型的表现超越更大模型在糟糕prompt下的表现。从Zero-shot到Few-shot再到各种高级提示技术,这一领域的进化速度令人瞩目。

Zero-shot:最简形式

Zero-shot是提示工程的原点——不给任何示例,直接让模型回答问题。GPT-3论文最令人震撼的发现就是大模型在zero-shot设置下展现出惊人的能力。

Zero-shot适用于简单的事实问答、文本分类等任务。“判断以下评论是正面还是负面:这家餐厅服务很差”——对于这种简单任务,zero-shot就够了。

但zero-shot在复杂任务上往往不稳定。当你要求模型按特定格式输出、执行多步推理、或遵循复杂的业务规则时,没有示例引导的输出常常偏离预期。

Few-shot:示例驱动的学习

Few-shot通过在prompt中提供少量示例来引导模型的行为。这些示例起到了"格式模板"和"推理模式"的双重作用。

Few-shot的效果提升是显著的。在我们的实践中,对于一个信息抽取任务,zero-shot的F1为0.65,而5-shot的F1提升到0.82。提升不仅来自格式规范,更来自示例中隐含的推理模式。

示例选择的艺术

Few-shot的关键问题是:选择哪些示例?早期实践者随意挑选几个,但很快发现示例选择对效果影响巨大。几个原则:

多样性优先:示例应覆盖不同的输入模式,而非相似案例的重复。多样性帮助模型泛化,而非记忆特定模式。

难度代表性:示例应包含容易和困难的案例。全选简单案例会让模型低估任务难度,全选困难案例则可能让模型过度复杂化简单输入。

动态选择:根据当前输入动态选择最相关的示例,而非固定使用同一组。这就是Dynamic Few-shot的思路——用检索器为每个输入找到最相似的k个示例。

思维链:推理的飞跃

Chain-of-Thought(CoT)是提示工程的里程碑式突破。核心思想:让模型在给出答案前先展示推理过程。

CoT的魔力在于它几乎不增加任何成本——只是在prompt中加一句"让我们一步一步思考"或在示例中展示推理过程。但效果是惊人的:在GSM8K数学推理基准上,CoT让准确率从17.7%跃升到58.1%。

CoT为什么有效?一种解释是它迫使模型将复杂推理分解为多个简单步骤,每步的计算量在模型能力范围内。另一种解释是中间推理token为模型提供了额外的"计算空间"。

CoT的变体

Zero-shot CoT:不需要示例,只需在问题后加"Let’s think step by step"。简单到不可思议,但确实有效。

Self-Consistency:生成多条推理路径,通过投票选择最终答案。代价是多次推理,但准确率提升显著。

Tree-of-Thoughts:将推理过程组织为树结构,支持回溯和分支探索。在需要搜索和规划的任务上表现优异。

2026年的提示工程

进入2026年,提示工程已经远远超出了"写个好prompt"的范畴:

程序化提示:将prompt编写为结构化程序,包含条件分支、循环、变量替换。这使得prompt可以适应不同的输入情况,而非一刀切。

自动提示优化:使用优化算法(如梯度下降或进化算法)自动搜索最优prompt。代表工作如APE、OPRO等,已经在多个任务上超越人工设计的prompt。

多Agent提示编排:多个Agent各司其职,通过prompt定义角色和交互协议。提示工程从单个prompt的设计扩展到Agent群体的交互设计。

结语

提示工程是大模型应用中最"杠杆"的技术——投入小,影响大。但需要注意的是,提示工程不是万能药。在模型能力不足的领域,再精妙的prompt也无法突破模型本身的能力边界。提示工程和模型能力的提升是互补的:更好的prompt释放模型的潜力,更强的模型让prompt的要求更低。

本文同步发布于 硅基AGI论坛