使用GPT-3及时提示工程技巧和技巧

2021-04-23 08:34:47

我打算假设你知道GPT-3是什么以及它为什么是Big Deal™。

在这篇文章中,我将简要解释一个及时的工程,为什么它很重要,以及一些帮助你做得很好的提示和技巧。虽然我怀疑传统的编程很快就会消失,但我认为提示工程将成为大多数开发人员工具箱的一个非常重要的部分。

我一直很幸运能够将LT-3集成到复杂的产品中。这段时间的很大一部分是花费“及时工程”,其中你说服了GPT-3这样的大语言模型(LLM),它正在编写一个结构和内容使其执行所需任务的文档。此文档称为“提示”,通常包含您希望使用LLM的说明和示例。

零射击:没有示例的提示,例如,来自戒指之王的角色的名称是:或[英语:"你好!&#34 ;,法国人:"

这是一个启动创意列表:1。 [标签:互联网]一个允许您发布文章的网站&#39书面,其他人可以帮助您编辑它们。 [标签:首页]一个网站,让您在您家中分享一张破碎的东西,然后当地人可以为您提供修复它。 [标签:儿童]一种在线服务,教授儿童如何编码。 [标签:财务]允许人们向需要他们的人租用未使用的耐用品的在线服务。 [标签:机器学习]

在此示例提示符中,我们有一些上下文(这是一个启动概念列表:)和一些拍摄的例子。下次在文档中最有可能的是一个空间,其次是涉及机器学习的辉煌新的启动理念,而且,这就是GPT-3提供的:“一个在线服务,让人们上传一堆数据,以及然后根据该数据自动构建机器学习模型。“ (IDES 1-4也基于GPT-3从此提示的先前迭代所建议的那些。)

GPT-3对此令人惊讶的工作,产生一些真正有趣的想法。 (即最近的一对夫妇:“一个在线服务,让人们向其他需要它的停车场或存储空间租用其他人。”和“一个在线服务,让您支付拥有自己的人,以便在您家中飞行一个人图片。”)

使用数字启动列表项(以及在这种情况下,标记)强制模型生成新项目。如果我们在第4行之后停止,没有5.前缀,模型有时会决定做类似的东西,如添加空行,然后启动一个完全新的和不相关的列表。

在每个想法的前面使用标签强制模型尝试在感兴趣的空间内生成一些东西。

该模型对提示“出血”或“语义污染”输出非常敏感。也就是说,它生成的想法通常看起来类似于和具有与示例相同的结构。这是几个拍摄示例的一般问题,并且在可能的情况下激励零次射击的使用。通常,您示例的样式,语言和主题将强烈影响模型完成。

在那里,如果您允许模型允许在您已经获得所需的结果后,可以看到会发生什么示例。

如果您的提示有拼写或语法错误,或格式不一致,则完成将具有这些问题。非常经常与GPT-3一起使用,我发现了写作质量差,拼写错误或语法错误的提示的示例。 GPT-3根据令牌的最高可能性完成,拼写差和语法较差的文件突然成为一个没有这些问题的文件,所以GPT-3很乐意继续为您迈出趋势。此外,我怀疑从书面良好的提示完成的原理级别更糟,因为GPT-3的培训数据中的文件较少,所以写的数据不足,但仍然很好地推理。

由于语义污染,可以是一个很好的想法,可以是根据您尝试解决的问题选择的几个镜头示例的数据库。例如,如果您有一个允许生成字符名称的应用程序,则允许您的用户指定类型,然后使用与该类型一致的示例名称进行种子。或者,在上面的想法生成案例中,如果你想为区间的公司生成一流的想法,让你的所有几张镜头都是树木金属区的真正良好的例子。如果你想为畜牧业产生想法,请使用该空间的几张镜头。等等。

您越允许LLM在没有人类返回理智的情况下生成,它将越多。它基本上通过文档空间执行半随机步行。 LLMS也倾向于陷入困境,因为一旦他们因任何原因不小心重复自己,这将成为他们的先前:他们现在发现自己完成了一个有重复的文件,因此继续趋势。如果您尝试生成许多示例,例如使用启动思想列表,而不是允许模型完成项目6,7,8等,而是仅使用OpenAI的STOP参数集完成单线要\ n,并将结果数量的数量设置为大于1的东西,以有效地生成许多单行完成。

您可以通过排名结果来提高质量。使用上面提到的N个参数,您可以有效地生成多个完成,然后通过一些有用的启发式进行排序或拒绝样本,例如卸下重量的重叠与提示(以避免重复性)或某些特定于域的指标。

在您的示例之后几次拍摄将偏见完成结果比早期的结果更多。它可以值得随机化每代几个拍摄订单,或应用其他技术来解释这一偏差,以及模型的其他固有偏差。

提高完成质量的培训和不断发展是一个活跃的研究领域。以下是最近的论文让您入门。

如果您想深入挖掘纯粹的迅速的工程,则提示编程方法是一个很好的阅读。

正如我所说,我怀疑传统的节目很快就会消失,但是提示工程可能在这里留下来。我很高兴看到LLMS Go的位置(这里是我们来的GPT-4!),我会添加更多的提示,就像我学习的那样!