摘要
这篇文章主要讨论了如何通过优化提示来提升ChatGPT的使用技能。首先,作者解释了ChatGPT是什么,以及我们应该对它有何期待。然后,文章提出了三个关键原则:明确你的需求,模型思考时间,以及模型幻觉。作者详细解释了如何实施这些原则,并提供了实例。最后,作者强调了在使用ChatGPT时需要注意的限制,包括它并不像人类那样“理解”,并可能生成不正确或者是幻觉的信息。因此,我们需要从可靠的来源验证答案,并进行批判性思考以确保信息的准确性和可靠性。
开篇
在我们深入主要内容之前,让我们花一点时间来理解ChatGPT到底是什么,以及我们应该对它有什么期待。那么,ChatGPT究竟是什么呢?ChatGPT是由OpenAI开发的一种语言模型,基于GPT-4架构构建。它作为一个计算机程序,接受了大量来自互联网和书籍等各种来源的文本训练。它的目的是理解自然语言,就像人类一样说话和写作。因此,与ChatGPT交互时,建议以类似于我们向朋友或任何其他人提问的方式来构建问题和提示。
虽然ChatGPT可以作为学习、探索思想或获取快速答案的有价值工具,但重要的是要记住,它最终是一个机器学习模型,而不是一个人。ChatGPT实际上并不像人类那样“理解”事物。它经过训练可以根据训练数据中学习到的模式,预测句子中的下一个内容。虽然它是一个很好的资源,但还是要通过可靠的来源核实信息,而不仅仅依赖ChatGPT来做重要的决定或获取信息。
现在,言归正传,让我们来学习如何优化我们的提示,以充分利用ChatGPT。
在为像ChatGPT这样的语言模型构建提示时,有三个关键原则需要记住。让我们探讨每一个原则。
1. 明确你的需求:在你的提示中明确和精确需求是至关重要的。清楚地说明你正在寻找什么或你需要的信息。
2. 给模型时间去思考:像ChatGPT这样的语言模型在处理较小的任务时表现良好,所以将一个任务分解成多个较小的任务将会得到更好的结果。
3. 识别模型可能会产生幻觉:虽然ChatGPT是一个令人印象深刻的语言模型,但它有时可能会生成一些不完全准确的事实回应。
在我们继续之前,我强烈建议你尝试本文中提到的每一个提示。只需复制并粘贴提示到ChatGPT,观察输出和你可能遇到的任何差异。随意修改和试验提示,以深入理解所讨论的概念。虽然你可能已经熟悉本文中涵盖的一些观点,但我仍然建议你阅读到最后,因为它可能会在你的思维中激发新的想法和见解。
明确需求
让我们探讨一下“明确你的需求”到底意味着什么。ChatGPT就像电影《阿拉丁》中从魔法灯中出来的精灵。在那部电影中,精灵会向擦灯的人授予3个愿望。在许愿时,必须谨慎并精确,因为每个愿望中都可能存在模糊和不确定性。例如,如果你希望成为“非常富有”,精灵可能会赋予你在我们的世界中毫无价值的财富,使愿望变得无用。我们需要非常明确我们向它询问的事情。ChatGPT的工作方式非常相似。只要你问对了问题,它永远不会给你一个错误的答案。正确的问题和明确的需求将给你非常美丽的答案。然而,需要注意的是,模型存在限制,包括可能出现的幻觉和训练约束,我们将在本文后面讨论。
那么,我们如何在我们的提示中实现明确性呢?让我们讨论一些策略:
首先,我觉得在询问ChatGPT任何事情时,我们需要给它一些关于话题的背景。在询问关于细胞的问题时,它应该知道在什么背景下生成答案。如果我们在谈论电子表格,那么cells意味着与我们谈论人体时的细胞不同的内容。所以,我们明确指定我们要问的话题或背景是非常重要的。一种方式是我们通常尝试在同一个提示中包含问题本身的背景。
提示: 我给你一个与生物学相关的文本。 告诉我们在文本中谈论的是什么类型的细胞 限定感叹号。 !!! 这些细胞将氧气运送到身体的所有部分。 !!! 除此之外,另一种方式是: 提示: 像一个生物学专家一样行事。 |
这将在整个聊天会话中给你更好的结果。你也不需要再次给出话题的背景,而是在构建答案时,尝试养成在每次聊天会话开始时使用“像...一样行事”的习惯。
我们可以采用的另一种技术来提高ChatGPT的性能是在我们希望它对给定文本执行特定任务时,如校对,使用分隔符。通过在文本的开始和结束处添加分隔符,并在提示中明确提到ChatGPT应该只关注分隔的文本。这肯定会比不使用分隔符得到更好的结果。例如,考虑以下提示:
提示: 解释在三个感叹号中分隔的SQL查询。 同时构建一个虚拟表,并显示当我们在该表上运行在三个感叹号中分隔的SQL查询时的结果输出。 限制输出的大小为50个单词。 !!! SELECT * FROM users WHERE users.id > 10 !!! |
如上所示,你可以使用任何适合你的使用的自定义分隔符。此外,如果你看到,我要求ChatGPT将输出的大小限制为50个单词。虽然当我们试图以这种方式限制它们时,LLMs并不非常准确,但它们仍然会给出非常接近我们给出的限制的答案。
不仅输入,输出也可以根据我们的需要进行定制。我们可以要求ChatGPT模型以特定格式输出数据,例如JSON、HTML或XML。如果你不知道这些术语是什么意思,那么不用担心。JSON和HTML是网络开发的两个重要组成部分。JSON是一种帮助计算机共享和理解信息的格式,而HTML是用于构造和显示网站内容的语言。它们一起,使得通信无缝并创建视觉上吸引人的网页。回到我们的话题,你可以尝试以各种格式获取输出,包括这些标准格式如JSON和HTML,甚至可以创建定制的格式以满足你的特定需求。让我们考虑一个例子。
提示: !!! 什么是非磁性的金属? 以JSON格式给出输出。 它应该包含一个名为'Metals'的对象数组, 每个对象代表一个金属,它应该 有键:name和atomicWeight。 键atomicWeight是金属的实际原子量。 不要遗漏任何非磁性金属。 给我看看原子量最大的金属列表。 限制答案为3种金属。 !!! |
给模型思考时间
第二个原则是“给模型时间去思考”。这是什么意思?这是否意味着ChatGPT很慢?当然不是!然而,当给定的任务被分解成多个步骤时,它通常表现得更好。通过以逐步的方式提供指示,你可以提高模型回应的准确性。
考虑以下例子来理解这个概念:
提示: 告诉我Lord Ram不得不向Ravan射箭以结束他生命的故事,用4-6句话描述。将其转换为古吉拉特语,并计算名字的使用次数。输出JSON对象,只包含古吉拉特语的个人名字和计数。 |
这不会有任何问题,但模型可能会采取任何方法,然后答案可能不一致。我们可以做的是将整个事情分解成单独的步骤,并使其按照一个有助于产生更好输出的顺序进行。
提示: 执行以下操作: 1.告诉我Lord Ram不得不向Ravan射箭以结束他的生命的故事,用4-6句话描述。 2.将其转换为古吉拉特语 3.记录使用的名字以及计数。 4.以JSON对象的形式输出列表,键为:个人名字,名字使用的次数。都用古吉拉特语。 用换行符分隔你的答案。 |
让我们再举一个例子,我们看到ChatGPT没有花足够的时间在输出上,我们如何让它更好地工作。为了理解这种情况,我将向你展示输入和输出,以进行公正的比较。
提示: 判断学生的解答是否正确。 问题: 我正在建造一个太阳能发电设施,我需要帮助 计算财务。 - 土地成本为每平方英尺100卢比 - 我可以以每平方英尺250卢比的价格购买太阳能电池板 - 我谈判了一个维护合同,每年将花费我 一个固定的100,000卢比,另外每平方英尺10卢比 第一年运营的总成本是多少 作为平方英尺数量的函数。 学生的解答: 设x为安装面积(单位为平方英尺)。 成本: 1. 土地成本:100x 2. 太阳能电池板成本:250x 3. 维护成本:100,000 + 100x 总成本:100x + 250x + 100,000 + 100x = 450x + 100,000 输出: 学生计算第一年运营总成本的解答似乎是正确的。 他们正确地识别出了三个主要成本:土地成本,太阳能电池板成本和维护成本。他们将变量x指定为安装面积,以平方英尺为单位。 每个成本的计算如下: 土地成本:100x 太阳能电池板成本:250x 维护成本:100,000 + 10x 然后,他们将这些成本加起来计算总成本: 总成本 = 100x + 250x + (100,000 + 10x) = 450x + 100,000 因此,学生计算第一年运营总成本的解答是450x + 100,000。 |
如果你仔细观察,会发现学生的解答是不正确的。最后的答案应该是 '360x + 100,000'。在 '100,000 + 100x' 这一点上出错了。应该是10x,而不是100x。模型似乎将用户的输入视为问题的实际值,从而得出了类似的输出,并将其标记为正确。然而,这并不是我们期望的结果。我们将再次利用我们上次使用的技巧,将任务分解成更小的任务,让模型有足够的时间并给出准确的结果。让我们实施这种方法以获得正确的答案。
提示: 你的任务是确定学生的解答是否正确。 为了解决这个问题,你需要做以下几步: - 首先,自己解决这个问题。 - 然后将你的解答与学生的解答进行比较,评估学生的解答是否正确。 - 在你自己解决了这个问题之后,再判断学生的解答是否正确。 使用以下格式: 问题: `` 这里是问题 `` 学生的解答: `` 这里是学生的解答 `` 实际的解答: `` 这里是解决问题的步骤和你的解答 `` 学生的解答是否与刚刚计算出的实际解答相同: `` 是或否 `` 学生的成绩: `` 正确或错误 `` |
问题: `` 我正在建造一个太阳能发电设施,我需要帮助计算财务。 - 土地成本为每平方英尺100美元 - 我可以以每平方英尺250美元的价格购买太阳能电池板 - 我谈判了一个维护合同,每年将花费我一个固定的100,000美元,另外每平方英尺10美元 第一年运营的总成本是多少,作为平方英 尺数量的函数。 `` 学生的解答: `` 设x为安装面积(单位为平方英尺)。 成本: 1. 土地成本:100x 2. 太阳能电池板成本:250x 3. 维护成本:100,000 + 100x 总成本:100x + 250x + 100,000 + 100x = 450x + 100,000 `` 实际的解答: 输出: 给定: 土地成本:每平方英尺100卢比 太阳能电池板成本:每平方英尺250卢比 维护成本:每年固定100,000卢比,另外每平方英尺10卢比 设x代表安装面积,单位为平方英尺。 成本: 土地成本:100x 太阳能电池板成本:250x 维护成本:100,000 + 10x 为了计算第一年运营的总成本,我们将这些成本加起来: 总成本 = 土地成本 + 太阳能电池板成本 + 维护成本 = 100x + 250x + (100,000 + 10x) = 350x + 100,000 + 10x = 360x + 100,000 重新评估后,我们发现第一年运营的实际总成本是360x + 100,000卢比。 比较学生的解答和实际的解答: 学生的解答:450x + 100,000 实际的解答:360x + 100,000 |
通过这种逐步的方式提出问题,我们为模型提供了必要的上下文,避免了在上一次错误的回应中出现的混淆。这种方法鼓励模型独立考虑每一步,生成准确和一致的结果。
幻觉问题
在结束这篇文章之前,有必要解决像ChatGPT这样的语言模型经常遇到的一个常见问题,即幻觉问题。幻觉是指模型生成了它没有明确训练过的信息,并提供了可能听起来很真实但实际上是错误的答案。这些答案可能听起来非常真实,以至于我们可能会认为它们是真的。
让我们考虑一个例子来说明这个挑战:
提示: 2021年印度超级联赛孟买印度人队对阵金奈超级国王队的决赛。 输出: 2021年印度超级联赛的决赛在2021年10月15日举行,孟买印度人队对阵金奈超级国王队。孟买印度人队赢得了比赛,成为了2021年印度超级联赛的冠军。他们以6个杆位的优势击败了金奈超级国王队,赢得了他们的第五个印度超级联赛冠军。比赛在阿联酋的迪拜国际板球场举行。 |
实际上,孟买印度人队并没有进入决赛,真正与金奈超级国王队对决的是加尔各答骑士骑手队。这就是语言模型的问题。他们给出的答案看起来非常真实。这突显了了解这些限制并在依赖语言模型提供的信息时谨慎行事的重要性。
为了解决这个问题,我们可以实施一个解决方案,可能会减少我们得到错误信息的机会。
- 提示模型找到你想要搜索的相关信息。
- 根据它提供的信息或相关信息提问。
结论
总的来说,虽然ChatGPT提供了一个宝贵的资源用于学习和探索想法,但是重要的是要记住它的限制。它并不像人类那样“理解”,并且可能生成不正确或者是幻觉的信息。为了最大限度地利用ChatGPT,你需要在你的提示中具体明确,给它时间去思考,并且要意识到可能的假信息。从可靠的来源验证答案,并进行批判性思考以确保信息的准确性和可靠性。
译者介绍
崔皓,51CTO社区编辑,资深架构师,拥有18年的软件开发和架构经验,10年分布式架构经验。
原文标题:Level Up Your ChatGPT Skills by Unleashing The Full Potential of Your Prompts,作者:Harsh Haria