ChatGPT官方文档翻译2-快速开始
快速开始
OpenAI已经训练了先进的语言模型,非常擅长理解和生成文本。我们的API提供对这些模型的访问,并可用于解决几乎涉及处理语言的任何任务。
在这个快速入门教程中,您将构建一个简单的示例应用程序。在此过程中,您将学习到使用API执行任何任务所必需的关键概念和技术,包括:
- 内容生成(Content generation)
- 摘要(Summarization)
- 分类、归类和情感分析(Classification, categorization, and sentiment analysis)
- 数据提取(Data extraction)
- 翻译(Translation)
- 还有更多!
介绍
完成端点(completions endpoint)是我们API的核心,提供一个非常灵活和强大的简单接口。您输入一些文本作为提示,API将返回一个文本补全,试图匹配您给出的任何指令或上下文。例如:
你可以把它想象成一个非常先进的自动完成功能——模型会处理你的文本提示,并尝试预测最有可能出现的下一步。
从一个指令开始
想象一下你想创建一个宠物名字生成器。从零开始想出名字很难!
首先,您需要一个明确表达您想要的提示词。让我们从一条指令开始。提交这个提示词以生成您的第一个完成结果。
给一匹马起个名字
(点击官网文档里的绿色按钮,会生成结果https://platform.openai.com/docs/quickstart/start-with-an-instruction)
不错!现在,尝试使您的说明更具体。
给一匹黑马起个名字
(点击官网文档里的绿色按钮,会生成结果https://platform.openai.com/docs/quickstart/start-with-an-instruction)
正如您所看到的,将一个简单的形容词添加到我们的提示中会改变生成完成结果。 设计您的提示词,本质上就是如何“编程”模型。
添加一些示例
制作良好的指令,对于获得优质的结果非常重要,但有时这还不够。让我们尝试使您的指示更加复杂。
为一只超级英雄马建议三个名字。 (点击官网文档里的绿色按钮,会生成结果https://platform.openai.com/docs/quickstart/start-with-an-instruction)
这个结果并不完全符合我们的要求。这些名称相当通用,似乎模型没有理解我们指令中马的部分。让我们看看是否可以让它提出更相关的建议。
在许多情况下,在提示词中添加你想要的东西,会对生成答案有帮助。 将示例添加到提示中,可以帮助传达模式或细微差别。尝试提交包含一些示例的此提示。
动物:猫
名称:尖爪队长,毛球特工,超级猫咪
动物:狗
名称:保护者拉夫,奇迹犬,吠叫大师巴克斯
动物:马
名称:
ChatGPT生成的名字:Super Stallion, Mighty Mare, The Magnificent Equine(超级种马、强大的母马、壮丽的马)
添加期望的输出示例,有助于模型生成我们想要的名字。
调整您的设置
设计提示词并不是可以使用的唯一工具。你还可以通过调整设置来控制结果。其中最重要的设置之一称为温度(temperature)。
你可能已经注意到,如果你在上面的例子中多次提交相同的提示,模型总是返回相同或非常相似的结果。这是因为你的温度被设置为0。
尝试将温度设置为 1, 重新提交几次相同的提示词。
看看发生了什么?当温度高于 0 时,每次提交相同的提示词,会导致不同的完成。
请记住,这个模型是:预测哪个文本最有可能跟在它前面的文本之后。 温度是一个介于 0 和 1 之间的值,基本上可以让您控制模型在进行这些预测时的置信度。 降低温度值,可以提高预测准确性和确定性;而增加温度值,则会产生更多样化的结果。
深度探究:了解标记(tokens)和概率(probabilities)
这一部分在官网上被折叠,需要单击才能打开页面。
(译者注释:这一部分非常好玩,在官网上有互动的功能,链接: https://platform.openai.com/docs/quickstart/adjust-your-settings )
我们的模型通过将文本分解为更小的单元(称为标记tokens)来处理文本。标记可以是单词、单词块或单个字符。编辑下面的文本以查看它是如何被标记化的。
像“猫cat”这样的常用词是单个标记(token),而不太常用的词通常被分解成多个标记。例如,“Butterscotch”翻译成四个标记:“But”、“ters”、“cot”和“ch”。许多标记以空格开头,例如“hello”和“bye”。
给定一些文本,该模型确定下一个最有可能出现的标记。例如,文本“Horses are my favorite”最有可能跟随标记“animal”。
这就是 温度 发挥作用的地方。如果您将此提示设置为 0 并提交 4 次,则模型始终会返回“动物animal”,因为它具有最高的概率。如果您增加温度,它将更冒险,并考虑概率较低的标记。
对于需要明确输出的任务,最好设置较低的温度;对于需要多样性或创造力的任务,或者想要为最终用户或人类专家生成几个变化时,较高的温度可能会有用。
对于您的宠物名字生成器,您可能希望能够生成许多名称想法。0.6 的适度温度应该效果良好。
创建您自己的应用程序
有NODE.JS 和 Python(flask)2个版本。 这里只以Python为例。
现在你已经找到了一个好的提示和设置,准备构建你的宠物名字生成器!我们编写了一些代码来帮助你入门 – 按照下面的说明下载代码并运行应用程序。
安装
如果您没有安装 Python,请从此处安装。然后通过克隆此存储库下载代码。
git clone https://github.com/openai/openai-quickstart-python.git
如果您不想使用 git,您也可以使用此 zip 文件下载代码。
Add your API key 添加您的 API 密钥
进入项目目录并复制示例环境变量文件。
cd openai-quickstart-python
cp .env.example .env
复制您的秘密 API 密钥并将其设置为新创建的 .env
文件中的 OPENAI_API_KEY
。如果您还没有创建密钥,您可以在下面创建。
运行代码
在项目目录下运行以下命令安装依赖并运行应用程序。运行命令时,您可能需要键入 python3
/ pip3
而不是 python
/ pip
,具体取决于您的设置。
python -m venv venv
. venv/bin/activate
pip install -r requirements.txt
flask run
在浏览器中打开 http://localhost:5000 ,您应该会看到宠物名称生成器!
代码解释
在 openai-quickstart-python 文件夹中打开 app.py。在底部,您将看到生成我们上面使用的提示的函数。由于用户将输入其宠物类型,因此它会动态替换指定动物部分的提示。
def generate_prompt(animal):
return """Suggest three names for an animal that is a superhero.
Animal: Cat
Names: Captain Sharpclaw, Agent Fluffball, The Incredible Feline
Animal: Dog
Names: Ruff the Protector, Wonder Canine, Sir Barks-a-Lot
Animal: {}
Names:""".format(animal.capitalize())
在app.py的第14行,您将看到发送实际API请求的代码。如上所述,它使用温度为0.6。
response = openai.Completion.create(
model="text-davinci-003",
prompt=generate_prompt(animal),
temperature=0.6
)
就是这样!现在你应该完全了解你的(超级英雄)宠物名字生成器如何使用OpenAI API了!
价格
我们提供了不同能力和价格的模型,建议使用text-davinci-003或gpt-3.5-turbo以获得最佳结果。一旦实现了功能,可以尝试其他模型以降低延迟和成本,或者升级到更强大的gpt-4模型。
单个请求中处理的标记总数(包括提示词和完成)不能超过模型的最大上下文长度。对于大多数模型,最长不能超过4,096个标记(约3,000个单词)。 粗略地说,1个标记约为英文文本的4个字符或0.75个单词。
定价是按使用量计费,每1,000个标记收取一次费用。在您的前3个月内,我们提供$5的免费信用额度可供使用。
小结
这些概念和技术将有助于您构建自己的应用程序。话虽如此,这个简单的例子只展示了可能性的一小部分!OpenAI api的功能强大,可以解决几乎任何语言处理任务,包括内容生成、摘要、语义搜索、主题标记、情感分析等等。
要记住的一个限制是,对于大多数模型,单个 API 请求,最多能处理4096个标记(包括提示词和结果)。
对于更高级的任务,您可能会发现自己希望能够提供更多的示例或上下文,而不是单个提示中的内容。 Fine-tuning API适用于更高级的任务,可以提供数百甚至数千个示例来定制模型以满足特定用例。
发表评论