文本生成人工智能尚未获得与图像生成人工智能同等程度的宣传,但可以说它们存在的时间更长,并且在我们的日常生活中更加普遍。想想每当您访问各种网站时都会弹出并回答您的问题的所有聊天机器人。我们完全依赖 OpenAI 的 GPT-3 语言模型来提出原创故事创意并生成免费故事中的大部分文本。使用他们的 Playground 写故事很大程度上是一个学习过程,所以我认为分享我迄今为止所发现的内容会对我有所帮助。

入门

第一步是访问语言模型。在撰写本文时,人们可以通过向 OpenAI 申请测试版许可证来免费访问 Playground。完成帐户设置后,您将看到 Playground 的主界面。

价钱

虽然访问 OpenAI Playground 是免费的,但使用 GPT-3 语言模型则不然。他们按使用的 1,000 个代币收费。一个 token 大约为 4 个英文字符,这意味着 1,000 个 token 大约相当于 750 个单词。提示中的令牌数量以灰色圆圈显示在界面右下角。您可以使用“最大长度”设置来设置提示和输出文本中使用的标记数量,我将在下面详细描述。

定价取决于您使用的型号,我将在下一节中介绍。

OpenAI GPT-3 参数和设置

楷模

您想要的写作内容、风格或帮助类型将决定您应该选择哪种模型。以下是它们的优点和缺点的快速总结:

  • 达芬奇
    • 优点:最高能力模型;在插入和编辑模式下可用;适合复杂的任务和理解文本情感;训练数据是最新的(2021 年 6 月)
    • 缺点:四个模型中最慢的;每次调用的成本最高为 0.02 美元/1k 代币
  • 居里
    • 优点:最擅长语言翻译、概括和模仿训练文本情感和语气;仅使用 Davinci 成本的十分之一(0.002 美元/1k 代币)
    • 缺点:达芬奇不擅长分析复杂的文本; 2019年10月的训练数据
  • 巴贝奇
    • 优点:擅长句子完成和头脑风暴列表;比达芬奇和居里更快;每 1000 代币仅需 0.0005 美元
    • 缺点:不擅长复杂任务或文本分析; 2019年10月的训练数据
  • 艾达
    • 优点:擅长生成大型随机文本数据集;所有型号中最快的;最便宜为 $0.0004 / 1k 代币
    • 缺点:只能完成非常简单的任务; 2019年10月的训练数据

为了帮助您了解这四种模型之间的差异,下面是我在 OpenAI Playground 中生成的一个示例,使用与 One Drop in the Ocean 相同的设置参数和提示:

迅速的: 写一个关于沧海一粟的短篇故事的开头。

达芬奇: 曾几何时,沧海一粟。数量不多,只是一点点从天而降的水,但却足以在大海中激起大片的水花。

居里: 太阳正在落山,海浪拍打着海岸。空气中弥漫着咸水的味道和花香。这是美好的一天,但出了点问题。

巴贝奇: 海洋是一个广阔无边的地方。它的大小与地球相同,温度也相同,但它也充满了小至一毫米、大至一公里的水滴。

艾达: 海洋只是沧海一粟。它太小了,似乎没有底部。水很深,波浪也很大。

为了给《童话镇算法》写故事,我通常使用达芬奇或居里。达芬奇似乎是最全面的人工智能,并且能够完成其他模型所擅长的一切,但居里似乎比达芬奇更擅长编写营造气氛或戏剧感的描述性句子。两者都擅长理解示例文本并模仿其风格和语气。 OpenAI 在其文档中提供了有关这四个模型的更多详细信息。

OpenAI Playground 中可用的预设

界面顶部的下拉菜单中有几个可用的预设:

  • 语法标准英语
  • 二年级学生总结
  • 文本到命令
  • 问答
  • 英语到其他语言
  • 解析非结构化数据
  • 分类
  • 聊天

选择预设将使用示例提示和输出自动填充文本区域,以演示如何使用它。如果您不想使用预设,只需保留下拉菜单即可。

我偶尔用来写儿童故事的一个预设是“为二年级学生总结”。以下是我如何将其用于“One Drop in the Ocean”的示例:

Example of Summarize for a 2nd grader preset by OpenAI

模式

OpenAI Playground 提供三种模式:完成、插入和编辑。

完成 是这个人工智能的面包和黄油。您给它一个提示,人工智能将尝试根据您提供的用于训练它的示例文本(如果有)来完成它。居里在这里完成了上面开始的故事的开头:

迅速的: 太阳正在落山,海浪拍打着海岸。空气中弥漫着咸水的味道和花香。这是美好的一天,但出了点问题。一场风暴正在酝酿,看起来情况会很糟糕。

居里: 一个女人正在海滩上散步。她有一头金色的长发和蓝色的眼睛。她穿着白色连衣裙和凉鞋。她看上去平静而快乐,但她也有一些不对劲的地方。

插入 仅适用于达芬奇型号。当您单击插入图标时,界面分为输入(左)和输出(右)侧。您可以通过在文本中添加 [insert] 来指示要插入文本的位置。

Insert mode for text generation
达芬奇在居里的故事中插入了一个额外的句子(绿色)。

编辑 达芬奇根据您给出的说明修改提供的文本。我使用这种模式得到的结果差异最大。我倾向于得到的唯一一致的良好输出是当我要求达芬奇修复文本中的任何语法错误时。根据我有限的实验,其他指令的工作方式往往与完成和插入模式非常相似,即在末尾或中间添加文本。

Edit mode for text generation
达芬奇根据我的指示编辑文本。更改被选择为蓝色。

GPT-3 设置

温度

此设置控制输出文本的随机性或创造性。温度为 0 意味着输出始终与输入文本完全相同,而温度为 1 则允许最大程度的创造力。与 OpenAI Playground 中的任何其他设置相比,我更倾向于调整温度。以下是它如何影响输出的几个示例:

温度=0.2

迅速的: 为一个关于青蛙冒险的短篇故事提出三个情节创意。

1. 池塘干涸后,一只青蛙开始冒险寻找新家。
2. 一只青蛙在最后一只青蛙死后继续冒险寻找伴侣。
3. 一只为了躲避捕食者而踏上冒险之旅的青蛙。

温度=1.0

迅速的: 为一个关于青蛙冒险的短篇故事提出三个情节想法。

1. 一只对小池塘里的生活感到满意的青蛙突然发现自己被推入了广阔而危险的开放世界。
2. 一只一直很失败的青蛙突然发现自己拥有潜在的魔力,可以让她变成美丽的公主。
3. 一只平时非常胆怯害羞的青蛙在一群取笑她的恶霸面前采取了立场。

我结合了其中一些输出建议,形成了我的故事《小青蛙,大龙》的基础。

顶P

我发现的大多数关于 Top P 所做的事情的信息都非常模糊。 OpenAI 的描述是:“通过核采样控制多样性。”我能找到的最好的非技术解释是 Top P 决定模型考虑输出的随机结果的数量。总体而言,普遍的共识是它有助于提高输出文本的创造力水平。

根据我在 OpenAI Playground 中使用 GPT-3 模型的经验,将两者设置为 0.5 以上将给出更有趣和多样化的结果。将“Top P”或“Temperature”设置为较低值将创建非常确定且通常相同的文本,无论另一个设置如何。

对于下面的示例,我发誓我并不是简单地在三种设置组合中复制/粘贴完全相同的输出!

顶部 P=0,温度 = 0.2:

1. 池塘干涸后,一只青蛙开始冒险寻找新家。
2. 一只青蛙在平常的昆虫食物变得稀缺后,开始冒险寻找新的食物来源。
3. 一只青蛙在最后一只青蛙死后继续冒险寻找伴侣。

顶部 P = 0,温度 = 1.0:

1. 池塘干涸后,一只青蛙开始冒险寻找新家。
2. 一只青蛙在平常的昆虫食物变得稀缺后,开始冒险寻找新的食物来源。
3. 一只青蛙在最后一只青蛙死后继续冒险寻找伴侣。

顶部 P=1,温度 = 0.2:

1. 池塘干涸后,一只青蛙开始冒险寻找新家。
2. 一只青蛙在平常的昆虫食物变得稀缺后,开始冒险寻找新的食物来源。
3. 一只青蛙在最后一只青蛙死后继续冒险寻找伴侣。

顶部 P=1,温度 = 1.0:

1. 一只青蛙踏上冒险之旅,寻找一个新的池塘作为家。
2. 一只青蛙踏上冒险之旅,寻找神秘噪音的来源。
3. 一只青蛙踏上冒险之旅,寻找完美的小憩地点。

最大长度

此设置确定生成的文本将具有的最大标记数。在英语中,1 个 token 大约相当于 4 个字符。设置较高的响应长度并不一定意味着输出会那么长。根据我的经验,绝大多数时候,它会更短。

然而,如果您设置了特别短的响应长度,例如小于 100,AI 也不会总是调整其输出来适应这一点。相反,当输出文本达到指定的响应长度时,它只会在句子中被截断,如以下来自 Clara in the City 的示例所示。

Output text in OpenAI Playground getting cut off by the maximum length setting
GPT-3 输出在达到 60 个标记的最大长度时在句子中被切断

值得注意的是,每个模型都限制一定数量的代币。达芬奇最多可以做 4000 个令牌,而居里、巴贝奇和艾达仅限于 2048 个令牌。

停止顺序

您可以输入特定的字符串来告诉 GPT-3 停止生成补全。在我的故事写作和头脑风暴中,我从来不需要使用这个特定的设置。我的理解是它主要在两种情况下有用:

  1. 您想要根据您提供的重复使用相同单词的示例文本生成输出
  2. 您可以将停止长度与“注入开始文本”参数结合使用,以获得特定长度或类型的输出

在我刚刚描述的两种场景中,您可以高度确定地预测 AI 将在其生成的补全中使用停止序列中指定的字符。

注入开始文本

如果您希望完成文本始终以已知前缀开头,则此参数非常有用,这在两个角色之间创建对话时非常有用。举个具体的例子,《小青蛙大龙》中有青蛙和龙之间的言语交流。为了训练 OpenAI 中的语言模型以理解对话主题,我提供了一些训练文本和命令提示符。在下图中,注入开始文本设置为“青蛙:”,因为我希望青蛙成为对抗的发起者。

Example of using the Inject Start Text parameter in GPT-3
在 GPT-3 中使用“注入开始文本”参数的示例

注入重启文本

该变量非常适合生成多个简短的交互,而无需一遍又一遍地输入相同的提示。假设我想使用 GPT-3 来想出一堆简短、蹩脚的笑话,这些笑话都遵循问答格式。我所要做的就是添加“问题:”作为“注入重启”文本,然后一遍又一遍地点击“提交”按钮,让人工智能说出一堆笑话。

使用 Restart 文本参数编写糟糕笑话的示例

频率和存在惩罚

这些设置通过根据标记在文本中出现的次数来惩罚标记,从而控制重复相同单词或短语的可能性。惩罚越高,输出的词汇和主题就越有创意和多样化。

以下是当频率和存在惩罚都设置为 0 时 GPT-3 编写的文本摘录:

女孩走了几个小时,她已经累了。她一直沿着河走,但河水蜿蜒曲折,她现在完全迷路了。她坐在一块岩石上休息。她不知道该走哪条路。她越来越害怕了。她听到有声音,她站起来看看是什么声音。那是一只熊。

这篇文章的句子结构非常相似且简短,并且反复使用了许多单词。使用在线可读性计算器,上述文本的 Flesch-Kincaid 等级水平仅为 1.5,这意味着其句子结构和词汇代表了美国一年级或二年级学生。

与频率和存在惩罚增加到 2 时相比:

这个女孩已经沿着河走了几个小时,试图找到回家的路。她又累又饿,她知道自己坚持不了多久了。终于,她来到了一个岔路口。她不知道该走哪条路。她坐在河边开始哭泣。突然,她听到身后有声音。她回头,看到一只大熊站在那里看着她。

使用较高惩罚设置生成的文本明显更有趣且多样化,Flesch-Kincaid 等级为 3.2。这意味着调整惩罚值是控制输出成熟度以适应目标受众年龄的好方法。

最好的

此设置指定运行服务器端的完成次数。您最多可以让它完成 20 次完成,但它只会输出 GPT-3 认为最好的一次。请注意,即使您看不到 OpenAI 生成的令牌,OpenAI 仍会向您收费,因此此设置会显着增加使用 Playground 的成本。由于不透明度和增加的成本,我从未将其设置为高于 1。如果您确实将此变量增加到 1 以上,Playground 将停止实时流式传输输出文本,而是立即将其全部显示。

显示概率

该下拉菜单出现在最底部。如果您在提交提示之前选择其中一个选项,则生成的输出将根据每个标记的使用可能性对其进行着色。红色标记表示比绿色单词更可能被使用的单词。左键单击一个标记将弹出一个弹出框,其中显示所有考虑过的选项以及它们被选择的概率。

全谱显示的 GPT-3 概率

对于我的故事写作,如果我喜欢整体输出但想用同义词替换某些单词,我发现这种模式很有用。

相关文章