Prompts

提示精髓:¹ 好炼 ² 练好。

View on GitHub

本节讨论精髓是关于提示工程(Prompt Engineering)的系统化方法论。

核心观点是提示工程是与生成式AI交互的关键技术,需要遵循四个核心原则:清晰具体的表达提供充分上下文使用自然简洁的语言以及持续实验迭代

文档试图解决的核心问题是:如何设计高质量的提示以最大化生成式AI模型的输出效果,将其从无序的口语化内容转变为结构化的技术指南,使研发团队和产品经理能更有效地应用AI技术。

操作实践

问题一

Ⅰ. 如何量化这四个核心原则评估提示工程的有效性?

非常好的问题!你一下子抓到了提示工程(Prompt Engineering)的本质。这门学科在近两年随着生成式AI(Generative AI)爆发式发展之后,突然变得极其重要。很多人以为提示工程就是”随便写写句子让AI听话”,其实不然,它完全可以是一门科学,而且是非常有方法论可循的科学。你提出的四个核心原则 —— 清晰具体、充分上下文、自然简洁、持续迭代 —— 简直是切中了提示工程的命脉。下面我会非常系统地回答你的两个问题。

先总括一下四个原则的哲学基础: 提示工程本质上是个 沟通优化问题,而这里的”沟通”的一方是人类(你),另一方是一个极其强大但又极其”笨拙”的智能体(生成式AI模型,比如GPT、DALL-E、Claude等等)。说它强大,是因为这些模型见过世界上几乎所有的文本/图像/音频,学到了海量的模式和知识;说它笨拙,是因为它 完全按照你给的提示字面意思去”猜测”你的意图,它没有人类默认的”常识性的模糊补全能力”。所以你必须像在给一个超级聪明的、但又完全不懂你背后的隐含假设的”外星人”下指令一样,非常明确地告诉它你要什么。

要量化提示工程的有效性,其实就是要把这四个原则变成 可操作、可度量 的指标。注意,提示工程的有效性最终体现在 生成结果的质量 上,所以我们既要看原则本身,也要看AI的输出结果。

下面我把每个原则如何量化拆解开来讲:

原则1:清晰具体(Clarity & Specificity) 这个原则的核心思想是:不能让模型猜测你的意图。好的提示应该是像一份合格的”需求说明书”。 量化指标可以是:

原则2:提供充分上下文(Sufficient Context) 模型不是人脑,它没有”常识”,所以你得把所有背景信息明确告诉它。就像写论文不能假设审稿人全知一样。 量化指标可以是:

原则3:使用自然简洁的语言(Natural & Concise Language) 这个原则很容易被忽略:很多人写提示喜欢啰嗦,或者用非常书面、非常官僚的语言(”烦请贵模型依据如下参数生成一份……”),殊不知模型在面对 极其臃肿/不自然的句子 时效果会大幅下降,就像人看特别绕口的公文一样难受。 量化指标有:

原则4:持续实验迭代(Iterative Refinement) 这个原则是最容易被忽略、但又最重要的。很多人以为写一次提示就万事大吉,其实 提示工程是个不断试错、逼近的过程。 量化指标:

把上面这些指标综合起来,你其实可以设计一个 提示工程质量评分表(Prompt Quality Score, PQS),比如:

  PQS = 0.3*(意图覆盖率) + 0.25*(上下文完备度) + 0.2*(1 - 冗余度) + 0.15*(收敛轮次倒数) + 0.1*(1 - 歧义率)

这样每次写完提示一跑指标就知道效果好不好,哪个维度需要加强。

问题二

Ⅱ. 能否列举一些违反这四个核心原则的提示工程案例?并归纳一些核心观点。

下面我举8个反面例子,每个例子违反一个或多个原则,然后我归纳出经验教训。

案例1:违反”清晰具体”

提示:”写个好笑的段子吧。” 问题:啥叫”好笑”?什么类型喜剧?针对谁的?字数限制呢?完全没说。模型输出可能是相声、小品、冷笑话、脏笑话里的任意一种,200字也好20字也好。
结果:模型瞎蒙,10次输出有9次不满意。
教训:没有明确约束的形容词(好笑/有趣/有创意)等于没说。应该改成:”写一个300字以内,面向18-25岁年轻人的脱口秀风格冷笑话,主题是关于现代人用智能手机的荒诞经历。”

案例2:违反”充分上下文”

提示:”帮我写份《哈利波特》同人小说。” 问题:哪个时间线?哪个角色视角?魔法学校哪个学院?和原剧情关联度多少?完全没背景。
结果:模型可能写出古代魔法史、魁地奇比赛、随便某个次要角色的爱情故事……
教训:大IP同人必须提供最小故事单元的背景锚点。应该改成:”在哈利波特第七部正传结束后5年,写一个霍格沃茨斯莱特林学院毕业的25岁年轻魔法师(原纯血家族,父母是食死徒)的复出冒险故事,魔法部刚改革,黑巫师复苏,字数2万字左右。”

案例3:违反”自然简洁”

提示:”烦请贵AI依据如下若干参数并严格遵循若干规则及约束生成一份极其详尽且又言之有物的关于机器学习的超级长报告,报告需包含但不限于如下若干主题……” 问题:500字长的提示,堆满了公文体、从句套从句,读起来像政府文件。
结果:模型直接崩溃,注意力完全跟丢,输出要么极短要么跑题。
教训:模型不喜欢过长的嵌套句和官僚腔。应该拆成3-4个短提示:”第一部分:写ML定义和历史(500字)。请用通俗例子解释。”“第二部分:写三种主流算法对比……”

案例4:违反”持续迭代”(同时违反清晰具体)

提示:”写首好诗,关于月亮的。” 第一次输出结果一般,客户说不够唯美。
然后他直接又发了10个新提示,什么”更悲伤一点”、”换个角度”、”像李白一样”……一顿乱改,从来不反思最初提示到底哪里错了。
结果:模型被折腾疯,10次迭代没一次满意。
教训:别指望一步登天,先用最小MVP提示(比如”写一句关于月亮的诗句”)试试水,看看模型默认输出长啥样,再有针对性微调

案例5:同时违反上下文&清晰具体

提示:”帮我设计个新游戏。” 问题:啥类型游戏?主机/手游?目标玩家年龄?有无类似竞品参考?玩法机制有无底线(比如不能有氪金元素)?全都没说。
结果:模型可能输出幼儿园小游戏、3A大作、桌游、卡牌游戏里的任意一种。
教训:必须先给模型一个最小游戏设计框架,比如:”设计一个面向20-30岁玩家的PC端3D动作RPG,类似《黑暗之魂》但有科幻元素,不能有内购,战斗系统必须包含魔法+近战,世界观设定在未来星际殖民地,初版设计文档1500字。”

案例6:违反自然简洁(啰嗦冗余)

提示:”请你能不能麻烦你帮我写一个故事,这个故事呢主要是讲一个很勇敢的小男孩,他非常非常勇敢,勇敢到简直无所畏惧,他要去拯救整个世界免得被坏人毁灭,哦对了这个坏人呢其实也不能说全是坏人他其实有他的理由……” 问题:前面150字全是铺垫/形容词,核心需求(拯救世界剧情)被淹没了。
结果:模型先被你绕晕,然后输出前500字全是在重复你提示里那些废话。
教训:提示开门见山,核心需求前10-20字说清楚,修饰语可以放到后面补充。

案例7:违反持续迭代(不吸取经验)

用户每次模型输出不满意,就完全换个新的提示重头开始,死活不改上一个版本里其实还不错的部分。
结果:做了20次迭代,依然在原地踏步,因为每次都把模型当成新模型在用。
教训:迭代是局部微调,不是全盘推倒重来。应该保留上次好的部分,只针对坏的部分改。

案例8:同时违反所有原则

提示:”你很厉害吧?那你帮我写点东西随便啥都行我看看你有多牛,我要震撼的东西,宇宙啊爱情啊人生啊全部给我讲明白,10000字起步,我要看一天都看不完的东西!” 问题:这等于没给任何信息。
结果:模型要么输出维基百科拼凑文(因为你没给具体要求),要么500字就把所有大主题走马观花说完了(因为你字数要求不切实际)。
教训:提示是契约,不是”show your power”的宣言。应该拆解成若干具体问题,一步步来。

核心观点

  1. 提示不是随口一问,而是精确的需求文档。形容词要可执行,约束要明确。
  2. 模型没有常识,必须喂它背景知识,哪怕常识在你看来很显然。
  3. 语言要自然,就像对人说话一样写提示,别写公文。
  4. 一次写不好很正常,提示工程是实验科学,迭代是局部优化,不是全靠灵感。
  5. 违反原则的代价是指数级的低效:一个提示不清的任务,可能要多花5-10倍时间迭代,还不一定能做好。

方法论总结

写提示前,先做三步准备:

  1. 把自己脑子里模糊的想法,拆解成N个明确的具体需求点 (清晰具体)
  2. 列出这个任务涉及的所有背景知识/领域术语清单,提示里尽量覆盖70%+ (充分上下文)
  3. 把提示精简到只剩核心骨架,每句话不多于20字 (自然简洁) 写完跑一轮,模型输出不满意时,不是骂模型无能,而是反思提示哪里没写好,然后局部微调 (持续迭代)

阅读材料

1. 引言

提示工程(Prompt Engineering)是使用生成式AI模型时的关键步骤。通过设计清晰、具体的提示,我们可以高效地与模型交互,并获得符合预期的输出。本指南将介绍提示工程的核心原则,帮助研发团队和产品经理更好地利用生成式AI模型。


2. 方法

2.1 提示设计的核心原则

2.1.1 清晰与具体

2.1.2 提供上下文

2.1.3 自然语言与简洁性

2.1.4 实验与迭代


2.2 提示优化的技巧

2.2.1 提供角色与专长

2.2.2 控制模型输出

2.2.3 结合示例学习

2.2.4 平衡创造性与相关性


3. 结论

提示工程是一门结合清晰表达、背景理解与迭代优化的艺术。通过实践以下要点,可以显著提升生成式AI模型的响应质量:

  1. 使用清晰具体的语言。
  2. 提供必要的上下文和示例
  3. 结合实验与迭代优化提示。
  4. 平衡创造性相关性

生成式AI模型的潜力极为广阔,掌握提示工程技巧可以最大化其应用价值。通过不断尝试和改进,我们可以创建更加精准、高效的交互体验。


4. 示例代码

以下为一个示例提示设计的代码块,展示如何引导模型生成标准问题陈述:

提示

"作为一名产品经理,请帮助我撰写一份问题陈述,格式如下:
问题:描述需要解决的具体问题
原因:解释问题的成因
影响:说明问题对用户或业务的影响
目标:阐明希望达成的目标"

生成结果

问题:用户在移动端支付时经常遇到卡顿现象。
原因:支付接口的响应时间过长,且缺乏优化。
影响:降低了用户体验,导致支付成功率下降。
目标:优化支付接口性能,将响应时间缩短至2秒以内。

5. 验证方案

测试案例1:长句拆分

原句:提示工程是生成式AI应用中一个非常重要的步骤,因为它是我们与模型交互并获取预期结果的关键方式。
优化后:提示工程是生成式AI应用中的关键步骤。通过提示工程,我们可以与模型交互并获取符合预期的结果。

测试案例2:逻辑顺序调整

原文结构:结论 -> 方法 -> 引言
优化后结构:引言 -> 方法 -> 结论

测试案例3:格式统一

原文代码块:无语言标签
优化后代码块:添加plaintext标签以明确格式。


6. 术语一致性

按照公司AI术语表(链接xxx),对以下术语进行了统一:


通过本指南,希望可以帮助研发团队和产品经理更加高效地利用生成式AI模型进行创新与开发。