位置: IT常识 - 正文

OpenAI 官方api 阅读笔记(openapi官网)

发布时间:2024-01-17
OpenAI 官方api 阅读笔记

推荐整理分享OpenAI 官方api 阅读笔记(openapi官网),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:openapi工具,openapi 3.0 中文文档,openapi 3.0 中文文档,openapi官网,openai 官网,openai 官网,openapi官网,openai 官网,内容如对您有帮助,希望把文章链接给更多的朋友!

网站 API

Key conceptsPrompts and completions

You input some text as a prompt, and the model will generate a text completion that attempts to match whatever context or pattern you gave it.

Token

 模型通过将文本分解成token来理解和处理, 处理token数量取决于输入+输出  文本提示prompt+ completion 必须不超过模型的最大上下文长度(对于大多数模型,这是2048个token,或大约1500个字)

Models

 基础GPT-3模型被称为Davinci、Curie、Babbage和Ada。我们的Codex系列是GPT-3的后裔,在自然语言和代码上都进行过训练。

InstructGPT是针对特定任务训练的一个基于GPT架构的模型,主要用于生成自然语言指令或命令。而GPT-3是OpenAI发布的一款大规模预训练语言模型,具备强大的自然语言处理能力和生成能力,可以应用于多种自然语言处理任务,例如文本生成、翻译、问答等。 InstructGPT是针对一些特定任务进行了微调的GPT模型,训练集和目标任务紧密相关,模型在这些任务上表现较为出色。而GPT-3是在更广泛的语料库上进行预训练的模型,其训练数据来自于大量的互联网文本,可以在多种自然语言处理任务上表现出色。此外,GPT-3还包含了多个规模不同的子模型,可以根据任务需求进行选择和调用。 总之,InstructGPT是一种更加专注于指令生成的模型,而GPT-3则是一种功能更加全面、适用于多种自然语言处理任务的模型Quickstart快速上手

Content generation Summarization Classification, categorization, and sentiment analysis Data extraction Translation

make your instruction more specific. 指示更具体点

Add some examples 给几个例子

Adjust your settings 参数Temperature 为0回答准确确定, 为1多样化tokens and probabilities

给出一些文本,模型决定哪一个标记最有可能出现 这里可以更好地理解temperature

通常,对于所需输出明确的任务,最好设置一个低温度。较高的温度可能对需要多样性或创造性的任务有用,或者如果你想产生一些变化供你的终端用户或人类专家选择。

Models

GPT-3

GPT-3模型可以理解和生成自然语言。四种主要模型,具有不同的能力水平,适合不同的任务。Davinci是能力最强的模型,而Ada是最快的

Davinci

Good at: Complex intent, cause and effect, summarization for audience 擅长于 复杂的意图,因果关系,为受众总结

Curie 居里夫人

Good at: Language translation, complex classification, text sentiment, summarization 擅长的是 语言翻译、复杂分类、文本情感、总结

Babbage

Good at: Moderate classification, semantic search classification 擅长。适度分类,语义搜索分类

Ada

Good at: Parsing text, simple classification, address correction, keywords 擅长。解析文本,简单分类,地址更正,关键词

Note: Any task performed by a faster model like Ada can be performed by a more powerful model like Curie or Davinci.

comparisontool

https://gpttools.com/comparisontool

Finding the right model

https://platform.openai.com/docs/models/finding-the-right-model

Codex

Codex模型是GPT-3模型的后代,可以理解和生成代码

Content filter

建议使用 moderation endpoint而不是e content filter model.。

Python

content_to_classify = "Your content here"response = openai.Completion.create( model="content-filter-alpha", prompt = "<|endoftext|>"+content_to_classify+"\n--\nLabel:", temperature=0, max_tokens=1, top_p=0, logprobs=10 )

logprob

GUIDESText completionPrompt design

three basic guidelines to creating prompts:

Show and tell.Provide quality data.Check your settings.Classification

用API创建一个文本分类器,提供了一个任务描述和几个例子。

Use plain language to describe your inputs and outputs.使用平实的语言来描述你的输入和输出Show the API how to respond to any case. 向API展示如何对任何情况作出反应 ,考虑全面,这里的一个中立的标签很重要You need fewer examples for familiar tasks.对于熟悉的任务,需要更少的例子就好

为了让变得更有效率,可以用它来从一次API调用中获得多个结果 注意:

通过运行多次测试,确保你的概率设置 (Top P or Temperature) 被正确校准。不要让你的列表太长,否则API很可能会出现dirft。Generation 生成新的想法

可以添加examples 来提升质量

Conversation告诉API它应该如何表现,然后提供一些例子我们给API一个身份

向API展示如何回复。只需要几个讽刺性的回答,API就能掌握这个模式并提供无穷无尽的讽刺性回答。

Transformation

翻译 translation 如果你想把英语翻译成API不熟悉的语言,你就需要为它提供更多的例子,甚至fine-tune一个模型来做得更流畅。

对话

总结summarization API能够掌握文本的上下文,并以不同的方式重新表述它。来达到更容易理解的解释

Completion 续写 续写代码、续写文章

Factual responses

为API提供一个基础真理。如果你为API提供一个文本体来回答问题(就像维基百科的条目),它就不太可能编造出一个回应。使用一个低概率,并向API展示如何说 "我不知道"。如果API明白,在它不太确定的情况下,说 "我不知道 "或一些变体是合适的,那么它将不太倾向于编造答案。Inserting text 插入文本

模型提供额外的背景,它可以更容易被引导。

插入文本是测试版的一个新功能,你可能必须修改你使用API的方式以获得更好的效果。这里有一些最佳做法。

使用max_tokens > 256。该模型能更好地插入较长的补语。使用太小的max_tokens,模型可能在能够连接到后缀之前就被切断了。 最好是finish_reason == “stop” 。当模型到达一个自然停止点或用户提供的停止序列时,它将把 finish_reason 设置为 “停止”。这表明模型已经成功地连接到后缀井,是一个完成质量的良好信号。当使用n>1或重新取样时,这对在几个完成度之间进行选择尤其重要(见下一点)。

重新取样3-5次。虽然几乎所有的完成度都连接到前缀,但在较难的情况下,模型可能难以连接后缀。我们发现,在这种情况下,重新取样3或5次(或使用k=3,5的best_of),并挑选出以 "停止 "作为其finish_reason的样本,是一个有效的方法。在重新取样时,你通常希望有更高的temperature来增加多样性。

注意:如果所有返回的样本的finish_reason ==“length”,很可能是max_tokens太小了,模型在设法自然连接提示和后缀之前就耗尽了tokens。考虑在重新取样前增加max_tokens。

尝试给出更多的线索。在某些情况下,为了更好地帮助模型的生成,你可以通过给出一些模型可以遵循的模式的例子来提供线索,以决定一个自然的地方来停止。

Editing text

提供一些文本和如何修改它的指令,text-davinci-edit-001模型将尝试对其进行相应的编辑。这是一个自然的界面,用于翻译、编辑和调整文本。这对于重构和处理代码也很有用。 .

Code completion

功能:

将注释变成代码在上下文中完成你的下一行或函数为你带来知识,例如为一个应用程序找到一个有用的库或API调用添加注释重写代码以提高效率Best practicesOpenAI 官方api 阅读笔记(openapi官网)

向Codex提供一个注释和一个数据库模式的例子,让它为各种数据库编写有用的查询请求,向Codex展示数据库模式时,它就能够对如何格式化查询做出明智的猜测。

指定语言

提示Codex你希望它做什么 如果你想让Codex创建一个网页,把第一行代码放在你的注释之后的HTML文档中(<!DOCTYPE html>),告诉Codex它接下来应该做什么。同样的方法也适用于从一个注释中创建一个函数(在注释后面用一个以func或def开头的新行)。

指定库

注释风格会影响代码质量。 在使用Python时,在某些情况下,使用doc字符串(用三重引号包裹的注释)可以得到比使用磅(#)符号更高质量的结果。

把注释放在函数里面会有帮助 建议将一个函数的描述放在函数内部。使用这种格式可以帮助Codex更清楚地了解你想让这个函数做什么。

提供例子以获得更精确的结果。

较低的temperatures 可以得到更精确的结果。 将API温度设置为0,或接近0(如0.1或0.2),在大多数情况下往往会得到更好的结果。与GPT-3不同,较高的温度可以提供有用的创造性和随机性的结果,而Codex的较高温度可能会给你带来真正的随机或不稳定的反应。 从零开始,然后向上递增0.1,直到你找到合适的变化。

创建样例数据 *复合函数和小型应用。 我们可以向Codex提供一个注释,其中包括一个复杂的请求,如创建一个随机名字生成器或执行有用户输入的任务,只要有足够的标记,Codex就可以生成其余的东西。

限制完成度以获得更精确的结果或降低延迟 在Codex中请求更长的完成度会导致不精确的答案和重复。通过减少max_tokens和设置stop tokens来限制查询的大小。例如,添加 \n 作为stop序列,将完成度限制在一行代码中。较小的完成度也会产生较少的延迟。

使用流来减少延迟。 大型的Codex查询可能需要几十秒来完成。要建立需要较低延迟的应用程序,如执行自动完成的编码助手,考虑使用流。响应将在模型完成生成整个完成度之前被返回。只需要部分完成的应用程序可以通过以编程方式或使用创造性的停止值来切断一个完成,从而减少延迟。

使用Codex来解释代码 以 "这个函数 "或 "这个应用程序是 "开头。Codex通常会将此解释为解释的开始,并完成其余的文字。

解释一个SQL查询

写单元测试 adding the comment “Unit test” and starting a function.

检查代码的错误

使用源数据来编写数据库函数,写sql

让Codex从一种语言转换到另一种语言,只要遵循一个简单的格式,在注释中列出你要转换的代码的语言,然后是代码

为一个库或框架重写代码

Inserting code

支持在代码中插入代码,除了前缀提示外,还提供了后缀提示。这可以用来在一个函数或文件的中间插入一个补全。 .

最佳做法 插入代码是测试版的一个新功能,你可能必须修改你使用API的方式以获得更好的效果。这里有一些最佳做法。

使用max_tokens > 256。该模型能更好地插入较长的完成度。使用太小的max_tokens,模型可能在能够连接到后缀之前就被切断了。注意,即使使用较大的max_tokens,也只对产生的tokens数量收费。

最好是finish_reason == “stop”。当模型到达一个自然停止点或用户提供的停止序列时,它将把 finish_reason 设置为 “停止”。这表明模型已经成功地连接到后缀井,是一个完成质量的良好信号。当使用n>1或重新取样时,这对在几个完成度之间进行选择尤其重要(见下一点)。

重新取样3-5次。虽然几乎所有的完成度都连接到前缀,但在较难的情况下,模型可能难以连接后缀。我们发现,在这种情况下,重新取样3或5次(或使用k=3,5的best_of),并挑选出以 "停止 "作为其finish_reason的样本,是一个有效的方法。在重新取样时,你通常希望有更高的温度来增加多样性。

注意:如果所有返回的样本的finish_reason == “length”,很可能是max_tokens太小了,模型在设法自然连接提示和后缀之前就耗尽了tokens。考虑在重新取样前增加max_tokens。

Editing code

你提供一些代码和如何修改它的指令,code-davinci-edit-001 模型将尝试对其进行相应的编辑。 例如:迭代建立一个程序、反复喂给模型不断的优化代码、为代码添加注释文档

Image generation

DALL·E models

根据文本提示从头开始创建图像根据一个新的文本提示创建现有图像的编辑创建现有图像的变体Generations 生成图片

实例

response = openai.Image.create( prompt="一幅日落黄昏的海边景象", n=1, size="1024x1024")image_url = response['data'][0]['url']print(image_url)

每张图片都可以使用response_format参数,以URL或Base64数据的形式返回。URL将在一小时后过期

Edits 编辑现有图片

endpoint允许你通过上传遮罩来编辑和扩展一个图像。遮罩的透明区域表示图像应该被编辑的地方,而提示prompt应该描述完整的新图像,而不仅仅是被擦除的区域。 上传的图像和遮罩都必须是小于4MB的正方形PNG图像,而且彼此的尺寸也必须相同。

Variations 改变图片

python语言调用api的注意点

Python例子使用open函数从磁盘读取图像数据。在某些情况下,你可能会把你的图像数据放在内存中。下面是一个API调用的例子,它使用存储在BytesIO对象中的图像数据。

from io import BytesIO# This is the BytesIO object that contains your image databyte_stream: BytesIO = [your image data]byte_array = byte_stream.getvalue()response = openai.Image.create_variation( image=byte_array, n=1, size="1024x1024")

在将图像传递给API之前对其进行操作可能是有用的。下面是一个使用PIL来调整图像大小的例子。重新调整大小,提高效率

from io import BytesIOfrom PIL import Image# Read the image file from disk and resize itimage = Image.open("image.png")width, height = 256, 256image = image.resize((width, height))# Convert the image to a BytesIO objectbyte_stream = BytesIO()image.save(byte_stream, format='PNG')byte_array = byte_stream.getvalue()response = openai.Image.create_variation( image=byte_array, n=1, size="1024x1024")

错误处理 无效的输入、速率限制或其他问题,API请求有可能返回错误。这些错误可以用try…except语句来处理,而错误的细节可以在e.error中找到。

try: openai.Image.create_variation( open("image.png", "rb"), n=1, size="1024x1024" ) print(response['data'][0]['url'])except openai.error.OpenAIError as e: print(e.http_status) print(e.error)Fine-tuning 微调

GPT-3已经对来自开放互联网的大量文本进行了预训练。当给它一个只有几个例子的提示时,它往往能直觉到你要执行什么任务,并产生一个合理的完成。这通常被称为 “少量学习”。

微调通过对比prompt中所包含的更多的例子进行训练,改进了少数几次的学习,让你在大量的任务中取得更好的结果。一旦一个模型被微调,你就不需要再在提示中提供例子。这节省了成本,并实现了更低的延迟请求。

哪些模型可以微调

davinci, curie, babbage, and ada. 这些是原始模型,在训练后没有任何指令(例如像text-davinci-003那样)。你也能够继续微调一个微调过的模型,增加额外的数据

text-davinci-003是OpenAI GPT-3模型系列中的一个预训练模型,它已经在大规模数据上进行了预训练,并且已经具有很强的泛化能力。因此,通常不需要对其进行fine-tuning微调。如果你需要在特定任务上使用GPT-3,你可以使用OpenAI API提供的其他模型,如davinci等,或者自己训练一个模型。

Preparing your dataset 准备训练数据

你的数据必须是一个JSONL文件,其中每一行都是对应于一个训练实例的提示-完成对。你可以使用我们的CLI数据准备工具来轻松地将你的数据转换成这种文件格式。

{"prompt": "<prompt text>", "completion": "<ideal generated text>"}{"prompt": "<prompt text>", "completion": "<ideal generated text>"}{"prompt": "<prompt text>", "completion": "<ideal generated text>"}...

利用cli工具转格式

openai tools fine_tunes.prepare_data -f <LOCAL_FILE>

你应该提供至少几百个高质量的例子,最好是由人类专家审核的。从这里开始,性能往往随着例子数量的每增加一倍而线性增加。增加例子的数量通常是提高性能的最好和最可靠的方法。

分类器是最容易上手的模型。对于分类问题,我们建议使用ada,一般来说,一旦经过微调,它的性能只比能力更强的模型差一点,同时速度明显更快,成本也更低。

如果你是在一个预先存在的数据集上进行微调,而不是从头开始写提示,如果可能的话,一定要手动审查你的数据是否有攻击性或不准确的内容,如果数据集很大,则要尽可能多地审查随机样本。

Create a fine-tuned modelopenai api fine_tunes.create -t <TRAIN_FILE_ID_OR_PATH> -m <BASE_MODEL>

BASE_MODEL是你的基础模型的名称(ada、babbage、curie或davinci)。你可以用后缀参数来定制你的微调模型的名称。

你还可以列出现有的作业,检索作业的状态,或取消作业。

# List all created fine-tunesopenai api fine_tunes.list# Retrieve the state of a fine-tune. The resulting object includes# job status (which can be one of pending, running, succeeded, or failed)# and other informationopenai api fine_tunes.get -i <YOUR_FINE_TUNE_JOB_ID># Cancel a jobopenai api fine_tunes.cancel -i <YOUR_FINE_TUNE_JOB_ID>Use a fine-tuned model

当一个作业成功后,fine_tuned_model字段将被填充为模型的名称。你现在可以指定这个模型作为我们的完成度API的一个参数,并使用Playground向它提出请求。

你可以通过传递模型名称作为完成请求的模型参数来开始进行请求。

Python api

import openaiopenai.Completion.create( model=FINE_TUNED_MODEL, prompt=YOUR_PROMPT)Delete a fine-tuned modelimport openaiopenai.Model.delete(FINE_TUNED_MODEL)
本文链接地址:https://www.jiuchutong.com/zhishi/298862.html 转载请保留说明!

上一篇:vue如何定义:全局变量、全局方法(vue3定义全局变量)

下一篇:Vue实战篇三十五:实现滑动拼图验证登录(vue实例教程)

  • 企业怎样做好微信营销推广(企业怎样做好微信运营)

    企业怎样做好微信营销推广(企业怎样做好微信运营)

  • ilife扫地机器人评测(ilife 11)(ilife扫地机器人售后服务电话)

    ilife扫地机器人评测(ilife 11)(ilife扫地机器人售后服务电话)

  • bios升级有风险吗(bios升级有什么用)(bios升级有风险吗)

    bios升级有风险吗(bios升级有什么用)(bios升级有风险吗)

  • qq红包怎么发(qq红包怎么发给好友)

    qq红包怎么发(qq红包怎么发给好友)

  • vivo手机如何截屏(vivo手机如何截长图)

    vivo手机如何截屏(vivo手机如何截长图)

  • 如何关闭抖音在线时间(如何关闭抖音在看功能)

    如何关闭抖音在线时间(如何关闭抖音在看功能)

  • 512固态够用吗(512固态够用吗玩游戏)

    512固态够用吗(512固态够用吗玩游戏)

  • 什么叫导向定位基准(导向定位策略主要包括)

    什么叫导向定位基准(导向定位策略主要包括)

  • 华为手机绑定了华为账号怎么解锁(华为手机绑定了华为账号怎么解除才能开机)

    华为手机绑定了华为账号怎么解锁(华为手机绑定了华为账号怎么解除才能开机)

  • p40pro可以插内存卡吗(p40pro可以放内存卡吗)

    p40pro可以插内存卡吗(p40pro可以放内存卡吗)

  • 苹果怎么导照片到另一个苹果手机(苹果怎么导照片到另一个安卓手机)

    苹果怎么导照片到另一个苹果手机(苹果怎么导照片到另一个安卓手机)

  • 苹果11收不到短信怎么回事(苹果11收不到短信提醒怎么回事)

    苹果11收不到短信怎么回事(苹果11收不到短信提醒怎么回事)

  • 网线超5类和6类区别(网线超5类和6类价格相差多少钱)

    网线超5类和6类区别(网线超5类和6类价格相差多少钱)

  • 华为手机克隆后旧手机数据会消失吗(华为手机克隆后新手机数据会消失吗)

    华为手机克隆后旧手机数据会消失吗(华为手机克隆后新手机数据会消失吗)

  • 抖音直播间管理员怎么设置(抖音直播间管理怎么飘屏文字)

    抖音直播间管理员怎么设置(抖音直播间管理怎么飘屏文字)

  • 笔记本密码忘了怎么办(笔记本密码忘了怎么解除)

    笔记本密码忘了怎么办(笔记本密码忘了怎么解除)

  • 手机斗鱼怎么调清晰度(手机斗鱼怎么调声音大)

    手机斗鱼怎么调清晰度(手机斗鱼怎么调声音大)

  • 京东怎么申请必购码(京东申请条件)

    京东怎么申请必购码(京东申请条件)

  • 苹果6的nfc功能在哪(苹果6nfc功能门禁卡)

    苹果6的nfc功能在哪(苹果6nfc功能门禁卡)

  • oppoa5耳机模式怎么解除(oppoa5耳机模式怎么开)

    oppoa5耳机模式怎么解除(oppoa5耳机模式怎么开)

  • 抖音音乐怎么拉长(抖音音乐怎么拉长时间)

    抖音音乐怎么拉长(抖音音乐怎么拉长时间)

  • b250主板支持8代cpu吗(b250主板支持8100吗)

    b250主板支持8代cpu吗(b250主板支持8100吗)

  • 老年机怎么设置报时间(老年机怎么设置亲情号)

    老年机怎么设置报时间(老年机怎么设置亲情号)

  • 小米9se支持nfc吗(小米9se支持nfc功能吗能刷公交吗)

    小米9se支持nfc吗(小米9se支持nfc功能吗能刷公交吗)

  • applewatch3和4区别(applewatch3对比4)

    applewatch3和4区别(applewatch3对比4)

  • 半监督学习(SEMI-Supervised Learning)(什么是半监督算法)

    半监督学习(SEMI-Supervised Learning)(什么是半监督算法)

  • 个税一般劳务报酬所得如何申报
  • 不能跨年
  • 福建税务网上办税流程
  • 办公用品普通发票的会计分录
  • 用房租入股
  • 企业工程款发票税率是多少2021
  • 小微企业零申报多久报一次税
  • 进口增值税可以抵税吗
  • 塔吊基础属于哪一类
  • 客运地方税务局监制发票还能用吗?
  • 公司租用个人房屋如何记账
  • 有限责任公司应当具备的条件
  • 工伤一次性医疗补助金由谁支付
  • 当月抵扣的发票可以下个月记账吗
  • 企业增值税年底怎么结转
  • 交际应酬费用
  • 园林绿化工程税点
  • 健身行业的税务政策
  • 调用核心征管失败是什么意思
  • 增值税又有调整政策吗
  • 已经计提的增值税怎么退
  • 增值税税率如何计算
  • 增值税(滞纳金)
  • 销售已使用过的固定资产增值税
  • 减免税金需要结转吗
  • 科目编码首位与分类编号不符,接受此编码吗
  • 金税盘发票报送状态未报送
  • win10如何关闭自动修复
  • 周转材料购置费属于材料费吗
  • win7安装netframework4.5
  • 打开进程失败
  • 如何解决windows蓝屏问题
  • winpe怎么安装到u盘
  • 系统托盘开不开
  • 小规模纳税人销售商品会计分录
  • 工业会计做账的基本流程
  • vue3全局属性
  • 银行承兑汇票的会计分录
  • pytorch说明文档
  • 全资子公司取得注册证可以免临床
  • oss使用场景
  • 残疾人增值税即征即退税收减免备案
  • 悉尼奥林匹克公园
  • framework4.0怎么打开
  • php 函数作为参数
  • 设计部工资计入什么费用
  • php和python结合
  • html不能运行
  • 三类职业指的是什么
  • cms是前端还是后端
  • 技术开发费免税政策
  • 控股公司的收入怎么计算
  • 暂估和冲暂估分录
  • 哪些支出可以在出国公杂费中扣除
  • 装载机如何计提折旧费用
  • 房地产行业预缴土地增值税
  • 员工入股会计分录
  • 机票改签手续费能报销吗
  • 增值税专用发票丢了怎么补救
  • 异地成立子公司能用母公司的名称吗?
  • Mysql inner join on的用法实例(必看)
  • Windows 2003作中转VPN服务器多路由共享上网的方法
  • 在ubuntu中安装虚拟机
  • Qq浏览器怎么切换成极速模式
  • version 2什么意思
  • 使用jquery实现的项目
  • 纹理烫男
  • 批处理显示
  • js中切割字符串
  • js对象类型的语法规则
  • javascript数据
  • Android应用与开发
  • 微博html代码
  • 中国税务主旨是什么?
  • 北京税务跨区迁移不予受理,原因是什么
  • 广告业发票税率是多少 可以抵扣多少
  • 辽宁社保网上申报流程图
  • 皇家税务与海关署
  • 个体户刻公章需要备案吗
  • 国家税务总局河南省税务干部学校
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号