介绍如何系统化评估 prompt 质量,帮助程序员迭代提升 AI 应用的准确性和可靠性。
AI 浪潮就像一场疯狂的过山车。每天都有成百上千条关于 AI 的推文和 LinkedIn 帖子,讨论 AI 如何帮助人们更快地构建产品、完成交付。
这场浪潮最疯狂的转折之一,大概发生在写作领域。但坦率地说,AI 辅助已经开始重塑各个领域。
有些人拼命拒绝追随这股浪潮,结果远远落在了后面;另一些人则充分利用 AI 浪潮,并且乐在其中。有时这两种心态会同时出现(比如我)。但这一切的核心都是 prompt,以及如何评估和使用它,让它真正为你所用。
而且,还有谁能比 AI 公司里的人更适合讲清楚这件事呢?
于是,我和公司的高级机器学习研究科学家 Antreas Antoniou 聊了聊,并尝试梳理出一些步骤。
这是一个我不断回想的问题。不是“最好的 prompt 是什么?”,而是:为什么有些 prompt 比另一些表现得更好?
答案并不只是凭感觉,也不只在于措辞是否巧妙。关键在于结构。
要理解 prompt 的有效性,光靠直觉是不够的。你需要看得见它的实际表现:受控的输入、可重复的测试,以及持续追踪的输出。你需要一套系统,不仅能评估一个 prompt 听起来怎么样,还能判断它在边界情况、不同上下文和模型更新面前表现如何。
这正是测试 prompt 发挥作用的地方。
你可以把它们理解成针对语言行为的单元测试。你向模型提供标准化输入,观察它在摘要、推理、改写和翻译等任务中的表现,并评估它会做出怎样的行为。
说实话,我们的工程师可能更擅长构建模型的并排对比,或者发布经过深度优化的 LLM prompt。但我在这里想做的是另一件事:
我想用一种极其简单、任何人都能理解的方式,分享我对 prompt 评估的认识,无论你是否具备技术背景。
而且,这件事很重要。因为正如我们都曾看到的那样——有时还是以非常公开的方式——出问题的不一定总是模型,有时是 prompt。
CNET 发布过由 AI 生成的财经文章,其中充斥着事实错误。Apple 也曾在发出误导性提醒后,暂停使用 AI 撰写新闻摘要。这些不只是模型的失败,也是 prompt 设计与评估的失败。
正因如此,prompt 评估已经成为使用 LLM 时的一项核心能力。
归根结底,它关乎清晰度:你能否准确说明自己想要什么,提供了多少上下文,以及是否清楚定义了什么才算“好”。
从很多方面来看,这就是把复杂目标拆解成一个个小而可测试的部分——而这正是接下来我要向你展示的内容。
(对了,如果你仍然不清楚 LLM 与 GenAI 之间的区别,或者不知道 AI assistants 与 agents 之间有什么不同。
这里没有完美公式。
但是,真正经得起检验的好 prompt,通常会在以下几个关键方面表现出色:
相关性:AI 是否始终围绕主题,并真正完成了任务?
事实准确性:其中的说法是否可以验证,并且以事实为依据?
清晰度:输出是否易读、连贯,并且容易理解?
一致性:相似的 prompt 是否能够产生质量相近的结果?
偏见与公平性:结果是否避免了有害的预设或刻板印象?
在 Pieces,我们测试过的 prompt 远不止几十个。有些用于自动化增长工作流,另一些则用于支持内部内容生产。
还有很多 prompt 是为了测试 AI 辅助技术写作的边界而构建的——因为作为一家创业公司,你必须快速增长。最好是……昨天就已经增长了。
最让我惊讶的是,工程师们实际处理 prompt 设计的方式。
这么说吧,他们不会称自己为 prompt engineer。他们只是直接动手去做,有时有效,有时也会失败。这没什么。他们会重新定义问题,然后寻找新的解决方案。
Antreas 深入思考过究竟是什么让 prompt 变得有效。他把这称为 context engineering。这个说法深深触动了我,因为它准确描述了我一直凭直觉在做的事情。
“prompt 上下文中的每一个细节,包括 persona、结构,甚至语气,都会深刻影响模型的输出。”
Antreas 分享了自己的策略:他会把个人写作风格提供给模型,让输出更贴近他的表达方式。
有时,他还会创建多个 persona,模拟一个评审委员会(这对我来说是完全陌生的做法),只是为了观察每个 persona 会如何理解和批评同一份内容。
仅仅这一点,就改变了我对反馈循环的看法。
他向我介绍了以下技巧:
Few-shot prompting:提供少量示例,帮助 AI 学习其中的模式并生成类似的输出。
Meta prompting:让 AI 改进它自己的 prompt。
而且,这并不只停留在理论层面。他现场演示了如何为 AI 生成的标题打分并加以优化:通过解释为什么他会认为某个标题比另一个更好。
其中有一部分让我印象尤为深刻,来自他提到的一篇 Sakana AI 论文。论文介绍了一套能够完全自动化科学发现过程的“AI scientist”系统。
它可以提出创意、编写代码、运行实验并撰写论文。其中一篇论文甚至被顶级会议接收,而评审者并不知道它是由机器写成的。
(来自 AI Scientist 项目的示意图,展示了 LLM 如何在完整闭环的科学工作流中,自主产生想法、运行实验并撰写研究论文。)
这已经不只是写作自动化了,而是系统级的创造力。
首先构建一个清晰的 persona:姓名、角色、背景和观点。这个 persona 在意什么?想要解决什么问题?你甚至可以把某个人的个人资料、语气风格或写作样本提供给 ChatGPT,然后告诉它:“像这个人一样评估这个 prompt。”
尴尬吗?有一点。有用吗?100%。
创建多个特点鲜明的 persona,例如“持怀疑态度的工程师”“乐观的 PM”“筋疲力尽的技术写作者”,然后让每个 persona 分别“评审”同一个 prompt 或输出。这就像把你的 prompt 交给一组 AI 评论者,从不同角度对它进行压力测试,看看它是否经得起检验。
这是发现盲点、语气不匹配,以及那些你自己都没有意识到的隐含假设的绝佳方式。
在评估面向技术任务的 prompt 时,例如开发工作流、代码生成等,应充分利用真实的工程上下文:
如果你希望评估过程更有结构,下面是一些我们工程团队非常信赖的工具:
Promptfoo——用于批量并排测试 prompt 的开源工具。快速、简单,而且对开发者非常友好。
LLM-as-a-Judge——使用另一个 LLM,根据你设定的标准评估输出。
DeepEval——结合人工评审与 AI 评分,保持质量的一致性。
PromptBench (Microsoft)——一种标准化基准测试框架,用于测试模型在真实任务中的表现。
prompt 评估追求的并不是完美,而是构建一个可重复的反馈循环,通过一次次迭代,让你的 prompt 变得更好、更清晰,也更有用。