设置您的组织
登录OpenAI账户后,您可以在组织设置中找到您的组织名称和ID。 组织名称是您的组织标签,在用户界面中显示。 组织ID是用于API请求的唯一标识符。
属于多个组织的用户可以传递标题以指定用于API请求的组织。 这些API请求使用情况将计入指定组织的配额。 如果未提供标题,则默认将收取费用。 您可以在用户设置中更改默认组织。
您可以从成员设置页面邀请新成员加入您的组织。 成员可以是读者或所有者。 读者可以进行API请求并查看基本组织信息,而所有者则可以修改结算信息并管理该组织内部成员。
管理计费限制
新的免费试用用户将获得5美元的初始信用额,该信用额在三个月后到期。一旦信用额已经使用或过期,您可以选择输入结算信息以继续使用API。如果未输入任何结算信息,则仍然可以登录访问,但无法进行进一步的API请求。
一旦输入了您的结算信息,您将拥有每月120美元的批准使用限制,这是由OpenAI设置的。要增加超过每月120美元计费限制的配额,请提交配额增加请求。
如果您希望在使用量超过某个特定金额时收到通知,则可以通过使用限制页面设置软性限制。当达到软性限制时,组织所有者将收到电子邮件通知。您还可以设置硬性极限,在达到硬性极限后,任何随后的API请求都将被拒绝。请注意这些限制是最佳努力,并且在使用和强制执行之间可能会有5至10分钟延迟。
API密钥
OpenAI API使用API密钥进行身份验证。访问您的API密钥页面以检索在请求中使用的API密钥。
这是一种相对简单的控制访问方式,但您必须注意保护这些密钥。避免在代码或公共存储库中暴露API密钥;而是将它们存储在安全位置。您应该使用环境变量或秘密管理服务向应用程序公开您的键,以便不需要在代码库中硬编码它们。阅读更多有关API密钥安全性最佳实践的信息。
暂存账户
随着您的业务规模扩大,您可能希望为暂存和生产环境创建单独的组织。请注意,您可以使用两个不同的电子邮件地址进行注册,例如bob+prod@widgetcorp.com 和 bob+dev@widgetcorp.com 来创建两个组织。这将使您能够隔离开发和测试工作,以免意外干扰实时应用程序。通过这种方式还可以限制对生产组织的访问权限。
构建您的原型
如果您还没有完成快速入门指南,我们建议您在深入阅读本指南之前从那里开始。
对于那些刚接触OpenAI API的人来说,我们的游乐场可以是探索其功能的绝佳资源。这样做将帮助您了解可能性以及可能想要集中精力的地方。 您还可以探索我们的示例提示。
虽然游乐场是原型设计的好地方,但它也可以用作更大项目孵化区域。 游乐场还使得导出API请求代码片段和与协作者共享提示变得容易,因此成为开发过程中不可或缺的一部分。
附加提示
-
首先确定您希望应用程序具有的核心功能。考虑您将需要哪些数据输入、输出和处理类型。旨在使原型尽可能专注,以便您可以快速高效地迭代。
-
选择编程语言和框架,这样你会感到最舒适,并且最符合项目目标。一些流行的选项包括Python、Java和Node.js。请参阅库支持页面,了解我们团队和更广泛的开发者社区维护的库绑定。
-
开发环境与支持:使用正确的工具和库设置开发环境,并确保您拥有训练模型所需的资源。利用我们的文档、社区论坛和帮助中心来获取故障排除方面的帮助。如果您正在使用Python进行开发,请查看此结构化项目指南(存储库结构是项目架构中至关重要的部分)。为了连接我们的支持工程师,只需登录账户并使用“帮助”按钮开始对话即可。
提高提示可靠性的技巧
即使进行了仔细的规划,当在应用程序中使用GPT-3时,准备好应对意外问题非常重要。在某些情况下,模型可能无法完成任务,因此考虑如何提高应用程序的可靠性是有帮助的。
如果您的任务涉及逻辑推理或复杂性,则可能需要采取额外措施来构建更可靠的提示。有关一些有用建议,请参阅我们《提高可靠性技术指南》。总体而言,建议围绕以下内容展开:
-
将不可靠操作分解为较小、更可靠的操作(例如选择-推断提示)
-
使用多个步骤或多个关系使系统的可靠性大于任何单个组件(例如母式提示)
评估和迭代
开发生产系统最重要的方面之一是定期评估和迭代实验。这个过程可以让您测量性能,解决问题,并微调模型以提高准确性和效率。这个过程的关键部分是为您的功能创建一个评估数据集。以下是需要记住的几件事情:
- 确保您的评估集代表了模型在真实世界中将使用的数据。这将使您能够评估模型对其从未见过的数据在新情况下泛化到多么好。
- 定期更新您的评估集,以确保它随着模型演变和新数据可用而保持相关。
- 使用各种指标来评估模型性能。根据应用程序和业务结果,这可能包括精度、准确率、召回率、F1得分或平均精度(MAP)。此外,你可以同步你微调与权重&偏差跟踪实验、模型和数据集。
- 将你们模型与基线进行比较。这将让你更好地理解你们模型优点及缺陷,并有助于指导未来发展工作。
通过进行定期评价和迭代试验,可以确保GPT驱动应用程序或原型继续改进并不断提高水平。
评估语言模型
评估语言模型可能很困难,因为评估生成的语言质量通常是主观的,并且有许多不同的方式可以用语言正确地传达相同的信息。例如,在评估一个模型对长篇文本进行摘要能力时,有许多正确的摘要。尽管如此,设计好的评估对于在机器学习中取得进展至关重要。
一个完整、易于运行并且速度合理(根据模型大小而定)的测试套件也需要容易继续添加到套件中,因为一个月内全面性已经过时了。我们应该优先考虑具有各种任务和识别模型弱点或无法通过扩展来改善能力的任务。
评估系统最简单的方法是手动检查其输出。它是否做你想要做到?输出质量高吗?它们是否一致?
自动化评估
加快测试速度的最佳方法是开发自动化评估。然而,在更主观的应用程序(如摘要任务)中,这可能不可行。
自动化评估在能够将最终输出作为正确或错误进行分级时效果最好。例如,如果您正在微调分类器以将文本字符串分类为A类或B类,则相当简单:创建一个带有示例输入和输出对的测试集,运行系统并将系统输出与正确输出进行分级(查看准确性、F1得分、交叉熵等指标)。
如果您的输出是半开放式的,就像会议记录摘要器一样,定义成功可能会更棘手:例如,什么使一个摘要比另一个更好?在这里,可能采用以下技术:
- 编写一个带有“黄金标准”答案的测试,然后测量每个黄金标准答案与系统输出之间的某种相似度分数(我们已经看到嵌入在这方面表现得相当不错)
- 构建一个鉴别器系统来判断/排名输出,然后给该鉴别器一组输出,其中一个是由正在测试的系统生成的(这甚至可以是GPT模型,询问是否通过给定输出正确回答问题)
- 构建一个评估模型,检查答案各部分的真实性;例如,检测引用是否实际出现在给定文本中。
对于非常开放性的任务,例如创意故事写作,自动评估更加困难。虽然可能会开发质量指标来检查拼写错误、词汇多样性和可读性分数,但这些指标并不能真正捕捉到一篇文章的创造力质量。在找不到好的自动化度量方法的情况下,人工评估仍然是最好的方法。
评估基于GPT-3的系统的示例程序
以构建基于检索的问答系统为例。
检索式问答系统有两个步骤。首先,使用用户查询来对知识库中可能相关的文档进行排名。其次,将排名最高的文档提供给GPT-3,并要求其生成与查询相应的答案。
可以进行评估以衡量每个步骤的性能。
对于搜索步骤,可以:
- 首先,生成一个包含约100个问题和每个问题的正确文档集合的测试集。
- 如果您有用户数据,则可以从中获取问题;否则,您可以发明一组具有不同风格和难度的问题。
- 对于每个问题,请让一个人手动搜索知识库并记录包含答案的文档集合。
- 其次,使用测试集来评估系统性能
- 对于每个问题,请使用系统对候选文档进行排名(例如通过将文档嵌入与查询嵌入的余弦相似度进行排序)。
- 您可以使用二进制准确率得分来评分结果。如果候选文档至少包含一个相关答案键中的正确文档,则得分为1;否则为0.
- 您还可以使用连续指标(如平均倒数排名),这有助于区分接近正确或远离正确答案的情况(例如:如果正确文件是第1位,则得分为1;如果是第2位,则得分为1/2; 如果是第3位,则得分为1/3等)。
对于问题回答步骤,可以:
- 首先,生成一个测试集,包含约100组{问题、相关文本、正确答案}
- 对于问题和相关文本,请使用上述数据
- 对于正确答案,请让一个人写下大约100个优秀答案的示例。
其次,使用测试集来评估系统的性能。
-
对于每个问题和文本对,将它们组合成提示并提交给GPT-3。
-
接下来,将GPT-3的答案与人类编写的黄金标准答案进行比较。
-
这种比较可以是手动的,即人类将它们并排放置,并评分GPT-3答案是否正确/高质量。
-
这种比较也可以是自动化的,通过使用嵌入相似度得分或另一种方法(自动化方法可能会有噪声,但只要它是无偏差且在您正在相互测试的不同类型模型之间同样有噪声就可以)。