深入了解 GPT-4 和 ChatGPT 的 API---OpenAI Playground

news2024/9/20 22:31:29

文章目录

    • 基本概念
    • OpenAI API 提供的可用模型
    • 在 OpenAI Playground 中使用 GPT 模型

    掌握GPT-4 和 ChatGPT 的 API 的使用方法,以便有效地将它们集成到 Python 应用程序中。首先,需要了解 OpenAI Playground。这将使你在编写代码之前更好地了解模型。接着,需要学习 OpenAI Python 库。这部分内容包括登录信息和⼀个简单的 Hello World 示例。然后,需要学习创建和发送 API 请求的过程,并了解如何处理 API 响应。这将确保你知道如何解释这些 API 返回的数据。最后,还会介绍诸如安全最佳实践和成本管理等考虑因素。随着学习的深入,我们将获得实用的知识,这对使用 GPT-4 和 ChatGPT 进行 Python 开发非常有帮助。在继续阅读之前,请查看 OpenAI 的使用规则。如果还没有账户,请在 OpenAI 主页上创建⼀个。

基本概念

    OpenAI 提供了多个专为不同任务设计的模型,每个模型都有自己的定价。接下来,我们将详细地对比这些模型并讨论如何根据需求选择模型。需要注意的是,模型的设计目的——无论是用于补全文本、聊天还是编辑——会影响你如何使用其 API。比如,GPT-4 和 ChatGPT 背后的模型基于聊天目的,并使用聊天端点。提示词不仅适用于 OpenAI API,而且是所有 LLM 的入口点。简单地说,提示词就是用户发送给模型的输入文本,用于指导模型执行特定任务。对于 GPT-4 和 ChatGPT 背后的模型,提示词具有聊天格式,输入消息和输出消息存储在列表中。除了提示词,还有标记。标记是词或词的⼀部分。据粗略估计,100 个标记大约相当于 75 个英语单词。对 OpenAI 模型的请求是根据所使用的标记数量来定价的,也就是说,调用 API 的成本取决于输入文本和输出文本的长度。

图片名称
OpenAI API 的基本概念

OpenAI API 提供的可用模型

    通过 OpenAI API,你可以使用 OpenAI 开发的多个模型。这些模型可通过API 作为服务使用(通过直接的 HTTP 调用或提供的库),这意味着 OpenAI 在远程服务器上运行模型,开发人员只需向其发送查询请求即可。每个模型都有自己的功能和定价。需要注意的是,这些模型是专有的,你不能根据自己的需求直接修改模型的代码。但是你可以通过 OpenAI API 在特定数据上微调其中的⼀些模型。⼀些较旧的 OpenAI 模型(包括 GPT-2 模型)并不是专有的。你可以直接从 Hugging Face 或 GitHub 下载 GPT-2 模型,但无法通过 API使用它。由于 OpenAI 提供的许多模型会不断更新,因此很难给出完整的列表。要了解最新的模型列表,请查看 OpenAI 的在线文档。

    InstructGPT,这个模型系列可以处理许多单轮文本补全任务。text-ada-001 模型只能处理简单的文本补全任务,但它也是 GPT-3 系列中速度最快、价格最便宜的模型。text-babbage-001 模型和 text-curie-001 模型稍微强大⼀些,但也更昂贵。text-davinci-003 模型可以出色地执行所有文本补全任务,但它也是 GPT-3 系列 中最昂贵的。截至 2023 年 11 月下旬的消息,InstructGPT 系列已经在 2024 年 1 月 4 日统⼀替换为最新的 gpt-3.5-turbo-instruct 模型。

    ChatGPT 背后的模型是 gpt-3.5-turbo。作为⼀个聊天模型,它可以将⼀系列消息作为输入,并生成相应的消息作为输出。虽然 gpt-3.5-turbo 的聊天格式旨在进行多轮对话,但它也可用于没有对话的单轮任务。在单轮任务中,gpt-3.5-turbo 的性能与 text-davinci-003 相当。由于 gpt-3.5-turbo 的价格只有 text-davinci-003 的十分之⼀ ,而且两者性能相当,因此建议默认使用它来进行单轮任务。gpt-3.5-turbo 模型的上下文窗口大小约为 4000 个标记,这意味着它可以接收约 4000 个标记作为输入。OpenAI 还提供了另⼀个模型,名为 gpt-3.5-turbo-16k。它具有与标准的 gpt-3.5-turbo 模型相同的功能,但上下⽂窗口大小是后者的 4 倍。截至 2023 年 11 月下旬,最新版本的 text-davinci-003 价格是每千个标记 0.0200 美元,gpt-3.5-turbo-0613 的价格是每千个输⼊标记 0.0030 美元 + 每千个输出标记 0.0040 美元。

    这是迄今为止 OpenAI 发布的最大的模型。由于在⼴泛的文本和图像多模态语料库上进行了训练,因此它精通许多领域。GPT-4 能够准确地遵循复杂的自然语言指令并解决难题。它可用于聊天任务和单轮任务,并具有相当高的准确性。OpenAI 提供了两个 GPT-4 模型 :gpt-4 的上下文窗口大小为 8192 个标记,gpt-4-32k 的上下文窗口大小为 32 768 个标记。32 768 个标记大约相当于 24 576 个英语单词,即⼤约 40 页的上下文。截止 2023 年 11 月下旬,OpenAI 已提供 6 个 GPT-4 模型,包括 gpt-4-1106-preview、gpt-4-vision-preview、gpt-4、gpt-4-32k、gpt-4-0613、gpt-4-32k-0613。无论是 GPT-3.5 Turbo 还是 GPT-4,都在持续更新。当提到 gpt-3.5-turbo、gpt-3.5-turbo-16k、gpt-4 和 gpt-4-32k 时,我们指的是这些模型的最新版本。截止 2023 年 11 月下旬,文中提到的模型版本已更新至 gpt-3.5-turbo-1106、gpt-3.5-turbo-0613、gpt-4-1106-preview、gpt-4-32k-0613。

    开发人员通常希望 LLM 版本具有良好的稳定性和可见性,以便在应用程序中使用它。对于开发人员来说,如果模型的版本在⼀夜之间发生变化,并且针对相同的输入给出截然不同的回答,那么这样的模型使用起来很困难。为此,OpenAI 提供了这些模型的静态快照版本。上述模型最新的静态快照版本分别是 gpt-3.5-turbo-0613、gpt-3.5-turbo-16k-0613、gpt-4-0613 和 gpt-4-32k-0613。OpenAI 建议使用 InstructGPT 系列而不是原始的 GPT-3模型。这些模型仍然在 API 中以 davinci、curie、babbage 和 ada 的名称提供。鉴于这些模型可能给出奇怪、错误和具有误导性的回答,建议在使用时要谨慎。然而,由于这些模型是仅有的几个可以针对你的数据进行微调的模型,因此它们仍然可用。截OpenAI 已宣布将于 2024 年提供 GPT-3.5 Turbo 和 GPT-4 的微调功能。截止 2023 年 11 月下旬,GPT-3.5 微调功能已完全开放,GPT-4 微调功能可通过申请权限开放。在经过 SFT 阶段后获得,该模型没有经过 RLHF 阶段,也可以通过 API 以 davinci-instruct-beta 的名称使用。

在 OpenAI Playground 中使用 GPT 模型

    OpenAI Playground 是⼀个基于 Web 的平台。你可以使用它直接测试 OpenAI 提供的语言模型,而无须编写代码。在 OpenAI Playground 上,你可以编写提示词,选择模型,并轻松查看模型生成的输出。要测试 OpenAI提供的各种 LLM 在特定任务上的表现,OpenAI Playground 是绝佳的途径。以下是访问 OpenAI Playground 的步骤。

  • 访问 OpenAI 主页,然后依次单击 Developers → Overview。
  • 如果你已经拥有⼀个账户但未登录,请单击屏幕右上方的 Log in。如果还没有 OpenAI 账户,那么你需要创建账户才能使用 Playground 和 OpenAI 的大部分功能。请注意,由于 Playground 和 API 是收费的,因此你在注册账户时需要提供支付方式。
  • 登录后,你将在网页的顶部看到加入 Playground 的链接。单击该链接,你应该会看到下图所示的内容。

    ChatGPT Plus 选项与使用 API 或 Playground 无关。如果你是 ChatGPT Plus 用户,那么仍需要支付费用才能使用 API 和 Playground。

图片名称
OpenAI Playground 补全模式下的界面

    OpenAI Playground 在 2023 年 11 月 7 日的 OpenAI 首届开发者大会后已更新版本。最新版本的界面与上图中的界面存在差异,请以最新版本为准。界面中的主要空白处用于输入消息。编写完消息后,单击 Submit 按钮以生成输出。在上图所示的示例中,我们编写消息“As Descartes said, I think therefore”(正如笛卡儿所说,我思故),然后单击 Submit 按钮。模型用“I am”(我在)补全了文本。每次单击 Submit 按钮时,OpenAI 都会收取相应的费用。就本例而言,成本约为 0.0002 美元。界面的底部和右侧有许多选项。我们从底部开始。在 Submit 按钮右侧的是撤销按钮(在图中标记为 A),用于删除最后生成的文本。在本例中,它将删除“I am”。接下来是重新生成按钮(在图中标记为 B),用于重新生成刚刚删除的文本。再往后是历史按钮(在图中标记为 C),它会给出过去30 天内的所有请求。请注意,⼀旦进⼊历史菜单,你就可以出于隐私原因轻松地删除请求。

    右侧的选项面板提供与界面和所选模型相关的各种设置。我们在此只解释其中的⼀些选项,后文会陆续介绍其他选项。右侧的第⼀个下拉列表是模式列表(在图中标记为 D)。可用的模式有聊天(默认选项)、补全和编辑。补全模式和编辑模式已被标记为遗留模式,现在已经消失。如图所示,语言模型在 Playground 的补全模式下努力补全用户的输入。下图展示了在聊天模式下使用 Playground 的示例。界面左侧是系统面板(在图中标记为 E)。在这里,你可以描述聊天系统的行为方式。比如,在下图中,我们要求它成为⼀个喜欢猫的有用助手。我们还要求它只谈论猫,并给出简短的回答。根据设置的这些参数所生成的对话显示在界面中央。如果想继续与系统对话,你可以单击 Add message(在图中标记为 F),输入消息,然后单击 Submit 按钮(在图中标记为 G)。还可以在右侧定义模型(在图中标记为 H),这⾥使用 GPT-4。请注意,并非所有模型在所有模式下都可用。比如,只有 GPT-4 和 GPT-3.5 Turbo 在聊天模式下可用。截止 2023 年 11 月下旬,OpenAI Playground 聊天模式可用的模型包括 gpt-3.5-turbo、gpt-3.5-turbo-0301、gpt-3.5-turbo-0613、gpt-3.5-turbo-1106、gpt-3.5-turbo-16k、gpt-3.5-turbo-16k-0613。

图片名称
OpenAI Playground 聊天模式下的界面

    Playground 还提供了编辑模式。在这种模式下,你提供⼀些文本(在图中标记为 I)和指令(在图中标记为 J),模型将尝试修改文本。在下图所示的例子中,我们给出了⼀段描述⼀个年轻男子要去旅行的文本。同时,我们指示模型将文本中的主人公更改为⼀位年长的女士。可
以看到,结果(在图中标记为 K)符合指令。如下图所示。

图片名称
OpenAI Playground 编辑模式下的界面

    在 Playground 界面的右侧、模式下拉列表下方的是模型下拉列表(在图中标记为 L)。正如你已经看到的,这是你选择 LLM 的地方。该下拉列表中可用的模型取决于所选的模式。在模型下拉列表下方的是参数,例如温度(在图中标记为 M),它定义模型的行为。我们不会在此详细讨论这些参数。在详细讨论不同模型的工作原理时,我们会探索这里的大部分参数。界面顶部有⼀个加载预设项的下拉列表(在图中标记为 N)和 4 个按钮。在上图中,我们使用 LLM 来补全句子,但是通过使用适当的提示词,我们也可以让模型执行特定的任务。下图显示了模型可以执行的常见任务。

图片名称
模型可以执行的常见任务

    应注意,预设项不仅定义了提示词,还定义了界面右侧的⼀些选项。如果选择“Grammatical Standard English”(语法标准的英语),那么你将在主窗口中看到下图所示的提示词。

图片名称
预设项 Grammatical Standard English 的提示词示例

    如果单击 Submit 按钮,那么你将得到以下结果:“She did not go to the market”(她没有去市场)。虽然可以从下拉列表中的提示词入手,但是你应该修改它们以使其适合你的问题。OpenAI 为不同的任务提供了完整的示例列表,详见 OpenAI 网站的 Examples 页面。在上图中的“Load a preset”下拉列表旁边的是 Save 按钮(在图中标记为O)。想象⼀下,你已经为任务定义了有价值的提示词,也选择了模型及其参数,并且希望以后在 Playground 中轻松复用它们。Save 按钮的功能是把Playground 的当前状态保存为⼀个预设状态。你可以为预设状态命名并添加描述信息。⼀旦保存,你的预设状态就将出现在“Load a preset”下拉列表中。Save 按钮右侧的是 View code 按钮(在图中标记为 P)。它提供了在 Playground 中直接运行测试代码的脚本。你可以请求Python、Node.js 或cURL 代码,以便在 Linux 终端中直接与 OpenAI 远程服务器交互。如果用Python 代码给出提示词“As Descartes said, I think therefore”,那么我们将得到以下结果:

import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.Completion.create(
	model="text-davinci-003",
	prompt="As Descartes said, I think therefore",
	temperature=0.7,
	max_tokens=3,
	top_p=1,
	frequency_penalty=0,
	presence_penalty=0,
)

    现在你应该了解了如何在没有编码的情况下使用 Playground 来测试 OpenAI 的语言模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1858321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React尚硅谷115-126(setState、Hooks、Fragment、context、组件优化、renderprops

122,context 只能用value传,可以传对象,字符串 一种组件间通信方式, 常用于【祖组件】与【后代组件】间通信 使用: 创建Context容器对象: const XxxContext React.createContext() 渲染子组时,外面包…

MIT6.s081 2021 Lab Utilities

Boot xv6 按照示例切换到 util 分支后,看到目录下包含 Makefile 文件,执行 make qemu 即可。 sleep 思路 借助系统调用 sleep 实现一个命令行程序,关键是要找到封装了系统调用的 C 函数的位置,根据提示: … user/u…

软件测试--花了我一周时间整理各种测试模板

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)-CSDN博客跳槽涨薪的朋友们有福了,今天给大家推荐一个软件测试面试的刷题小程序。https://blog.c…

北邮《计算机网络》MAC子层笔记

文章目录 缩写复习MAC层所在层次动态分配信道算法们的简要介绍信道的五条基本假设多路访问的协议(理论上的协议)aloha协议CSMA协议其他冲突避免协议无线局域网协议 ,MACA 以太网协议802.3(实际协议,刚刚是理论&#xf…

光猫BOB 功率调测误差分析与校验指南

DDM(Digital Diagnostic Monitoring)数字诊断监控技术,是光模块中使用的技术,以便用户能够监控光模块的实时参数。这些参数包括工作温度、工作电压、工作电流、发射和接收光功率等,还可以显示模块的常规波长、速率、传…

在Vue表单中设置缺省值

有个需求,在新增记录的时候,打开新增页面,员工姓名处获取到当前登录用户的用户名,并将其设置为缺省值。 /** 新增按钮操作 */handleAdd() {this.reset();this.open true;// this.form.employeeName this.$store.state.user.name…

计算机网络 DHCP以及防护

一、理论知识 1.DHCP:用于在网络中自动分配IP地址及其他网络参数(如DNS、默认网关)给客户端设备。 2.VLAN:逻辑上的局域网分段,用于隔离和管理不同的网络流量。 3.DHCP地址池:为每个VLAN配置不同的DHCP地…

【语义分割系列】基于cityscape的DDRNet算法

基于cityscape的DDRNet算法 前言 DDRNet是专门为实时语义分割设计的高效主干。该模型由两个深度分支组成,在这两个分支之间执行多次双边融合,并且还设计了一个新的上下文信息抽取器,名为深度聚合金字塔池模块(DAPPM),用于扩大有效的接受域,并基于低分辨率特征映射融合…

QT在VS环境中使用,控件显示中文乱码解决方法

首先来看乱码显示的效果如下: 上图左侧显示内容为中文,控件对应代码如下: QLabel* UserNameLabel new QLabel(QString("用户名:")); QLabel* NameLabel new QLabel(tr("姓名:"));下面我们对QL…

【Spine学习15】变换约束

变换约束:能让一个骨骼受另一个骨骼的变化影响。 1、选择m创建一个变换约束: 2、点击这个约束, 将移动数值拉的越满,m越接近s骨骼 当约束为0也就是默认的时候,m骨骼将不会受影响,变换约束可有可无。 tips…

物联网系统运维——实验备份与恢复,数据镜像软件DRBD介绍,DRBD的安装和应用,extundelete的安装和应用(重点),环境准备,配置设置

一.数据备份 1.数据备份的重要性 备份是系统中需要考虑的最重要的事项,虽然这在系统的整个规划,开发和测试过程中甚至占不到1%,看似不太重要且默默无闻的工作只有到恢复的时候才能真正体现出其重要性,任何数据的丢失与数据宕机,都是不可以被接收的。 2.数据备份策…

数据结构与算法笔记:高级篇 - 最短路径:地图软件是如何计算出最优出行路径的?

概述 基础篇的时候,我们学习了图的两种搜索算法,深度优先搜索和广度优先搜索。这两种算法主要是针对无权图的搜索算法。针对有权图,也就是图中的每一条变都有一个权重,我们该如何计算两点之间的最短路径(经过的边的权…

ViT:3 Compact Architecture

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)则…

VMware共享文件夹设置

1、VMWare设置 1)虚拟机 -> 设置 2)点击 选项 -> 共享文件夹 -> 设置为 总是启用 -> 并 添加一个本地共享文件夹。设置完毕,点击 确定。 2、创建共享文件夹、挂载 1)打开终端,在mnt/目录下创建一个名为…

原Veritas(华睿泰)中国研发中心敏捷教练、项目集经理郑鹤琳受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 原Veritas(华睿泰中国)中国研发中心敏捷教练、项目集经理郑鹤琳女士受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“敏捷项目管理-知行合一”。大会将于6月29-30日在北京举办,敬请关注…

So:万法皆空,唯因果不空

在《long long ago》中,我们说到long一词中藏着因果关系,long通汉字“以”字。long是生育过程中,婴儿已经呱呱坠地,但尚未剪掉脐带的形象。 下面我们来解剖另一个英语单词:so。 一、so:万法皆空&#xff…

前端vue-cli相关知识与搭建过程(项目创建,组件路由)very 详细

一.关于vue-cli 1.什么是vue Vue (读音 /vju ː /,类似于 view) 是一套用于构建用户界面的渐进式框架。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。 Vue.js 是前端的主流框架之一,和 Angular.js…

【大数据】Hadoop学习笔记

基本概念 Hadoop组成 HDFS: Hadoop分布式文件存储系统, 在Haddop中处于底层/核心地位YARN: 分布式通用的集群资源管理系统和任务调度平台, 支撑各种计算引擎执行MapReduce: 第一代分布式计算引擎, 但因为部分原因, 许多企业都不直接使用MapReduce, 但许多底层软件仍然在使用Ma…

v-jstools插件 - 自动补环境

一、为啥要补环境? 我们每次逆向扣完代码存放在 nodejs 上是运行不出结果的,因为缺少浏览器环境特有的一些 window/document/navigator/localstorage 等参数,所以我们需要把这些缺少的浏览器环境补上,让这份js代码在本地nodejs环…

无人机巡检小羊仿真

详细视频地址 仿真效果 可视化三维仿真 gazebo物理仿真 px4 飞控仿真 仿qgc简易地面站 详细视频地址