0.2 写在正文开始之前:确认优化方法有效
如何评估 Prompt 优化方法的效果
在开始尝试 Prompt 优化之前,我想先给大家讲讲,决定栏目内容逻辑成立的根本问题:为什么栏目里给出的 Prompt 是有效的?毕竟自然语言模型每次的输出都是不一样的,而且还可以输出非理性的内容,那么我,或者大家如何判定它是否有效果的?
其实现在已经有很多种方法可以评估 Prompt 优化的效果了,甚至还有标准的测试流程。接下来我就给大家列举一些方法,来判断 Prompt 的优化效果。
NLP 测试项目/测试集
最有效、科学的判断方法,自然是由专业组织或有经验的人统计出来的测试项目,这些测试项目可以被视为提问集。
不同测试项目和测试集针对的是 NLP(自然语言处理)项目不同的能力,所以实际情况中,我们会基于不同的 Prompts 分类,来用不同的测试集来检验。有许多数据集可以用于测试自然语言处理(NLP)模型的性能。以下是其中的一部分:
GLUE Benchmark (General Language Understanding Evaluation): 这是一个集成了九个独立任务的评估工具,用于测量模型对英文句子的理解能力。它包括语义角色标注(SRL)、自然语言推理(NLI)、语义文本相似性(STS)等任务。
SuperGLUE Benchmark: 作为GLUE的后继者,SuperGLUE包括更复杂的语言理解任务,如多源自然语言推理、词汇互推任务等。
SQuAD (Stanford Question Answering Dataset): 这是一个用于机器阅读理解的数据集,包含由维基百科文章生成的问题和答案。
CoQA (Conversational Question Answering): CoQA是一个对话型问答数据集,用于测试模型在对话环境中的理解能力。
MNLI (Multi-Genre Natural Language Inference): 这是一个用于自然语言推理(NLI)任务的大规模数据集,包含在多种不同领域和类型的文本中进行推理的任务。
CommonsenseQA: 这是一个问题回答数据集,主要测试模型的常识理解能力。
RACE (ReAding Comprehension dataset from English Examinations): 这是一个阅读理解数据集,包含了从英语考试中提取的大量文章和问题。
Winograd Schema Challenge: 这是一个用于测试模型在处理需要常识和推理能力的句子解析问题上的表现。
最近在 Prompt 优化领域常见的数据集:
GSM8K (Grade School Math 8K):GSM8K 是一个包含 8.5K 高质量、语言多样的小学数学词问题的数据集。该数据集被创建出来,是为了支持回答那些需要多步推理的基本数学问题的任务。
MAWPS:MAWPS 是一个在线的数学词问题仓库,旨在为评估不同的算法提供一个统一的测试平台。它允许自动构建具有特定特征的数据集,提供了调整数据集的词汇和模板重叠以及过滤来自网上语料库的不合语法问题的工具。
SVAMP:SVAMP 是一个面向小学级别的数学词问题(MWP)的挑战集。每个 MWP 都包含一个简短的自然语言叙述,描述了世界的状态并提出了一些未知数量的问题。SVAMP 中的例子在解决 MWP 的不同方面测试一个模型,比如问题敏感性和强大的推理能力。
这些测试集中的大多数都是以英文为主,如果你对中文的NLP测试集感兴趣,可以参考以下的一些数据集:
中文阅读理解数据集 CMRC 2018: 是一个大规模的中文机器阅读理解数据集,类似于英文的SQuAD。
中文问答数据集 WebQA: 是一个大规模的中文问答数据集,主要包括以自然语言形式提出的问题和对应的答案。
中文对话系统数据集 DuConv: 这是一个用于构建对话系统的中文数据集,其特点是能够产生多轮对话。
LCQMC (A Large-scale Chinese Question Matching Corpus): 这是一个大规模的中文问题匹配数据集,主要用于研究和改进中文的问答系统。
ChineseGLUE: 这是一个与英文GLUE类似的中文NLP评估工具,包含了多种中文语言理解任务。

除了这些,我们也可以在 Github 上找到一些提问集来自己测试,在 Github 搜索 NLP Evaluation 就可以。我们可以利用这些测试以及里面的同一个问题,来对比不同的 Prompt 优化方法对于结果的影响。
观察大公司的作品
现在比较出名的 GPT 应用衍生服务和产品,大部分背后其实都包含精细调教的 Prompt,比如微软的 Github Copilot 和多邻国的教师 AI,甚至是 ChatGPT 官方里面的插件等等。虽然大部分公司并不会公开这些 Prompt,但仍然可以通过一些方法拿到背后的 Prompt,学习这些大公司在实际场景编写 Prompts 的思路。
接着我们再参考这些 Prompts,总结里面的编写规律和思路,就可以得到优化 Prompts 的普遍方法。毕竟这些面向亿级用户的产品,也只有最普适的优化方法会用到最终的 Prompt 里。
经验总结,A/B 测试与人工调查
既然要评估优化方法在实际产品中的使用效果,自然离不开人工经验总结和人工检验。我们可以使用一些传统的方法来验证。比如在自己的长期使用中,通过经验总结发现一些优化方法,通过传统的 A/B 测试,可以是自己也可以让周围人一起参与,来发现某个方法更加有效等等。
在这次测试中最重要的还是有科学可量化的评估方法。以下是一些科学和量化的方式来评估你的 GPT 提示优化的有效性:
困惑度(Perplexity):困惑度是一种常用的评估语言模型的方法,这是衡量模型对测试数据的理解程度的一个指标。困惑度越低,说明模型对测试数据的预测能力越强。
最大概率匹配度:使用一个公认的人类生成的文本作为标准(例如,一个专家编写的文本),并计算你的模型生成的内容和这个标准的匹配程度。这可以通过计算交叉熵损失来实现。
F1 分数:F1 分数是精确度和召回率的调和平均值,可以用来评估模型生成的文本的质量。特别是在对话系统中,这是一个常用的评估指标。
BLEU、ROUGE 和 METEOR 分数:这些都是用于评估机器翻译和文本生成模型的指标,可以衡量生成的文本和目标文本之间的相似性。
BertScore:BertScore 是一种基于预训练的 BERT 模型的评估指标,它可以比传统的指标(如 BLEU 和 ROUGE)更好地捕捉生成文本的语义相似性。
以上方法的有效性可能会因应用和具体任务而异。它们都在一定程度上提供了量化的评估方式,但也有局限性,需要在具体实施时结合实际情况考虑。
栏目阅读注意事项
现在正是 AGI 诞生的前夜,每天都有层出不穷的新模型与新产品,所以本栏目中提到的某些 Prompt 与方法会存在一定的时效性,手册里推荐的项目/软件/工具也有可能会改变或者消失,你可以在评论区积极反馈,分享自己喜欢的应用,或者邮件联系我([email protected]),我会尽快更新内容或者替换失效的项目。
另外本栏目尽量推荐开源的项目和软件,使用第三方项目请选择开源或有可靠性保证的项目,并避免在未知项目上填写自己的个人信息以及相关的密钥(Key)。此外,建议在使用前打开对应模型提供商的金额限额,避免由于密钥泄露被滥用造成资金损失。请注意第三方项目的安全性和内容的隐私性,做好相应的评估。
另外在使用第三方项目的时候,请注意自己密钥的消耗额度,一些项目可能会在单次提问造成巨大的 Token(可以简单理解为生成的单词数,通常模型提供商使用单词数计费)消耗,比如 PDF 全文提问等,请注意金额消耗。本栏目也会提供最低 Token 消耗的项目或者优化 Token 消耗的方法。
虽然现在 GPT 出现的时间还很短,但大家都能看出来它就是未来通用型人工智能的雏形,AGI 时代的来临,已经是板上钉钉的事情。而在这个时代,无论是你还是我,巨擘首富还是三和大神,甚至是 AI 模型的创造者们,大家都站在同一条起跑线上。所以本栏目应运而生,一方面是可以总结我自己学习到的经验,另一方面也是能让各位读者都跟上飞速发展的 AI 步伐,希望本栏目能够带给你对于 GPT 原理上的理解,也希望能让你对 GPT 这一无比强大的新工具更加熟悉,早日让它成为自己的「贾维斯」。(本栏目撰写过程中没有任何一个人工智能受到伤害,本栏目部分内容由人工智能生成,经过人类验证与校对)
由于内容政策的原因,本栏目不能发布针对具体产品注册使用的相关栏目,因此我会默认各位读者已经拥有能够直接使用的产品,也让栏目能够专注于如何优化人工智能生成内容。
阅读本栏目读者不需要拥有任何前置知识,只需要对 AI 领域有兴趣上的基本了解即可。(如果你之前没有了解过相关信息,那接下来的内容可能和你想象的很不一样)
栏目中用到的 GPT 服务
由于整个栏目的内容都是基于 GPT 原理而来,所以可以适用于任何以 GPT 模型为基础的产品——包括目前非常流行的 ChatGPT、微软 NewBing、文心一言、Google Bard 等,也适用于未来各种会出现的对话型 GPT 和衍生产品(包括多模态产品)。
不过为了尽可能保证演示的一致性,栏目将会采用 GPT3.5/4 和 NewBing 作为 Prompt 效果展示的服务。请注意,人工智能大语言模型多样性的输出,以及服务提供商频繁地更新修复,都会让相同的 Prompt 生成不同的内容,甚至出现生成失败的情况。
本文大多数 Prompt 以及方法都经过 GPT3.5/4 与 NewBing 检测,并且从原理得出的方法通常具有长效性。如果某个 Prompt 读者使用的时候生成了不同的内容,可以将 Prompt 改成类似的样式或者多试几次,也可以在对应文章的评论区反馈。
值得注意的是,虽然栏目中所有的 Prompt 优化方法都经过了验证,但人工智能模型日新月异,这些方法仅代表当前的情况有效,效果随着迭代可能会不同,在使用时建议自己先验证一次。
看完本章的内容,你应该可以打消对栏目内容的顾虑,也可以放心继续学习接下来的内容。在下一章我们就要正式开始讲解具体的优化方法啦。
最后更新于