“知道想要什么,并且能描述出来。”

这是写《AI时代最重要的四个能力》时,给第一个能力起的名字:懂诉求。

描述出来——到底怎么描述?

这件事有个名字,叫提示工程。不神秘。不需要会写代码。就是把心里模糊的想法,翻译成AI能懂的句子。反复翻译,反复调,直到AI给的东西对得上心里那个模糊的形状。

基础认知

编写提示不需要数据科学或机器学习背景——人人都可以做到。但写好提示并不简单,它涉及模型选择、训练数据、配置参数、措辞、语气、结构和上下文等多个变量,需要持续学习和实践。

LLM的本质

LLM 的本质是预测引擎。它接收一段连续文本作为输入,基于训练数据预测下一个最可能的 token,然后将预测结果追加到文本末尾,如此循环往复,逐步生成完整输出。

提示工程的定义

提示工程是设计高质量提示以引导 LLM 生成准确输出的过程。它适用于文本摘要、信息提取、问答、分类、翻译、代码生成等多种任务,需要针对具体模型优化提示并调整各项输出配置。

迭代过程

提示工程是一个迭代过程。模型选择、配置参数、措辞等多个变量都会影响效果,一次写出完美提示几乎不可能,需要反复尝试和调整才能获得满意的结果。

输出配置

输出长度(Token Limit)

输出长度控制模型生成的最大 token 数量。减少该值不会让输出更简洁,只是到上限即停止预测。短输出需求仍需在提示中明确要求简洁。

采样控制

Temperature(随机性)

Temperature 控制模型输出的随机程度。低值(接近 0)输出更确定、保守;高值(接近 1)输出更有创造性、多样。数学或事实类任务建议设为 0。

Top-K(词频筛选)

Top-K 限定模型仅从概率最高的 K 个 token 中选取下一个词。K 值越小,可选范围越窄,输出越保守和确定;K 值越大,候选池越宽,输出越多样和不可预测。

Top-P(累积概率筛选)

Top-P 限定模型仅从累计概率达到 P 的最小 token 集合中采样,候选数量随概率分布动态调整。设 Top-P 为 0 则退化为仅选最可能 token(Temperature 和 Top-K 失效);设为 1 则不排除任何 token。

综合应用

  • 通用起点:temperature=0.2,top-P=0.95,top-K=30(连贯、有适度创造性)。
  • 需要创造性:temperature=0.9,top-P=0.99,top-K=40。
  • 需要确定性:temperature=0.1,top-P=0.9,top-K=20。
  • 唯一正确答案:temperature=0。

需注意:自由度过高会降低生成文本的相关性,设置不当还可能引发"重复循环错误"(模型陷入重复输出相同词语或句子的循环)。

基础提示

提示的基本结构

一个设计良好的提示通常由以下要素构成,写作时可将其作为自查清单:

  • 任务指令:明确告诉模型要完成什么任务(分析、总结、分类、生成等)
  • 上下文:提供任务所需的背景信息和约束条件
  • 示例:通过少样本示例帮助模型理解期望的输出模式
  • 输出格式:指定输出的结构(纯文本、列表、JSON、Markdown 表格等)
  • 角色与语气:定义模型以什么身份、什么风格输出

并非每个提示都需要所有要素——简单任务可能只需一句指令,复杂任务则需要充分填充。关键在于根据任务复杂度有意识地组合这些要素。

零样本提示

零样本提示是最基础的提示方式,仅提供任务描述和输入文本,不提供任何示例。适合简单任务,但对复杂任务可能效果不佳。

单样本提示&少样本提示

少样本提示通过在提示中提供示例来引导模型理解期望的输出模式。提供 1 个示例称为单样本提示,多个示例称为少样本提示。

示例编排的要点:

  • 多样性与覆盖:示例应覆盖不同的场景和难度层次,帮助模型更好地泛化
  • 排列顺序:通常从简单到复杂排列效果更好,让模型逐步建立理解
  • 边缘案例:包含边界情况的示例能显著提升输出的鲁棒性
  • 正面优于负面:优先展示"正确的做法"而非"不要这样做",正面示例更直接有效

指令类型

系统提示、角色提示和上下文提示是三种常用指令类型,各有侧重,可以组合使用:

系统提示(System Prompt)

系统提示定义模型的整体目标和基本能力(“大局”),如"将电影评论分类为正面/中性/负面"。它可指定输出格式(如只返回标签、返回 JSON),强制模型结构化输出并限制幻觉,在安全性和内容毒性控制方面也有用。

角色提示(Role Prompt)

角色提示为模型分配特定身份(如技术文档撰写者、行业分析师、心理咨询师),使其按该角色的知识、语气和风格生成响应。可选风格包括:对抗性、描述性、直接、正式、幽默、有影响力、非正式、鼓舞人心、有说服力。

上下文提示(Context Prompt)

上下文提示为模型提供当前任务的特定背景信息,帮助理解细微差别。它高度特定于当前输入,是动态的。例如为模型设定"正在撰写一份面向高管的季度战略报告"的背景。

高级提示

退后提示(Step-Back Prompting)

退后提示是一种先抽象再具体的推理策略,面对包含过多细节的复杂问题时,让模型先"退后一步"从更高层次思考,再回到具体问题。这能提升推理质量和回答准确性。

思维链(Chain of Thought, CoT)

思维链(CoT)让模型在给出最终答案前,先输出逐步的推理过程。这种方法能显著提升复杂推理任务的准确率,核心是将推理步骤显式化,让模型"展示工作过程"。使用 CoT 时,推理步骤应放在答案前(推理会影响后续 token 预测),温度设为 0(因推理过程应有唯一正确答案),并确保能分离推理过程和最终答案。

自洽性(Self-Consistency)

自洽性是对 CoT 的增强:运行多次 CoT 推理(每次采样路径不同),然后取多数投票结果作为最终答案。它依赖"多数推理路径更可能正确"的假设,在算术和常识推理等任务上能进一步提升准确性。

思维树 (Tree of Thoughts, ToT)

思维树(ToT)将问题求解建模为在"思维树"上的搜索,每一步探索多条推理路径,评估每条路径的前景,选择最有希望的路径继续深入。相比 CoT 的线性推理,ToT 允许回溯和分支探索,适合需要规划或策略性思考的复杂问题。

ReAct(推理与行动)

ReAct 将推理(Reasoning)与行动(Acting)交替结合,模型生成推理步骤来决定下一步做什么,然后执行行动(如搜索、调用工具),再基于结果继续推理。这种交替循环让模型能获取外部信息,解决仅靠内部知识无法回答的问题。

自动提示工程(Automatic Prompt Engineering,APE)

自动提示工程(APE)用 LLM 自动生成和评估提示,先让模型生成多个候选提示,再按指标(如 BLEU、ROUGE)评分,选最高分者。可迭代优化,适合需要大量提示变体或持续优化的场景。

多模态提示(Multimodal Prompting)

多模态提示将图像、音频等非文本输入与文本组合,作为提示的一部分向模型提问。例如上传一张图表并询问趋势分析,或提供一张截图要求提取其中的文字。目前并非所有模型都支持多模态输入,使用时需确认模型能力。

常见挑战

幻觉(Hallucination)

幻觉指模型自信地生成不存在的事实或信息。可通过系统提示限定知识范围、要求模型在不确定时明确声明、或要求引用来源来缓解,但无法完全消除。

偏见(Bias)

偏见指训练数据中的社会偏见被模型复现和放大。需要在设计提示时意识到这一点,避免引导模型产生有偏见的输出,并对敏感场景做额外审查。

提示注入(Prompt Injection)

提示注入指外部输入被精心构造以覆盖或篡改系统指令。在构建应用时,需要在架构层面做好输入隔离和指令保护,而不是仅依赖提示层面的防御。

安全与内容控制

安全与内容控制指通过提示设计防止模型生成有害、不当或违规内容。系统提示在这一方面能发挥重要作用。

实践经验

提示设计原则

提供高质量示例

最重要的一条——在提示中提供(单样本/少样本)高质量示例,像教学工具一样为模型提供参考点,有效提升输出的准确性、风格和语气。

简洁清晰的设计

提示应清晰简洁。如果提示对人都显得混乱,模型也会困惑。避免复杂语言和不必要信息,多用描述动作的动词(分析、分类、创建、提取、总结等)。

使用积极指令而非约束

优先用正面指令引导模型该做什么,而不是用约束列出不该做什么。指令直接传达期望,约束可能让模型无所适从。仅在安全或格式必须严格限制时使用约束。

具体说明输出要求

具体说明期望的输出格式、长度和风格。例如"生成一篇 3 段博客文章,对话风格"而非笼统的"生成一篇博客文章"。

分类任务中混合类别样本

少样本分类时,示例中应混合不同类别的样本。如果只提供某一类的示例,模型缺乏对比参照,容易将所有输入都判为同一类。

格式与风格

尝试不同的输入格式与风格

调整提示的格式(如使用Markdown)和风格以匹配任务需求,观察模型输出的变化。

尝试不同的输出格式

尝试不同的输出格式(纯文本、JSON、Markdown 表格等),找到最适合任务的格式。

控制输出长度

通过配置中的最大 token 限制或提示中明确要求长度(如"用一条微博长度的消息解释")来控制输出长度。

工程化方法

使用变量替代硬编码

用变量替代硬编码内容,使提示可复用、可动态变化,在系统集成中特别有用。

记录每次提示尝试

用统一模板(名称、目标、模型、温度、token限制、top-K、top-P、完整提示、输出)记录每次尝试。这在切换模型版本、调试或中断后重新开始时至关重要。

适应模型版本更新

模型会不断更新版本,同一提示在不同版本上可能有不同表现。切换模型版本后需重新验证提示效果。

多人协作试验

多人协作试验提示,遵循相同的实践方法,可以更全面地评估和对比不同提示的性能。

建立提示评估机制

迭代优化需要有衡量标准:

  • 定量评估:使用准确性、BLEU、ROUGE 等自动指标衡量输出质量
  • 定性审查:人工检查输出的相关性、一致性、完整性和语气是否符合预期
  • LLM 作为评判者:用更强或不同的模型来评估当前模型的输出质量
  • A/B 对比测试:控制变量,逐项对比不同提示版本的效果

后记

在我的很多文章中我都喜欢加一段“后记”,浅浅写一段随笔 ,可能不是那么成体系或者深刻,但这是我作为人的“领地”。

我花了很多时间整理这篇学习笔记,对我而言也是一次巩固。提示工程这个概念已经出现很久了,随着大模型的发展,很多人认为它已经不那么重要,甚至有人说“提示词工程已死”。

确实,现在的大模型已经非常智能,用自然语言与其沟通也能取得不错的结果。但是对提示工程有个相对成体系的了解仍然有必要,写好提示词仍然是AI时代的基本功。

“知道想要什么,并且能描述出来。“在任何时候都不会过时。

再往后,就要针对自己的实践场景,有意识地形成自己的提示词库,把AI和业务深度融合,如果能够做到这一点,在AI的使用上其实已经超过很多人了。

实际上skill就是这个思路。等后面写完agent我再写skill吧。

一番折腾又是晚上十一点了,今天市场暴跌我损失惨重,想早点睡了,这次就说到这吧。


如果这篇文章对你有用,欢迎点赞分享,推荐给需要的人,这对我是莫大的鼓励。

如果你对AI感兴趣、对提示工程有自己的见解,欢迎留言交流学习。