你输入模型的文本被称为提示,生成文本的行为被称为推断,输出文本被称为完成。用于提示的文本或可用的内存的全部量被称为上下文窗口。尽管这里的示例显示模型表现良好,但你经常会遇到模型在第一次尝试时无法产生你想要的结果的情况。你可能需要多次修改提示中的语言或其编写方式,以使模型按照你想要的方式行为。这种开发和改进提示的工作被称为提示工程。
这是一个大话题。但是,一种强大的策略是在提示中包括你希望模型执行的任务的示例,以使模型产生更好的结果。
在上下文窗口中提供示例被称为上下文学习。让我们看看这个术语是什么意思。通过上下文学习,你可以通过在提示中包括示例或额外数据来帮助LLMs更多地了解所询问的任务。这里有一个具体的例子。在这里的提示中,你要求模型对评论进行情感分类。因此,这部电影的评论是积极的还是消极的,提示包括指令“对此评论进行分类”,然后是一些上下文,这种情况下是评论文本本身,以及在最后生成情感的指令。这种方法,将你的输入数据包括在提示中,被称为零次推断。最大的LLMs在这方面表现得非常好,掌握了要完成的任务,并返回了一个好答案。在这个示例中,模型正确地识别了情感为积极的。
另一方面,较小的模型可能会在这方面遇到困难。这里是GPT-2生成的一个完成示例,GPT-2是ChatGPT的早期较小版本的模型。如你所见,模型没有遵循指令。尽管它确实生成了与提示相关的文本,但模型无法弄清楚任务的细节,并且没有识别情感。这就是在提示中提供示例可以提高性能的地方。
如你所见,提示文本更长了,现在以一个完成的示例开始,该示例向模型展示了要执行的任务。在指定模型应对评论进行分类之后,提示文本包括了一个样本评论。我喜欢这部电影,然后是一个完成的情感分析。在这种情况下,评论是积极的。接下来,提示再次说明了指令,并包括了我们希望模型分析的实际输入评论。你将这个新的更长的提示传递给较小的模型,该模型现在有更好的机会理解你指定的任务和你想要的响应格式。包括单个示例被称为一次推断,与你之前提供的零次提示形成对比。
有时,单个示例可能不足以让模型学习你希望它执行的操作。因此,你可以扩展给出单个示例的想法,以包括多个示例。这被称为少次推断。这里,你正在使用一个甚至更小的模型,该模型在一次推断中未能很好地进行情感分析。相反,你将尝试通过包括第二个示例来进行少次推断。这次是一个消极的评论,包括不同输出类的示例组合可以帮助模型了解它需要做什么。你将新的提示传递给模型。这次它理解了指令,并生成了一个正确识别评论情感为消极的完成。
所以,总结一下,你可以设计你的提示来鼓励模型通过示例学习。尽管最大的模型在零次推断中表现得很好,但较小的模型通常只擅长少数任务。
通常,这些任务与它们接受培训的任务相似。你可能需要尝试几个模型来找到适合你的用例的模型。找到适合你的模型后,你可以尝试一些设置,以影响模型生成的完成的结构和样式。让我们在下一个视频中看一下其中的一些配置设置。
参考
https://www.coursera.org/learn/generative-ai-with-llms/lecture/ZVUcF/prompting-and-prompt-engineering