为了更好的使用LLM的对话模型,我们最好是可以从理解LLM是如何训练的角度去作出我们的提问,但是本文只作为一个如何更好的与ChatGPT等AI交流所写的文章记录,因此不多赘述 .

文章给出的方法主要分为两大原则: 第一个原则是写清楚具体的说明,第二个原则是给模型时间思考。

第一个原则:给模型明确而具体的指示

第一个原则,非常明确和具体的说明。通过提供尽可能清晰和具体的说明来表达您希望模型做什么。这将引导模型达到所需的输出,并减少您获得不相关或不正确响应的情况。

不要将编写明确提示与编写简短提示混淆,许多情况下,较长的提示实际上为模型提供了更多的清晰度和上下文,这实际上可以导致更详细和相关的输出。


分隔符

使用分隔符可以避免提示词冲突。如果用户在提示中添加某些输入,你可能给出与你想要的任务不符的指令, 可能会给模型一些相互冲突的指令,这可能导致模型得出的不是你想要的指令 , 所以使用分隔符非常有必要。

分隔符可以是任何将特定文本片段与提示的其余部分分开的清晰标点符号。可以使用引号,XML 标签,章节标题等。你可以选择任何对你有意义的分隔符。这对模型来说也是有意义的,**任何能让模型清楚这是一个单独的章节的东西都是有用的。


结构化输出

为了使解析模型输出更容易,可以请求使用结构化输出(如超文本标记语言或 JSON)会很有帮助。

例如: 我们说生成一个包含三个虚构书名的列表。与此同时,作者和流派。以 JSON 格式提供以下密钥、书籍 ID、标题、作者和流派。这样 , 我们有 3 本虚构的书名格式化在 JSON 结构化的输出中。这样做的好处是,使输出结果更加直观, 你可以在 Python 中,把它读入字典或列表。


要求模型检查是否满足条件(问答要符合条件与逻辑)

如果任务存在假设未必满足,那么我们可以告诉模型首先检查这些假设,然后如果它们不满足,则指示并停止尝试完全完成任务。您还可以考虑潜在的边缘情况以及模型应如何处理它们 以避免意外错误或结果

例如 , 命令它把 “ 泡一杯咖啡的步骤 “ 的一段话总结步骤。


少量提示的训练

所以我们最后的一选原则是 我们称之为”少量提示训练”。这是在要求模型执行任务之前 , 提供成功执行任务的示例。

例如 : 你要让对话模型模仿你女朋友的语气和你说话,你应该给它少量的你们真实聊天的例子来训练它

让我给你看一个例子:

我们有一个男朋友和女朋友之间对话的例子。我们告诉模型 : 它的任务是以一致的风格回答。

这个时候,我们先要提供一段或几段你们之间进行对话的内容给它参考(假设你的女朋友很喜欢用比喻句,引用名言名句)

所以既然我们已经告诉模型用一致的语气回答,

现在我们说,为什么我打游戏老是输?

由于模型有少量的示例训练的例子,它将以类似的语气响应下一个指令。例如: “ 打游戏就好像逆水行舟,不进则退 “ 等等。


第二个原则 给模型时间思考

如果模型因匆忙得出错误的结论而导致推理错误,您应该尝试在模型提供最终答案之前 重新构建查询 请求相关推理的链或者序列。考虑这个问题的另一种方式是,如果你给一个模型一个太复杂的任务,导致模型无法在短时间内或用少量的词完成它,它可能会猜测结果 , 这可能是不正确的. 这就好像一个人 如果你让某人完成一个复杂的数学问题 但是没有给他足够多的时间找出答案,他们也可能会犯错误。

因此,在这些情况下,您可以指示模型更长时间地思考问题,这意味着它在任务上会花费更多的计算力。所以我们将学习一些方法使它好好冷静思考,第一个方法是指定完成任务所需的步骤。

例如让我们写一段有描述美羊羊和暧羊羊的故事(具体内容自己脑补,我就不编了)。现在我们编写一个提示,因此在这个提示中,指令执行以下操作。

  • 首先 , 用一句话概括下面用三重引号分隔划定的文本,
  • 第二 , 将摘要翻译成英语,
  • 第三 , 列出英语摘要中的每个名字,
  • 第四 , 输出包含一个 json 对象。

当我们运行这个,我们可以完美的得到摘要文本,然后是英语翻译,然后是名称。然后我们得到了我们要求的 JSON。

第二个策略是指示模型在匆忙得出结论之前找出自己的解决方案。

有时当我们明确指示模型在得出结论之前推理出自己的解决方案时,我们可以得到更好的结果。这和我们之前讨论的给模型时间来解决问题的想法是一样的,就像一个人一样来判断一个答案是否正确。

例如:

一个学生在做数学应用题 , 要求学生给出解决方案和计算相关的数学问题 , 我们要求模型确定学生的解决方案是否正确。

所以我们有个数学问题,有学生解决方案。假设学生的解决方案实际上是不正确的,所以数学计算结果也是错误的如果我们提交问题和学生的解决方案 直接运行这个问题,模型会认为学生解决方案是正确的 ,接着也会得出错误的结果。因为这个对话模型只是按照你的思考方式匆匆看过它,然后同意了学生的解决方案,

如果你只是浏览学生的解决方案,可能会一样计算错误,因为那个解决方案它是看起来是正确 但实际上并不正确的。因此,我们可以通过让模型先计算自己的解决方案,然后将其自己的解决方案与学生解决方案进行比较来修正这个问题。所以我们在这个问题中告诉模型,它的任务是确定学生的解决方案是否正确。

要解决问题,请执行以下操作:

首先制定出自己的解决方案,然后将自己的解决方案与学生的解题思路进行对比,评估学生的解决方案是否正确。

在你自己解决问题之前,不要决定学生的解决方案是否正确。一定要清晰明确地表示,确保自己解决问题。我们使用相同的技巧来使用以下格式。所以格式将是 : 问题 - 学生解决方案 - 实际解决方案 - 然后判断是否一致,是\否

现在如果我们按照这个思路去提问,模型首先进行了自己的计算。然后它得到了正确的答案,当被要求将此与学生解决方案进行比较时,它意识到答案不一样。意识到这个学生实际上是不正确的。这是一个例子,说明要求模型自己进行计算,并将任务分解为步骤让模型有更多时间思考,可以帮助您获得更准确的响应。给模型时间考虑这些,经常尝试编写提示符,看看会发生什么,然后从那里迭代地改进提示符,以越来越接近您需要的结果。


对话模型幻觉

尽管语言模型在训练过程中接触了大量知识,但它并没有完全记住它所看到的信息。它并不非常清楚知识的边界。这意味着它可能会尝试回答有关晦涩主题的问题,并且可以编造听起来合理但实际上并不真实的事情。工程师们称这些捏造的想法为幻觉。

如果我们运行一些它听不懂的内容,模型会给我们一个非常逼真的描述,一个虚构的内容。这可能有点危险的原因是这听起来很现实。这是一个例子:

图片

我提问了一个关于原神的角色的相关问题和描述,游戏玩家能一眼看出来明显出现了问题。这是 chatGPT 对话模型的一个已知弱点。如果你希望减少幻觉 , 有一个办法是:要求模型首先从文本中找到任何相关的引用**,然后要求它使用这些引号来回答问题,并且可以将答案追溯回源文档,这通常对减少幻觉很有帮助。

图片中提问的内容:https://chat.openai.com/share/366f5f21-4aed-4c6a-89f7-7fda16b94f58

文章参考 https://learn.deeplearning.ai/

完 .