【GPT-3】第2章 使用 OpenAI API
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
尽管 GPT-3 是世界上最复杂和最复杂的语言模型,但它的功能被抽象为最终用户的简单“文本输入、文本输出”界面。本章将帮助你开始使用 Playground 接口,并介绍 OpenAI API 的技术细微差别,因为细节总是能揭示真正的瑰宝。
要完成本章,您需要注册一个OpenAI 帐户位于OpenAI API。如果您还没有这样做,请现在就这样做。
您的OpenAI 开发者帐户提供对 API 的访问和无限可能。我们将从 Playground 开始,这是一个基于 Web 的沙盒环境,可让您试验 API、了解其组件的工作原理以及访问开发人员文档和 OpenAI 社区。然后,我们将向您展示如何构建强大的提示,为您的应用程序生成有利的响应。我们将以 GPT-3 执行四项 NLP 任务的示例结束本章:分类、命名实体识别 (NER)、摘要和文本生成。
在接受采访时OpenAI 产品和合作伙伴关系副总裁 Peter Welinder 向我们征求了有关为初次使用的用户导航 Playground 的关键建议。他告诉我们他的建议取决于用户的角色。如果用户有机器学习背景,Peter 鼓励他们“从忘记他们已经知道的事情开始,然后去 Playground 尝试让 GPT-3 做你想要做的事情,只需询问它。”?他建议用户“将 GPT-3 想象成您要求做某事的朋友或同事。您如何描述您希望他们完成的任务?然后,看看 GPT-3 是如何响应的。如果它没有以您想要的方式响应,请重复您的指示。”
作为 YouTuber 和 NLP 影响者 Bakz Awan说,“非技术人员会问:我需要学位才能使用它吗?我需要知道如何编码才能使用它吗?绝对不。您可以使用游乐场。你不需要写一行代码。您将立即获得结果。任何人都可以做到这一点。”
笔记
在开始使用 Playground 之前,我们建议您阅读 OpenAI 的快速入门教程指南和开发者文档。
以下是开始使用 Playground 的步骤:
-
在登录并从主菜单导航到 Playground。
-
看看 Playground 屏幕(图 2-1)。
-
标记为 1 的大文本框是您提供文本输入(提示)的地方。
-
右侧标记为 2 的框是参数设置窗格,您可以在其中调整参数。
-
标有 3 的框允许您加载预设:示例提示和 Playground 设置。提供您自己的训练提示或加载现有预设。
图 2-1。Playground界面,2022年1月10日截图
-
-
选择现有的问答预设(标记为 3)。这将自动加载训练提示以及相关的参数设置。单击 Generate 按钮(在图 2-1中标记为 4 )。
-
API 处理您的输入并提供响应(称为完成)在同一文本框中。它还向您显示使用的令牌数量。令牌是用于确定每个 API 调用定价的单词的数字表示;我们将在本章后面讨论它们。
-
在右侧屏幕底部,您将看到令牌计数,在左侧您有一个 Generate 按钮(见图 2-2)。
图 2-2。问答提示完成以及令牌计数
-
每次单击“生成”按钮时,GPT-3 都会考虑文本输入字段中的提示和完成,并将它们视为下一次完成的训练提示的一部分。
这是您可以在图 2-2中看到的提示:
这是完成:
现在您已经了解了 Playground 的基本轮廓,让我们深入了解即时工程和设计。
这OpenAI API 从根本上改变了我们与 AI 模型交互的方式,剥离了一层又一层复杂的编程语言和框架。安德烈・卡帕蒂,特斯拉的 AI 总监,在 GPT-3 发布后就开玩笑说,编程 3.0 就是关于即时设计的(他在推特上发布的 meme 在图 2-3中)。您提供的培训提示与您获得的完成质量之间存在直接关系。单词的结构和排列会严重影响输出。了解提示设计是释放 GPT-3 真正潜力的关键。
编写好的提示的秘诀是了解 GPT-3 对世界的了解。作为Awan 指出,“它只看到了文字。这意味着你不应该期望它知道物理世界,即使它显然知道。它可以描述蒙娜丽莎,[可以]告诉你[关于]它的意义、重要性和历史,但它从未见过[这幅画],因为它只接受了文字训练。”
你的工作是让模型使用它已经拥有的信息来产生有用的结果。在字谜游戏中,表演者向其他玩家提供足够的信息来找出秘密单词。同样,使用 GPT-3,我们为模型提供了足够的上下文(以训练提示的形式)来找出模式并执行给定的任务。
图 2-3。模因来源不明,Andrej Karpathy于 2020 年 6 月 18 日在推特上发布
小费
在设计训练提示时,瞄准对于模型的零样本响应:也就是说,看看是否可以在不使用外部训练示例启动模型的情况下获得所需的响应。如果没有,请通过向其展示几个示例而不是整个数据集来继续前进。设计训练提示的标准流程是先尝试零样本,然后尝试少样本,然后再进行基于语料库的微调(本章稍后会介绍)。
GPT-3 是迈向通用人工智能的第一步,因此有其局限性。它不知道一切,也无法在人类层面上推理,但是当你知道如何与它交谈时,它的能力很强。这就是即时工程艺术的用武之地。
GPT-3 不是一个讲真话的人,但它是一个出色的讲故事的人。它接收文本输入并尝试用它认为最能完成输入的文本进行响应。如果你从你最喜欢的小说中给它几句台词,它会尝试以同样的风格继续下去。它通过在上下文中导航来工作,如果没有适当的上下文,它会产生不一致的响应。让我们看一个例子来了解 GPT-3 如何处理输入提示并生成输出:
如果您在没有任何上下文的情况下向 GPT-3 提供这样的提示,您实际上是在要求它从其训练数据的范围中寻找一般答案。结果将是泛化和不一致的响应,因为模型不知道要使用训练数据的哪一部分来回答问题。
【OpenAI 推出超神 ChatGPT 注册教程来了】的更多相关文章
openai是哪个公司的,openapi公司,openai官网,openal是什么公司【Pytorch教程】:DQN 强化学习
pytorch60分钟入门,pytorch入门教程(非常详细),pytorch入门,pytorch 教程Torch and Numpy 变量 (Variable) 激励函数 关系拟合(回归) 区分类型 (分类) 快速搭建法 批训练 加速神经网络训练 Optimizer优化器 卷积神经网络 CNN 卷积神经网络(RNN、LSTM) RNN 循环神经网络 (分类) RNN 循环神经网络 (回归) 自编码 (Autoencoder) DQN 强化学习 生成对抗网络 (GAN) 为什么 Torch 是动态的 GPU 加速运算 过拟合 (Overfitting) 批标准化 (Batch Normalization)
- Pytorch教程目录
- 什么是 DQN
- 强化学习与神经网络
- 神经网络的作用
- 更新神经网络
- DQN 两大利器
- DQN 强化学习
- 模块导入和参数设置
- 神经网络
- DQN体系
- 训练
- 全部代码
强化学习中的一种强大武器, 简称为 . Google Deep mind 团队就是靠着这 DQN 使计算机玩电动玩得比我们还厉害.
之前我们所谈论到的强化学习方法都是比较传统的方式, 而如今, 随着机器学习在日常生活中的各种应用, 各种机器学习方法也在融汇, 合并, 升级. 而我们今天所要探讨的强化学习则是这么一种融合了神经网络和 Q learning 的方法, 名字叫做 Deep Q Network. 这种新型结构是为什么被提出来呢? 原来, 传统的表格形式的强化学习有这样一个瓶颈.
我们使用表格来存储每一个状态 state, 和在这个 state 每个行为 action 所拥有的 Q 值. 而当今问题是在太复杂, 状态可以多到比天上的星星还多(比如下围棋). 如果全用表格来存储它们, 恐怕我们的计算机有再大的内存都不够, 而且每次在这么大的表格中搜索对应的状态也是一件很耗时的事.
不过, 在机器学习中, 有一种方法对这种事情很在行, 那就是神经网络. 我们可以将状态和动作当成神经网络的输入, 然后经过神经网络分析后得到动作的 Q 值, 这样我们就没必要在表格中记录 Q 值, 而是直接使用神经网络生成 Q 值.
还有一种形式是这样, 我们只输入状态值, 输出所有的动作值, 然后按照 Q learning 的原则, 直接选择拥有最大值的动作当做下一步要做的动作. 我们可以想象, 神经网络接受外部的信息, 相当于眼睛鼻子耳朵收集信息, 然后通过大脑加工输出每种动作的值, 最后通过强化学习的方式选择动作.
接下来我们基于第二种神经网络来分析
我们知道, 神经网络是要被训练才能预测出准确的值. 那在强化学习中, 神经网络是如何被训练的呢?
- 首先, 我们需要 a1, a2 正确的Q值, 这个 Q 值我们就用之前在 Q learning 中的 来代替.
- 同样我们还需要一个 来实现神经网络的更新. 所以神经网络的参数就是 新 N N = 老 N N + α ( Q 现 实 ? Q 估 计 ) 新NN=老NN+\alpha(Q现实-Q估计) 新NN=老NN+α(Q现实?Q估计)
-
我们通过 NN 预测出 和 的值, 这就是 . 然后我们选取 中最大值的动作来换取环境中的奖励 reward.
-
而 中也包含从神经网络分析出来的两个 Q 估计值, 不过这个 是针对于下一步在 s’ 的估计.
-
最后再通过刚刚所说的算法更新神经网络中的参数.
但是这并不是 DQN 会玩电动的根本原因. 还有两大因素支撑着 DQN 使得它变得无比强大. 这两大因素就是 和 .
简单来说, DQN 有一个用于学习之前的经历. 是一种 , 它能学习当前经历着的, 也能学习过去经历过的, 甚至是学习别人的经历.
所以每次 DQN 更新的时候, 我们都可以随机抽取一些之前的经历进行学习. 随机抽取这种做法打乱了经历之间的相关性, 也使得神经网络更新更有效率.
也是一种打乱相关性的机理, 如果使用 fixed Q-targets, 我们就会在 DQN 中使用到两个结构相同但参数不同的神经网络, 预测 的神经网络具备最新的参数, 而预测 的神经网络使用的参数则是很久以前的. 有了这两种提升手段, DQN 才能在一些游戏中超越人类.
这次除了 Torch 自家模块, 我们还要导入 Gym 环境库模块
DQN 当中的神经网络模式, 我们将依据这个模式建立两个神经网络, 一个是, 一个是.
简化的 DQN 体系是这样, 我们有两个 net, 有, 有, 有.
接下来就是具体的啦, 在 DQN 中每个功能都是怎么做的.
按照 Qlearning 的形式进行 off-policy 的更新. 我们进行回合制更行, 一个回合完了, 进入下一回合. 一直到他们将杆子立起来很久.