OpenAI API及ChatGPT系列教程1:快速入门
系列文章目录:
- OpenAI API及ChatGPT系列教程1:快速入门
- OpenAI API及ChatGPT系列教程2:使用手册
- OpenAI API及ChatGPT系列教程3:API参考(Python)
本文目录:
- 系列文章目录:
- 前言:
- 一、OpenAI API 介绍
- 1. 概述:
- 2. 关键字:
- 二、快速入门:
- 1. 介绍:
- 2. 从一个简单指令开始:
- 3. 继续添加提示词:
- 3. 调整设置:
- 3. 用代码来实现(Python):
- 三、Python库:
- 四、模型(Modesl):
- GPT-4:
- GPT-3.5:
- DALL.E:
- Whisper:
- Embeddings:
- Moderation:
- GPT-3:
- 四、总结:
前言:
本系列档的主要内容是官方的翻译,同时加入了更多内容,旨在让读者更轻松地上手ChatGPT。在这些添加的内容中,我会提供更多的例子、技巧和提示,以帮助读者更好地理解 ChatGPT 的使用。此外,我们还会讨论 ChatGPT 的历史和发展,以及它在自然语言处理和人工智能领域的应用。通过这些信息,您可以更全面地了解 ChatGPT 的优势和潜力,并更好地应用 ChatGPT 来解决自己的问题。祝您阅读愉快!
一、OpenAI API 介绍
1. 概述:
首先我们得解释一下OpenAI API和ChatGPT之间的关系。好多朋友都不太分得清这两个概念。
ChatGPT 是基于OpenAI(公司)的 GPT-4 模型开发的一款聊天式人工智能。而OpenAI API 是一种开放的应用程序编程接口,通过这个接口,开发者可以将 OpenAI 开发的人工智能技术应用到各种软件中。
So,这篇文章应该叫做“OpenAI API教程”,但是让我们来面对现实,谁会读那个呢?所以加上”ChatGPT“后,恩,高端大气上档次~
下面是官网文档对OpenAI API的介绍:
OpenAI API 几乎可以应用于任何涉及理解或生成自然语言、代码或图像的任务。我们提供一系列具有不同算力级别的模型,适用于不同的任务,并且能够微调您自己的自定义模型。这些模型可用于从内容生成到语义搜索和分类的所有领域。
2. 关键字:
- 提示词(Prompts):
当您想让ChatGPT执行某些操作时,您需要给它一些指示或示例。这就是我们所说的“提示词”。您可以将其用于几乎任何事情 - 不仅仅是像其他一些 NLP 服务那样的一个特定任务。无论您需要帮助生成代码、编写摘要,甚至只是聊天,ChatGPT都可以为您提供帮助。
(随着人工智能技术的不断发展,在自然语言处理、计算机视觉和语音识别等领域,人们越来越多地使用人工智能模型来处理各种任务。为了让这些模型能够更好地理解和生成自然语言、代码或图像等内容,提示词工程师(Prompt Engineer)这一新兴职位应运而生。
提示词工程师(Prompt Engineer)是设计、开发并优化提示词(Prompt),以便人工智能模型能够更好地理解和生成自然语言、代码或图像等内容。提示词工程师需要对自然语言处理(NLP)和机器学习有深入的理解,能够将业务需求转化为高效的提示词,并持续改进和优化这些提示词,以提高人工智能模型的性能和效果。
- 代币(Tokens):
官方文档里面提到的是 Tokens,对于开发者来说这个概念很常见,开发者管这个叫“令牌”。但是在这里,它代表着对输入内容的分割。按照翻译,我们应该称之为“标记”,但是在 OpenAPI 中,它也是一个计费标准,收费是根据 Tokens 的数量来计算的。因此,我们也可以把它翻译成“代币”。总之,这个词很容易引起混淆,所以后文都将它称为”标记“。您知道它是什么意思就行了。
我们的模型通过将文本分解为称为标记的小块,来理解和处理文本。这些标记可以是单词或字符块。例如,“hamburger”这个词被分成了“ ham”,“ bur”和“ ger”三个标记,而像“pear”这样的短而常见的单词是一个标记。许多标记以空格开头,例如“ hello”和“ bye”。
我们可以处理的标记数量取决于您提供的文本量。一般来说,英文文本的一个标记大约是4个字符或0.75个单词。根据统计数据,750个单词平均等于1000个标记,而一个中文字符平均等于1.12个标记。要记住的一个限制是,您的文本提示和生成的完成组合必须不超过模型的最大上下文长度(对于大多数模型,这是2048个标记,或大约1500个单词,或大约1800个中文字符)。
- 模型(Models):
我们通常说的ChatGPT其实是OpenAPI其中的一种模型。而OpenAPI是由一系列模型支撑的,这些模型的能力不同,使用费用也不同。 GPT-4是最新和最强大的模型。 GPT-3.5-Turbo是ChatGPT的动力模型,针对对话格式进行了优化。
二、快速入门:
OpenAI已经训练了先进的语言模型,非常擅长理解和生成文本。我们的API提供对这些模型的访问,并可用于解决几乎涉及语言处理的任何任务。
在这个快速入门教程中,您将构建一个简单的示例应用程序。在此过程中,您将学习使用API解决任何问题的关键概念和技术,包括:
- 内容生成(Content generation)
- 摘要(Summarization)
- 分类、分类和情感分析(Classification, categorization, and sentiment analysis)
- 数据提取(Data extraction)
- 翻译(Translation)
- 等等等等!
1. 介绍:
补全(Completions)端点是OpenAI API的核心,提供了一个非常灵活且强大的简单接口。你所需要做的就是给它一些文本作为提示(Prompt),API将为你提供一个完成(Completion),试图匹配你提供的任何指令或上下文。
举例:
提示:
为冰淇淋店写一个标语。
补全:
每勺冰激凌都带着微笑!
每勺冰激凌都带着微笑!
可以将其视为非常高级的自动完成 - 模型处理您的文本提示并尝试预测最有可能出现的内容。
2. 从一个简单指令开始:
现在你想给你的宠物取名。从零开始想出名字是很困难的!
首先,你需要一个明确的提示,告诉模型你想要什么。让我们从一条指令开始:
提示:
给马取一个名字。
补全:
闪电
还不错!现在,试着让你的指示更具体。
提示:
给一匹黑马取一个名字。
补全:
闪电
如上所见,将一个简单的形容词添加到提示中会改变所得到的补全结果。设计提示词本质上就是如何对模型进行“编程”。
3. 继续添加提示词:
让我们试着让你的指令更复杂:
提示:
给马取三个名字,要求类似超级英雄的名字。
补全:
- 超级马 (Chaoji Ma)
- 勇敢马 (Yonggan Ma)
- 英雄马 (Yingxiong Ma)
这个结果不完全符合我们的要求。让我们看看能否得出一些更相关的建议。
有时候不仅仅是告诉模型你想要什么很有用,展示它也很有用。在提示中包含示例可以帮助传达模式或小细节。试一试并加入几个示例,看看效果如何!
提示:
给马取三个名字,要求类似超级英雄的名字。动物:猫
名称:萨伦猫侠(Saren Catman)神秘猫女(Mystique Catwoman)超能猫斯特拉(Supercat Stella)动物:狗
名称:钢牙 (Steel Fang) 闪电犬 (Lightning Hound) 狼蜜蜂 (Wolf Bee)动物:马
名称:
补全:
- 雷霆闪电马 (Thunderbolt)
- 烈焰战马 (Inferno)
- 钢铁蹄子马 (Ironhoof)
这就很不错了!可以看到,为给定输入添加输出示例后,是有助于模型提供我们想要的输出。
3. 调整设置:
提示词并不是您可以使用的唯一工具。您还可以通过调整相关设置来控制补全输出。最重要的设置之一称为热度(temperature)。
您可能已经注意到,如果您在上面的示例中多次提交相同的提示,模型将始终返回相同或非常相似的补全。这是因为您的热度设置为0。
如果将热度设置为1,重新提交几次相同的提示词。会发现,当热度高于 0 时,每次提交相同的提示会导致不同的完成。
请记住,模型预测哪个文本最有可能跟在它前面的文本之后。热度是一个介于 0 和 1 之间的值,基本上可以让您控制模型在进行这些预测时的置信度。降低热度意味着它将承担更少的风险,并且补全将更加准确和确定。升高热度将导致更多样化的补全。
对于这个宠物昵称生成器,您可能希望能够生成很多名字创意。0.6 的适中热度应该是合适的值。
3. 用代码来实现(Python):
- 首先下载示例代码:
git clone https://github.com/openai/openai-quickstart-python.git
- 添加API密钥:
- 运行应用:
python -m venv venv
. venv/bin/activate
pip install -r requirements.txt
flask run
- 在浏览器中打开http://localhost:5000
三、Python库:
$ pip install openai
import os
import openai# Load your API key from an environment variable or secret management service
openai.api_key = os.getenv("OPENAI_API_KEY")response = openai.Completion.create(model="text-davinci-003", prompt="Say this is a test", temperature=0, max_tokens=7)
四、模型(Modesl):
OpenAI API 由具有不同功能和价位的多种模型提供支持。
模型 | 描述 |
---|---|
GPT-4 | 一组在 GPT-3.5 上改进的模型,可以理解并生成自然语言或代码 |
GPT-3.5 | 一组在 GPT-3 上改进的模型,可以理解并生成自然语言或代码 |
DALL.E | 可以在给定自然语言提示的情况下生成和编辑图像的模型 |
Whisper | 一种可以将音频转换为文本的模型 |
Embeddings | 一组可以将文本转换为数字形式的模型 |
Moderation | 可以检测文本是否敏感或不安全的微调模型 |
GPT-3 | 一组可以理解和生成自然语言的模型 |
模型端点兼容性:
端点 | 模型 |
---|---|
/v1/chat/completions | gpt-4, gpt-4-0314, gpt-4-32k, gpt-4-32k-0314, gpt-3.5-turbo, gpt-3.5-turbo-0301 |
/v1/completions | text-davinci-003, text-davinci-002, text-curie-001, text-babbage-001, text-ada-001 |
/v1/edits | text-davinci-edit-001, code-davinci-edit-001 |
/v1/audio/transcriptions | whisper-1 |
/v1/audio/translations | whisper-1 |
/v1/fine-tunes | davinci, curie, babbage, ada |
/v1/embeddings | text-embedding-ada-002, text-search-ada-doc-001 |
/v1/moderations | text-moderation-stable, text-moderation-latest |
GPT-4:
GPT-4 是一个大型多模态模型(现在能接受文本输入并给出文本输出,将来会出现图像输入),它可以比以前的任何模型更准确地解决难题。GPT-4 针对聊天进行了优化,但也适用于使用聊天完成 API 的传统补全任务。
对于许多基本任务,GPT-4 和 GPT-3.5 模型之间的差异并不显着。然而,在更复杂的推理情况下,GPT-4 比我们之前的任何模型都更有力。
GPT-3.5:
GPT-3.5 模型可以理解并生成自然语言或代码。我们在 GPT-3.5 系列中功能最强大且最具成本效益的模型**gpt-3.5-turbo
**已针对聊天进行了优化,但也适用于传统的补全任务。
我们建议使用**gpt-3.5-turbo
**模型,因为它的成本较低。
DALL.E:
DALL·E 是一个人工智能系统,可以根据自然语言的描述创建逼真的图像。目前支持在输入提示词的情况下,创建具有特定大小的新图像、编辑现有图像或创建用户提供的图像的变体的能力。
当前 DALL·E 模型是 DALL·E 的第 2 次迭代,具有比原始模型更逼真、更准确且分辨率高 4 倍的图像。
Whisper:
Whisper 是一种通用的语音识别模型。它在不同音频的大型数据集上进行训练,也是一个多任务模型,可以执行多语言语音识别以及语音翻译和语言识别。Whisper v2-large 模型目前可通过API 使用**whisper-1
**模型名称获得。
目前, Whisper 的开源版本与通过API 提供的版本之间没有区别。然而,通过API提供了一个优化的推理过程,这使得通过我们的 API 运行 Whisper 比通过其他方式运行要快得多。
Embeddings:
嵌入(Embedding)是文本的数字表示,可用于衡量两段文本之间的相关性。第二代Embedding模型**text-embedding-ada-002
**旨在以一小部分成本取代之前的 16 种第一代嵌入模型。嵌入可用于搜索、聚类、推荐、异常检测和分类任务。
Moderation:
审核模型(Moderation)旨在检查内容是否符合 OpenAI 的使用政策。这些模型提供了查找以下类别内容的分类功能:仇恨、仇恨/威胁、自残、性、性/未成年人、暴力和暴力/图片。
审核模型接受任意大小的输入,该输入会自动分解以修复模型特定的上下文窗口。
GPT-3:
GPT-3 模型可以理解和生成自然语言。这些模型被更强大的 GPT-3.5 代模型所取代。但是,原始 GPT-3 基本模型(davinci
、curie
、ada
和babbage
)是当前唯一可用于微调的模型。
四、总结:
以上就是本系列文章的第一部分,介绍了如何使用OpenAI API和ChatGPT系列来生成文本。其中包括如何使用提示词和示例来控制模型的输出,以及如何调整设置来影响模型的置信度和多样性。此外,还提供了Python代码示例和各种模型的描述,包括GPT-4、GPT-3.5、DALL.E、Whisper、Embeddings、Moderation和GPT-3。
OpenAI API及ChatGPT系列教程1:快速入门相关推荐
- 2021年最新最全Flink系列教程_Flink快速入门(概述,安装部署)(一)(JianYi收藏)
文章目录 引言 相关教程直通车: day01_Flink概述.安装部署和入门案例 今日目标 Flink概述 什么是批处理和流处理 为什么需要流计算 Flink的发展史 Flink的官方介绍 Flink ...
- 涂鸦蓝牙SDK开发系列教程——1.快速入门
本系列课程将介绍如何使用 涂鸦蓝牙模组及其 SDK 进行产品开发,帮助开发者更快掌握 涂鸦蓝牙模组.涂鸦蓝牙 SDK.涂鸦 IoT 平台.涂鸦三明治开发套件.涂鸦云模组烧录授权平台 等开发工具的使用方 ...
- 涂鸦Zigbee SDK开发系列教程——3.快速入门
在涂鸦 IoT 平台上创建产品完成且搭建好开发环境后就可以进行应用开发了.本章节将会通过对提供的 demo 进行简单修改,带你快速体验如何通过编写涂鸦模组固件实现对产品的智能化开发. demo 功能介 ...
- Selenium-Webdriver系列教程(1)————快速开始
Selenium-Webdriver系列教程(一)----快速开始 Selenium 1.x时代已经远去,它理应躺在历史的角落里,靠着壁炉烤着火,抽着旱烟,在袅袅的升起的青烟中回忆那曾经属于自己的美好 ...
- Selenium-Webdriver系列教程(一)————快速开始
Selenium-Webdriver系列教程(一)----快速开始 Selenium 1.x时代已经远去,它理应躺在历史的角落里,靠着壁炉烤着火,抽着旱烟,在袅袅的升起的青烟中回忆那曾经属于自己的美好 ...
- 【spring authorization server系列教程】(一)入门系列,spring authorization server简介。快速构建一个授权服务器(基于最新版本0.3.0)
系列文章目录 [spring authorization server系列教程](一)入门系列,快速构建一个授权服务器 文章目录 系列文章目录 前言 一.目前已实现的功能 二.入门,一步一步快速开始构 ...
- Tomcat 教程之快速入门
Tomcat 教程之快速入门 版本说明 本文使用 Tomcat 版本为 Tomcat 8.5.24. Tomcat 8.5 要求 JDK 版本为 1.7 以上. 简介 Tomcat 是什么 Tomca ...
- tensorflow2.0教程- Keras 快速入门
tensorflow2.0教程-tensorflow.keras 快速入门 Tensorflow 2.0 教程持续更新: https://blog.csdn.net/qq_31456593/artic ...
- 嗨CE系列教程全套(入门,进阶,高阶)游戏驱动反调试
嗨CE系列教程全套(入门,进阶,高阶)游戏驱动反调试等 1.入门教程5课 1.如何修改游戏 2.快速找到基址和指针 3.通过一个地址快速找到其他地址 4.制作一个简易修改器 5.一些重要的小技巧和理论 ...
最新文章
- python自学教程读书导图-自学Python第一天:起点读书自动领取经验值(附思路讲解)...
- Leetcode 189. 旋转数组 (每日一题 20210909)
- git maven 一键部署_Jenkins实现一键部署maven项目
- 若依微服务版前端怎样在接口返回500时去掉一直弹窗提示服务未找到
- 《程序是怎么跑起来的》第六章
- 数据结构——交换左右子树
- ISE应用入门的一些问题
- Python_60之迭代器模块
- 华为手机解锁码计算工具_华为高通全系列手机解锁工具
- 计算机 随机分组的方法,临床试验中的随机分组方法.pdf
- mysql数据库有dbo吗,sql server所有表的所有者恢复为dbo
- [转]二十四式太极拳攻防含义拆解
- extern关键字作用
- [论文阅读笔记17]MAT: Motion-Aware Multi-Object Tracking
- 蒙德里安森林算法_蒙德里安的格子画教案
- 网页小图标和文字混排时如何对齐基准线
- 程序员到底应该学什么?!
- 基于单片机的血压计c语言,基于单片机血压计的设计
- 883. 三维形体投影面积C++
- 洛谷P2585[ZJOI2006]三色二叉树(树形DP)
热门文章
- java ee框架技术进阶式教程_《JavaEE框架技术进阶式教程》新版任务式教案
- vue中的this.$router.replace()和.push()和.go()的区别解析
- POI将网络图片添加到excel
- Superl-url:一款开源关键词URL采集工具
- html怎么画正方形的斜线,html – 斜线的样式
- word文档删除空白页
- 无线攻击 --aircrack-ng套件之一:Airbase-ng(攻击客户端多用途工具)
- Verilog的时序问题和SystemVerilog TestBench激励时序
- android sdk引入 微信分享_android 调用本地微信自定义多图分享朋友圈,可放在share sdk中一起使用...
- 苹果电池测试软件原理,苹果手机电池检测软件有哪些?