提示词工程是一门有关用词、短语或代码片段的选择与斟酌的艺术,旨在训练人工智能系统给出所需的回应。可以说,提示词工程就是“芝麻开门”咒语,能够打开ChatGPT和其他生成式人工智能模型的知识宝藏。在本章中,我们将给出10条基本规则,这些规则是实现成功、高效提示词工程的基础。灵活并且创造性地运用这些简单规则可以显著提高模型输出内容的质量,能够满足甚至超越你的期望。我们的例子虽然以科研(特别是与健康相关的研究,因为我是一位公共卫生研究者)为重点,但你很快会发现,这些规则适用于各种通过自然语言进行的人机交互。
本章特意选取简单的例子,采用了软件工程中的“最小工作示例”的概念。这种方法有助于展示这10条基本规则,并且可以避免出现真实科研中存在的复杂性和细微差别让你手足无措的情况。不过放心,后面的章节将深入探讨这些规则在科研各个阶段的实际应用,并提供大量真实例子。换句话说,在用我们的尖端工具涉足广阔的研究领域之前,我们希望每个人都学会安全规则并系好“安全带”。听起来很合理,是吧?
提示词工程的10条基本规则如下:
1.确保提示词明确具体;
2.将复杂问题分解为较简单的部分;
3.尝试不同的提示词表达方式;
4.设置语境;
5.要求逐步解释;
6.索要出处和引用;
7.探索其他观点;
8.增加约束条件来控制回答的长度或格式;
9.提供示例来指导模型;
10.培养批判性思维和探索。
现在,让我们通过一些最小工作示例,简要探讨一下每条规则。
该规则可以说是所有规则中最重要的。在给ChatGPT设计提示词时,必须牢记,该机器无法读懂我们的心思,也不可以通过第六感来感知我们的需求。ChatGPT没有用我们的个人数据来训练,它此前并不了解我们,也不能事先知道我们的具体需求,除非我们明确地提供了这些信息。ChatGPT位于OpenAI厚实的超级计算机房间墙壁后,与其取得联系的唯一方式就是通过我们精心设计的提示词。为了确保获得最佳的回答,编辑提示词的时候需要尽可能准确清晰,不留歧义。
例1 不要问“运动有哪些好处?”,而要问“中等强度的有氧运动对成年人心血管有什么好处?”
例2 不要问“疫苗如何发挥作用?”,而要问“解释mRNA疫苗在产生对抗病毒感染的免疫力过程中的作用机制。”
例3 不要问“肥胖的原因有哪些?”,而要问“导致儿童肥胖最主要的3个因素是什么?”
当涉及复杂问题或多层次主题时,将它们分解成更简单、更易管理的主题是很有用的。在单个提示词中加入太多方面的内容可能会让ChatGPT忽略一些要点,或无法提供针对任何特定方面的全面答案。不要觉得非要将所有内容都放在一个提示词中,而要考虑通过一系列交流,与ChatGPT互换想法,进而与其进行深入交流。将你的问题分成多个主题并逐一解决,这样可以帮助ChatGPT保持专注,从而生成更准确相关的回答。
此外,考虑你的问题各部分之间的关联性。如果这些主题是相关或连续的,你最好在ChatGPT控制台中,把它们放在同一对话框中(在创建“新聊天”时使用相同的名称)。但是,如果这些主题代表不同、不相关的主题,则考虑将它们放在不同的对话框中,进而让内容清晰且结构合理。这种方法可以让你与ChatGPT进行更有效、更深入的对话,最终带来更好的结果。
例1 将“植物性饮食的好坏之处有哪些?”这个问题分为两个问题:“植物性饮食有哪些健康益处?”和“植物性饮食有哪些潜在缺点?”
例2 将“营养对认知功能有什么影响?”这个问题分为两个问题:先问“特定的营养素(如Omega-3脂肪酸)是如何影响认知功能的?”;再问“营养通过哪些机制影响大脑健康?”
例3 将“遗传因素和生活方式因素如何导致心脏病?”这个问题分为两个问题:先问“遗传在导致心脏病方面起着什么作用?”;再问“生活方式因素如何导致心脏疾病?”
本质上说,像ChatGPT这样的大语言模型是对文本提示词进行逐字标记和编码。标记化是将输入的文本分解为较小单元的过程,这些单元叫作词元,通常表示单词或字符。文本一旦标记,就通过嵌入过程转化为数值向量,这些向量以一种神经网络能理解和处理的方式来表示输入的文本。
由于模型本身和编码过程十分复杂,即使提示词文本发生微小变化,也可能产生深远影响,影响到提示词文本的潜在的词元代表,也会影响到ChatGPT神经网络如何处理输入文本,进而生成输出内容。因为难以准确预测提示词的具体更改将如何影响ChatGPT的预测结果,所以运用工程思维反复试错至关重要。通过尝试不同的提示词表达方式,你将更有可能找到有效的措辞,进而让ChatGPT作出满意的回答。
例1 如果你询问“微生物群对人体健康的作用?”没有得到满意答案,可以尝试将问题改述为“肠道微生物群如何影响人体健康和疾病?”
例2 如果你询问“遗传因素如何影响肥胖?”没有得到满意答案,可以尝试问“导致肥胖发展的具体基因和途径有哪些?”
例3 如果你询问“糖尿病的症状是什么?”没有得到满意答案,可以尝试问“列举Ⅱ型糖尿病的常见症状。”
给ChatGPT写提示词时提供语境非常重要,因为这可以帮助ChatGPT专注在一个更小、更集中的高维空间中寻找相关答案。通过缩小语境,你可以让模型更容易、更准确地识别相关信息,以满足你的特定需求。当涉及专门领域时,这一点尤为重要,比如与健康相关的研究,因为提出问题的角色和问题的背景可能会显著影响ChatGPT回答。
例1 没有语境的问题:“管理压力的方法有哪些?”有语境的问题:“作为一名心理健康方面的专家,你会给你的患者推荐什么经证明有效的方法来管理压力?”
例2 没有语境的问题:“导致空气污染的主要因素有哪些?”有语境的问题:“就城市公共卫生来说,空气污染的三个主要来源是什么?它们对呼吸健康有什么影响?”
例3 没有语境的问题:“目前治疗阿尔茨海默病的方法有哪些?”有语境的问题:“作为一名专攻阿尔茨海默病研究的神经科学家,你能谈谈阿尔茨海默病治疗手段的最新进展吗?”
在研究项目的背景下需要获取程序性信息时,要求逐步分解的信息是十分有益的。研究项目通常涉及许多相互关联的步骤,在各个节点所做出的决策都会影响后续阶段。让ChatGPT逐步描述有关程序,可以更清晰地了解所涉及的流程,让你可以按照步骤行事,或者按要求对特定程序进一步说明。要求逐步解释不仅可以让所提供的信息更加清晰,而且还可以帮助ChatGPT进行更有说服力的推理、批判性评价和预防错误。
例1 不要问“如何进行血液检查?”试着问“逐步描述一项检查胆固醇水平的血液检查过程。”
例2 不要问“如何进行临床试验?”而是问“概述设计和执行新药物临床试验的关键阶段。”
例3 不要问“研究人员如何分析流行病学数据?”而是问“指出统计分析队列研究中的流行病学数据所涉及的步骤。”
ChatGPT和其他大的语言模型面临的一大指责是,它们缺乏事实依据,这就让它们易受到误导性提示词和“幻觉”的影响。为了帮助减轻这一问题,你可以明确要求ChatGPT的回答要有出处,尤其要有科学引用。该方法虽然并不能从根本上解决ChatGPT缺乏依据的问题(解决这个问题需要对建模架构和训练过程作出创新),但却有助于降低ChatGPT生成看上去连贯但有根本缺陷的问答的风险。不过要记住,不应该直接相信ChatGPT所提供的引用出处,这至关重要。你自己有责任通过独立评估来判断它们准确性和相关性。
例1 “增强工作场所心理健康的最佳策略有哪些?你能提供科学引用来支持你的回答吗?”
例2 “久坐不动的生活方式对健康可能带来什么长期影响?请提供科学的证据和引用来证实你的回答。”
例3 “有哪些临床证据可以证明使用益生菌有助于管理肠易激综合征?请提供与你回答相关的出处或引用。”
在提问时,我们常常无意中加入自己的偏好和观点,这可能会让ChatGPT倾向于提供支持我们观点的证据。这种确认偏好可能阻碍ChatGPT对主题的全面理解,并限制其作出客观评价。为了避免陷入过度自信的泡沫中,鼓励ChatGPT考虑不同的观点是至关重要的。我们可以让其权衡利弊或提出论点和反论点。让ChatGPT采取不同的立场,能够助其有效覆盖盲点,进而提供更加全面的见解。
例1 不要问“体育活动干预如何改善心理健康?”而要问“就体育活动干预改善心理健康是否有效而言,有哪些支持观点和反对观点?”
例2 不要问“远程医疗是否可以提升农村地区医疗可及性?”而要问“利用远程医疗来提升农村地区医疗可及性的优势和劣势有哪些?”
例3 不要问“政府是否应该监管垃圾食品消费来应对肥胖问题?”而要问“就政府是否应该监管垃圾食品消费来应对肥胖问题而言,有哪些关键的支持观点和反对观点?”
不要犹豫,你应该对ChatGPT输出内容的风格、长度或格式提出具体要求。提出更加明确的要求,能让ChatGPT的问答更加契合你的需求。不论你是想要一个200字的摘要,还是想要一个有5个要点且附有简要解释的项目列表,抑或是想要一个5列的表格,只需向ChatGPT清楚地表达你的期望就行!
例1 不要说“规律锻炼带来的健康益处有哪些?”试着说“用200字总结规律锻炼能带来的健康益处。”
例2 不要说“给出导致空气污染的主要因素。”试着说“列出导致空气污染的5个主要因素,并简要解释每个因素。”
例3 不要问“Ⅰ型糖尿病和Ⅱ型糖尿病之间的主要区别是什么?”试着说“创建一个两列表格,一列是Ⅰ型糖尿病,一列是Ⅱ型糖尿病,并列出它们之间的主要区别。”
少样本学习是一种强大的技巧。这种学习是提供少量示例来引导模型理解输入和输出之间的关系。通过利用ChatGPT在高维空间中衡量单词之间相似性的能力,少样本学习能让ChatGPT从给定的示例中进行类比。这种方法简单高效,带来的准确度提升与模型微调相当,但模型微调通常需要成千上万个示例和大量计算。
例1
按照下面的示例格式列出导致阿尔茨海默病的主要风险因素。
###
疾病:Ⅱ型糖尿病
风险因素:肥胖、久坐的生活方式、家族史、年龄、高血压
疾病:心脏病
风险因素:高血压、高胆固醇、吸烟、肥胖
疾病:阿尔茨海默病
风险因素:________
例2
进行一项荟萃分析的步骤:①定义研究问题。②进行文献搜索。③提取数据。④进行统计分析。⑤解释结果。
进行一项系统综述的步骤:________
例3
地中海饮食的优势:①患心脏病的风险降低。②大脑健康得到改善。③体重更易管理。④患癌风险更低。
植物性饮食的优势:________
鼓励ChatGPT进行批判性思考和探索,可以让我们充分利用其广泛的跨学科知识。通过这样做我们不仅可以获得全新的见解、创新的想法,还能够全面理解我们的研究主题。我们写的提示词要让ChatGPT分析不同观点,评估证据,并综合各个领域的信息。这样不仅丰富了对话,而且还有助于我们对科研主题形成更全面、更有见地的看法。
例1 “有哪些跨学科方法可以用来研究空气污染对公众健康的影响?”
例2 “探讨基因工程的进步可能给心血管疾病的治疗和预防带来怎样的革新。”
例3 “思考在医疗决策中使用人工智能会带来哪些伦理担忧,并提出方法来应对这些潜在担忧。”
总的来说,第二章提供了ChatGPT提示词工程的10个基本规则。虽然用作例子的具体模板可能有所不同,但关键是要内化这些规则,并根据自己的独特需求进行灵活调整。没有哪条规则更胜一筹,正是要将这些规则进行创造性结合才能真正发挥ChatGPT的潜力。随着你在与ChatGPT的交互中应用这些规则变得更加熟练,你会成为一名优秀的提示词工程师,能够将这些技巧无缝融入你与ChatGPT的对话中。现在,你已经掌握了这些简单但非常强大的规则,可以和你的人工智能伙伴一起踏上激动人心的科研合作之旅。系好安全带,准备迎接一次令人兴奋的冒险吧!