1463 字
7 分钟
提示工程:从手工模板到自动优化

提示的作用#

提示(Prompt)是用户输入给模型的信息,用来引导模型生成符合需求的输出。大模型在预训练阶段学习了“根据前文续写”的能力,提示工程本质上是在设计一段前文,让模型沿着期望的方向续写。

同一个问题,不同的提示可能得到完全不同的结果:

请评价这部电影。
请从剧情、表演、摄影三个方面评价这部电影,每部分不超过 100 字。
你是一位严格的影评人。请用三点指出这部电影的缺点,并给出改进建议。

提示工程的目标不是“让模型更聪明”,而是把任务说清楚:明确角色、目标、输入、输出格式和约束。

提示的组成#

一个完整的提示通常包含:

  • 角色/背景:模型扮演谁、处于什么场景;
  • 任务指令:要做什么,动词尽量明确;
  • 输入数据:待处理的文本、代码或问题;
  • 示例:可选的输入—输出样例;
  • 输出格式:长度、结构、语言、是否引用来源;
  • 约束:不能做什么、遇到不确定时如何处理。

结构化提示常用分隔符区分指令和数据,例如:

【任务】判断用户评论的情感倾向。
【评论】<<<用户评论>>>
【输出】只输出“正面”“负面”或“中性”。

分隔符能降低指令与数据混淆的风险,也便于模型定位输入边界。

离散提示与连续提示#

提示构建策略可以分为两类:

  • 离散提示(硬提示):用自然语言词构造模板,依赖人的先验知识,可读、可迁移,但需要手工调试;
  • 连续提示(软提示):在嵌入空间学习一组可训练向量,不对应真实词,通过反向传播优化。

软提示的代表是 P-Tuning 和 Prefix Tuning。它们把提示参数化,让模型自己学习“什么样的上下文最有利于任务”,但需要训练数据,且可解释性较弱。具体机制见 参数高效微调。

上下文学习#

上下文学习(In-Context Learning, ICL)在提示中提供若干示例,让模型通过类比完成新样本,不更新参数:

输入:这部电影太精彩了。
输出:正面
输入:剧情拖沓,演员表演生硬。
输出:负面
输入:画面不错,但故事很无聊。
输出:

ICL 的效果取决于:

  • 示例质量:示例必须正确、格式一致;
  • 示例数量:通常几个到几十个,过多会占用上下文;
  • 示例顺序:模型可能受近因效应影响;
  • 示例相关性:与测试样本相似的任务和领域更有效。

ICL 不需要训练,但推理成本随示例长度增加,且对提示格式敏感。SFT 则把任务模式写入参数,行为更稳定,见 LLM 有监督微调。

自动提示优化#

手工提示依赖反复试错。自动提示优化把“写提示”转化为搜索或优化问题。

APO#

APO(Automatic Prompt Optimization)从一个初始提示出发,迭代执行:

  1. 用当前提示让模型生成输出;
  2. 将输出与标准答案比较,得到误差或“失败原因”;
  3. 把失败原因和当前提示交给大模型,让它改写提示;
  4. 在验证集上评估新提示,保留更好的版本。

它类似梯度下降,只是“梯度”由自然语言描述的误差代替,更新对象是提示文本而不是参数。缺点是优化容易局限在初始提示附近。

APE#

APE(Automatic Prompt Engineer)先让大模型根据少量示例生成一批候选提示,再在验证集上给每个候选打分,选择得分最高者;也可以对高分候选做重采样和改写,继续搜索。相比 APO,APE 从多个初始点出发,探索范围更广,但候选生成和评估的成本更高。

方法搜索方式优点局限
手工提示人工试错灵活、可解释依赖经验,难以规模化
APO从初始提示迭代改写有明确误差反馈容易陷入局部最优
APE生成候选 + 打分筛选探索范围广评估成本高

自动优化得到的提示往往可读性较差,甚至包含看似无意义的词,但在特定任务上有效。它适合固定任务和大规模评估,不适合需要人工审查的高风险场景。

实践建议#

  • 先明确评估标准:没有稳定的验证集,就无法判断提示是否变好;
  • 一次只改一个因素:角色、示例、格式、温度分别调整,便于归因;
  • 用分隔符和格式约束:减少指令注入和输出解析错误;
  • 让模型承认不确定:在提示中要求“不知道时说明”,比强迫回答更安全;
  • 防范提示注入:外部文档、网页内容可能包含恶意指令,不能无条件当作可信输入;
  • 控制上下文长度:示例和检索内容越多,成本和延迟越高,也可能稀释关键信息。

对于需要多步推理的问题,单纯的提示模板不够,需要思维链、思维树等技术,见 CoT、ToT 与 GoT。需要外部知识时,则要结合 RAG。

相关阅读#

提示工程:从手工模板到自动优化
https://biscuit0613.github.io/posts/nlp/12-01-prompt-engineering/
作者
Biscuit
发布于
2026-10-20
许可协议
CC BY-NC-SA 4.0
模型压缩:量化与蒸馏
RAG:检索增强生成