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

文章目录

    • 基本概念
    • 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.rhkb.cn/news/359518.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何将一个web端程序打包成一个pc端程序(exe文件)?

如何将一个Web端程序打包成一个PC端程序,例如一个可执行的EXE文件,是许多开发者常见的需求。下面将详细解释如何使用Nativefier工具将Web端程序打包成PC端程序的具体步骤。 目录 下载并安装Node.js验证Node.js和npm的安装安装Nativefier使用Nativefier打…

鸿蒙Harmony角落里的知识:从ECMA规范到ArkTS接口(一)

前言: 在深入理解和使用ArkTS中的数组操作之前,我们有必要先了解ECMAScript(ECMA)规范中的规定。ECMA规范是JavaScript语言的官方标准,而ArkTS作为JavaScript的超集,也遵守了这些规定。本系列文章旨在探讨…

学期结束如何发布期末成绩?

当期末的试卷最后一张被收起,当教室里的喧嚣逐渐沉寂,学生们的心中充满了对成绩的期待与忐忑。期末成绩,关乎着学生的心情,更关系到他们的未来学习动力。那么,如何在保护学生隐私的同时,高效地公布成绩呢&a…

文件怎么加密?电脑文件加密,分享5个实用方法

通常情况下,人们对手机数据的保护比对电脑数据更为重视。许多人使用指纹和密码来防止他人窥视聊天记录和照片。然而,电脑上的数据却常常被忽视。大多数用户仅设置了电脑登录密码,认为这样就足以保护电脑和其中的文件。然而如果你也是这样认为…

chatglm系列知识

一、目录 chatglm 是什么语言模型与transformer decoder 的区别解释prefix LM与Cause LMchatglm(prefix LM)与decoder-only LM 核心区别glm 架构chatglm 预训练方式chatglm 微调chatglm与chatglm2、chatglm3的区别chatglm 激活函数采用gelu, 为什么chat…

办理北京公司注册地址异常变更要求和流程

在北京注册公司时选择注册地址是非常重要的一环,注册地址不仅体现在营业执照上,在网上也有公示信息,一般选用的是商用地址和商住两用地址,在公司经营过程中,因为经营需要变更注册地址,也要依法变更&#xf…

详解Spring AOP(一)

目录 1. AOP概述 2.Spring AOP快速入门 2.1引入AOP依赖 2.2编写AOP程序 3.Spring AOP核心概念 3.1切点(PointCut) 3.2连接点(Join Point) 3.3通知(Advice) 3.4切面(Aspect) …

时间?空间?复杂度??

1.什么是时间复杂度和空间复杂度? 1.1算法效率 算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称为空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度,而空…

CentOS 8.5 - 配置ssh的免密登录

文章目录 生成ssh密钥公钥内容放入服务器 生成ssh密钥 在本地主机安装 ssh工具,并生成公钥、私钥。 # 命令行输入 ssh-keygen -r rsa# 会在当前用户的家目录下生成一个.ssh目录公钥内容放入服务器 将上一步生成的id_rsa.pub公钥的内容复制到远程服务器 # 编辑文…

Day17--654.最大二叉树+617.合并二叉树+700.二叉搜索树中的搜索+ 98.验证二叉搜索树

一、654.最大二叉树 题目链接:https://leetcode.cn/problems/maximum-binary-tree/ 文章讲解:https://programmercarl.com/0654.%E6%9C%80%E5%A4%A7%E4%BA%8C%E5%8F%89%E6%A0%91.html 视频讲解:https://www.bilibili.com/video/BV1MG411G7ox…

SpringMVC系列四: Rest-优雅的url请求风格

Rest请求 💞Rest基本介绍💞Rest风格的url-完成增删改查需求说明代码实现HiddenHttpMethodFilter机制注意事项和细节 💞课后作业 上一讲, 我们学习的是SpringMVC系列三: Postman(接口测试工具) 现在打开springmvc项目 💞Rest基本介…

Part 5.2 KMP

KMP 算法可以用来解决模式串匹配问题。 【模板】KMP 题目描述 给出两个字符串 s 1 s_1 s1​ 和 s 2 s_2 s2​,若 s 1 s_1 s1​ 的区间 [ l , r ] [l, r] [l,r] 子串与 s 2 s_2 s2​ 完全相同,则称 s 2 s_2 s2​ 在 s 1 s_1 s1​ 中出现了&…

「动态规划」如何求最长递增子序列的长度?

300. 最长递增子序列https://leetcode.cn/problems/longest-increasing-subsequence/description/ 给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其…

使用Apache Flink实现实时数据同步与清洗:MySQL和Oracle到目标MySQL的ETL流程

使用Apache Flink实现实时数据同步与清洗:MySQL和Oracle到目标MySQL的ETL流程 实现数据同步的ETL(抽取、转换、加载)过程通常涉及从源系统(如数据库、消息队列或文件)中抽取数据,进行必要的转换&#xff0…

2024最新版Node.js下载安装及环境配置教程(非常详细)

一、进入官网地址下载安装包 官网:Node.js — Run JavaScript Everywhere 其他版本下载:Node.js — Download Node.js (nodejs.org) 选择对应你系统的Node.js版本 二、安装程序 (1)下载完成后,双击安装包&#xf…

Go的GUI Fyne开发环境搭建—Windows 11

安装go 到官网下载安装go安装包 https://go.dev/learn/ 通过如下命令检验安装是否成功,出现版本号则安装成功 go version安装国内go依赖包代理 go env -w GOPROXYhttps://goproxy.cn安装gcc编译器 直接用官网提供的安装建议第二条,到这个地址进行下载…

二刷算法训练营Day41 (Day40休息) | 动态规划(3/17)

目录 详细布置: 1. 背包问题理论基础 1.1 01背包 2. 46. 携带研究材料(第六期模拟笔试) 一维dp数组(滚动数组) 3. 416. 分割等和子集 详细布置: 1. 背包问题理论基础 但说实话,背包九讲…

C#开发-集合使用和技巧(六)特殊转换方法SelectMany的介绍和用法

C#开发-集合使用和技巧(六) 特殊转换方法SelectMany的介绍和用法 介绍使用示例Select与SelectMany对比特殊情况 介绍 SelectMany 方法在C#中用于将集合中的元素转换为其他类型的集合,并将这些集合扁平化为一个单一的序列。它是LINQ的一部分…

Unity URP下通过相机让部分Render不受后处理渲染

我们有时候不想某些对象受到后处理影响,找到了这样一个决绝办法,通过增加一个Overlay相机只照射这个模型来实现,下面看看如何实现。 第一步 首先我们拖一个测试场景,有如下一些元素 一个盒子,以后后处理&#xff0c…

Python武器库开发-武器库篇之ThinkPHP6 多语言本地文件包含漏洞(六十七)

Python武器库开发-武器库篇之ThinkPHP6 多语言本地文件包含漏洞(六十七) 漏洞环境搭建 这里我们使用Kali虚拟机安装docker并搭建vulhub靶场来进行ThinkPHP漏洞环境的安装,我们进入 ThinkPHP漏洞环境,可以 cd ThinkPHP&#xff0…