[译][AI OpenAI-doc] 生产最佳实践

简介: 本指南提供了一套全面的最佳实践,以帮助您从原型转向生产。无论您是经验丰富的机器学习工程师还是最近的爱好者,本指南都应为您提供成功将平台投入生产环境所需的工具:从确保访问我们的API到设计能够处理高流量的稳健架构。使用本指南帮助制定尽可能平稳有效地部署应用程序的计划。

本指南提供了一套全面的最佳实践,以帮助您从原型转向生产。无论您是经验丰富的机器学习工程师还是最近的爱好者,本指南都应为您提供成功将平台投入生产环境所需的工具:从确保访问我们的API到设计能够处理高流量的稳健架构。使用本指南帮助制定尽可能平稳有效地部署应用程序的计划。

如果您想进一步探索投入生产的最佳实践,请查看我们的开发者日讨论:

The New Stack and Ops for AI

设置您的组织

登录到您的OpenAI账户后,您可以在组织设置中找到您的组织名称和ID。组织名称是您的组织的标签,在用户界面中显示。组织ID是您的组织的唯一标识符,可用于API请求。

属于多个组织的用户可以传递一个标头来指定哪个组织用于API请求。从这些API请求中的使用量将计入指定组织的配额。如果没有提供标头,则将对默认组织进行计费。您可以在用户设置中更改默认组织。

您可以从团队页面邀请新成员加入您的组织。成员可以是读者或所有者。读者可以进行API请求并查看基本的组织信息,而所有者可以修改计费信息并管理组织内的成员。

管理计费限制

要开始使用OpenAI API,请输入您的计费信息。如果没有输入计费信息,您仍然可以登录,但将无法进行API请求。

一旦您输入了您的计费信息,您将有一个每月100美元的批准使用限制,这是由OpenAI设置的。随着您在平台上的使用量增加并从一个使用层级转移到另一个使用层级,您的配额限制将自动增加。您可以在帐户设置中的限制页面查看您当前的使用限制。

如果您希望在使用量超过一定金额时收到通知,您可以通过使用限制页面设置通知阈值。当达到通知阈值时,组织所有者将收到电子邮件通知。您还可以设置一个月度预算,以便一旦达到月度预算,任何后续的API请求都将被拒绝。请注意,这些限制是尽力而为的,使用量和限制之间可能会有5到10分钟的延迟。

API密钥

OpenAI API使用API密钥进行身份验证。访问您的API密钥页面以检索您在请求中将使用的API密钥。

这是一种相对简单的控制访问方式,但您必须注意确保这些密钥的安全。避免在代码或公共存储库中暴露API密钥;相反,将它们存储在安全位置。您应该使用环境变量或秘密管理服务将密钥暴露给您的应用程序,这样您就不需要在代码库中硬编码它们。在我们的API密钥安全最佳实践中了解更多信息。

一旦启用跟踪,可以在使用情况页面监控API密钥的使用情况。如果您使用的是2023年12月20日之前生成的API密钥,则默认情况下将不会启用跟踪。您可以在API密钥管理仪表板上启用未来的跟踪。生成于2023年12月20日之后的所有API密钥都已启用跟踪。任何以前未跟踪的使用情况将显示为仪表板中的“未跟踪”。

暂存账户

随着规模扩大,您可能希望为暂存和生产环境创建单独的组织。请注意,您可以使用两个不同的电子邮件地址进行注册,比如bob+prod@widgetcorp.com和bob+dev@widgetcorp.com来创建两个组织。这样可以让您将开发和测试工作隔离开,以免意外干扰您的实际应用程序。您也可以通过这种方式限制对生产组织的访问。

扩展您的解决方案架构

在为使用我们的API的生产应用程序或服务设计时,考虑如何扩展以满足流量需求是很重要的。无论您选择的云服务提供商是谁,都有几个关键领域需要考虑:

  • 水平扩展:您可能希望将应用程序进行水平扩展,以适应来自多个来源的应用程序请求。这可能涉及部署额外的服务器或容器来分发负载。如果选择此类扩展,请确保您的架构设计能够处理多个节点,并确保您有机制来平衡它们之间的负载。
  • 垂直扩展:另一种选择是对应用程序进行垂直扩展,这意味着您可以增加单个节点的资源。这将涉及升级服务器的能力以处理额外的负载。如果选择此类扩展,请确保您的应用程序设计能够充分利用这些额外的资源。
  • 缓存:通过存储频繁访问的数据,您可以在不需要重复调用我们的API的情况下提高响应时间。您的应用程序需要设计为尽可能使用缓存数据,并在添加新信息时使缓存失效。您可以通过几种不同的方式来实现这一点。例如,您可以根据您的应用程序的实际情况将数据存储在数据库、文件系统或内存缓存中。
  • 负载均衡:最后,考虑使用负载均衡技术来确保请求均匀分布到可用服务器上。这可能涉及在服务器前使用负载均衡器或使用DNS轮询。平衡负载将有助于提高性能并减少瓶颈。

管理速率限制

在使用我们的API时,理解和规划速率限制至关重要。

提高延迟

请查看我们关于延迟优化的最新指南。
延迟是请求被处理并返回响应所需的时间。在本节中,我们将讨论一些影响我们文本生成模型延迟的因素,并提供如何减少延迟的建议。

完成请求的延迟主要受两个因素影响:模型和生成的标记数量。完成请求的生命周期如下:

  • 网络 终端用户到API的延迟
  • 服务器 处理提示标记的时间
  • 服务器 采样/生成标记的时间
  • 网络 API到终端用户的延迟

延迟的大部分通常来自标记生成步骤。

直觉:提示标记对完成调用的延迟影响很小。生成完成标记的时间要长得多,因为标记是逐个生成的。较长的生成长度会由于需要为每个标记生成而累积延迟。

影响延迟的常见因素和可能的缓解技术

现在我们已经了解了延迟的基础知识,让我们来看一下各种可能影响延迟的因素,从最具影响力到最不具影响力的顺序。

模型

我们的API提供了不同复杂度和通用性水平的模型。最强大的模型,例如gpt-4,可以生成更复杂和多样化的完成,但它们处理您的查询所需的时间也更长。像gpt-3.5-turbo这样的模型可以生成更快、更便宜的聊天完成,但它们可能会生成与您的查询不太准确或相关的结果。您可以根据您的用例和速度与质量之间的权衡选择最适合您的模型。

完成标记数量

请求大量生成的标记完成可能会导致延迟增加:

  • 降低最大标记数:对于具有相似标记生成计数的请求,具有较低的max_tokens参数会产生较少的延迟。
  • 包含停止序列:为了防止生成不必要的标记,添加一个停止序列。例如,您可以使用停止序列生成一个具有特定数量项目的列表。在这种情况下,通过使用11.作为停止序列,您可以生成一个只有10个项目的列表,因为当达到11.时,完成将停止。阅读我们的帮助文章以了解有关如何执行此操作的更多上下文。
  • 生成较少的完成:尽可能降低n和best_of的值,其中n是每个提示生成的完成数量,best_of用于表示每个标记的最高对数概率的结果。

如果n和best_of都等于1(这是默认值),生成的标记数量将最多等于max_tokens。

如果n(返回的完成数量)或best_of(用于考虑的生成完成数量)设置为> 1,则每个请求将创建多个输出。在这里,您可以将生成的标记数量考虑为[max_tokens * max(n,best_of)]。

流式传输

在请求中设置stream: true会使模型在可用时立即返回标记,而不是等待所有标记序列生成完毕。它不会改变获取所有标记的时间,但会减少首个标记的时间,适用于需要显示部分进度或将停止生成的应用程序。这可以提供更好的用户体验和UX改进,因此值得尝试使用流式传输。

基础设施

我们的服务器目前位于美国。虽然我们希望未来能够实现全球冗余,但在此期间,您可以考虑将基础设施的相关部分放置在美国,以最小化您的服务器与OpenAI服务器之间的往返时间。

批处理

根据您的用例,批处理可能会有所帮助。如果您将多个请求发送到同一端点,您可以将要发送的提示批处理到同一请求中。这将减少您需要进行的请求数量。prompt参数最多可以容纳20个唯一的提示。我们建议您测试此方法,看看是否有所帮助。在某些情况下,您可能会增加生成的标记数量,从而降低响应时间。

管理成本

为了监控您的成本,您可以在您的账户中设置一个通知阈值,一旦您超过了某个使用阈值,您就会收到一封电子邮件提醒。您还可以设置一个月度预算。请注意,月度预算可能会对您的应用程序/用户造成中断。使用使用跟踪仪表板监视您在当前和过去的计费周期内的令牌使用情况。

文本生成

将原型转移到生产环境的一个挑战是为运行应用程序所需的成本做预算。OpenAI提供按照每1,000个标记计费的按需定价模式(大约相当于750个单词)。要估算您的成本,您需要预测标记的使用量。考虑因素包括流量水平、用户与您的应用程序交互的频率以及您将处理的数据量。

在思考如何降低成本时,一个有用的框架是将成本视为标记数量和每个标记的成本的函数。使用这个框架,有两个潜在的降低成本的途径。首先,您可以尝试通过切换到较小的模型来降低每个标记的成本,以降低成本。或者,您可以尝试减少所需的标记数量。您可以通过使用更短的提示、微调模型或缓存常见用户查询来实现这一点,从而降低成本。

您可以使用我们的交互式标记工具进行实验,以帮助您估算成本。API和游乐场还会在响应中返回标记计数。一旦您使用我们最强大的模型完成了相关工作,您可以查看其他模型是否能以更低的延迟和成本产生相同的结果。在我们的标记使用帮助文章中了解更多信息。

MLOps策略

当您将原型转移到生产环境时,您可能希望考虑制定一个MLOps策略。MLOps(机器学习运营)指的是管理您的机器学习模型的端到端生命周期的过程,包括您可能正在使用我们的API进行微调的任何模型。在设计您的MLOps策略时,有一些方面需要考虑。其中包括:

  • 数据和模型管理:管理用于训练或微调模型的数据,并跟踪版本和更改。
  • 模型监控:随着时间跟踪您模型的性能,并检测任何潜在的问题或退化。
  • 模型重新训练:确保您的模型与数据变化或不断发展的需求保持同步,并根据需要重新训练或微调。
  • 模型部署:自动化将您的模型和相关工件部署到生产环境的过程。

深入思考您应用程序的这些方面将有助于确保您的模型随着时间的推移保持相关并表现良好。

安全与合规性

当您将原型转移到生产环境时,您需要评估并解决可能适用于您的应用程序的任何安全和合规性要求。这将涉及检查您正在处理的数据,了解我们的API如何处理数据,并确定您必须遵守的法规。我们的安全实践和信任与合规性门户提供了我们最全面和最新的文档。供参考,这是我们的隐私政策和使用条款。

您需要考虑的一些常见领域包括数据存储、数据传输和数据保留。您可能还需要在可能的情况下实施数据隐私保护措施,例如加密或匿名化。此外,您应该遵循安全编码的最佳实践,例如输入净化和适当的错误处理。

安全最佳实践

在使用我们的API创建您的应用程序时,请考虑我们的安全最佳实践,以确保您的应用程序安全且成功。这些建议强调了广泛测试产品的重要性,积极解决潜在问题的重要性,并限制了误用的机会。

业务考虑

随着使用人工智能的项目从原型转向生产阶段,重要的是考虑如何利用人工智能构建出色的产品,以及这如何与您的核心业务联系起来。我们当然没有所有的答案,但一个很好的起点是我们开发者日活动中的一次讨论,我们在这个讨论中与一些客户进行了深入探讨:

The Business of AI


相关文章
|
7天前
|
机器学习/深度学习 人工智能 安全
GLM-Zero:智谱AI推出与 OpenAI-o1-Preview 旗鼓相当的深度推理模型,开放在线免费使用和API调用
GLM-Zero 是智谱AI推出的深度推理模型,专注于提升数理逻辑、代码编写和复杂问题解决能力,支持多模态输入与完整推理过程输出。
112 24
GLM-Zero:智谱AI推出与 OpenAI-o1-Preview 旗鼓相当的深度推理模型,开放在线免费使用和API调用
|
2天前
|
存储 人工智能 NoSQL
Tablestore深度解析:面向AI场景的结构化数据存储最佳实践
《Tablestore深度解析:面向AI场景的结构化数据存储最佳实践》由阿里云专家团队分享,涵盖Tablestore十年发展历程、AI时代多模态数据存储需求、VCU模式优化、向量检索发布及客户最佳实践等内容。Tablestore支持大规模在线数据存储,提供高性价比、高性能和高可用性,特别针对AI场景进行优化,满足结构化与非结构化数据的统一存储和高效检索需求。通过多元化索引和Serverless弹性VCU模式,助力企业实现低成本、灵活扩展的数据管理方案。
24 12
|
2天前
|
存储 人工智能 Kubernetes
MiniMax云上AI数据湖最佳实践
本简介介绍MiniMax云上AI数据湖的最佳实践。MiniMax成立于2021年,专注于通用人工智能领域,提供ToB和C端产品。面对每日3万亿token、2000万张图片及7万小时语音数据的处理需求,MiniMax基于阿里云构建了稳定灵活的基础设施,采用多云策略实现全球化部署。通过引入Kubernetes、Ray等技术,优化了多模态数据处理效率,并利用对象存储与数据湖技术降低成本。此外,与阿里云合作开发边缘缓存方案,提升跨地域数据传输效率。主讲人:阿里云弹性计算技术专家高庆端。
23 10
|
3天前
|
人工智能 供应链 安全
阿里云 Confidential AI 最佳实践
本次分享的主题是阿里云 Confidential AI 最佳实践,由阿里云飞天实验室操作系统安全团队工程师张佳分享。主要分为三个部分: 1. Confidential AI 技术背景与挑战 2. Confidential AI 技术架构与应用场景 3. Confidential AI 技术实践与未来展望
|
3天前
|
存储 Serverless 文件存储
AI 场景下,函数计算 GPU 实例模型存储最佳实践
当前,函数计算 FC 已被广泛应用在各种 AI 场景下,函数计算支持通过使用容器镜像部署 AI 推理应用,并且提供多种选项来访问训练好的模型。为了帮助开发者高效地在函数计算上部署 AI 推理应用,并快速解决不同场景下的模型存储选型问题,本文将对函数计算的 GPU 模型存储的优缺点及适用场景进行对比分析,以期为您的模型存储决策提供帮助。
|
24天前
|
人工智能 自然语言处理 并行计算
ASAL:Sakana AI 联合 OpenAI 推出自动探索人工生命的系统,通过计算机模拟生命进化的过程
ASAL 是由 Sakana AI 联合 OpenAI 等机构推出的自动化搜索人工生命系统,基于基础模型实现多种搜索机制,扩展了人工生命研究的边界。
98 1
ASAL:Sakana AI 联合 OpenAI 推出自动探索人工生命的系统,通过计算机模拟生命进化的过程
|
17天前
|
人工智能 关系型数据库 分布式数据库
PolarDB-PG AI最佳实践3 :PolarDB AI多模态相似性搜索最佳实践
本文介绍了如何利用PolarDB结合多模态大模型(如CLIP)实现数据库内的多模态数据分析和查询。通过POLAR_AI插件,可以直接在数据库中调用AI模型服务,无需移动数据或额外的工具,简化了多模态数据的处理流程。具体应用场景包括图像识别与分类、图像到文本检索和基于文本的图像检索。文章详细说明了技术实现、配置建议、实战步骤及多模态检索示例,展示了如何在PolarDB中创建模型、生成embedding并进行相似性检索
|
17天前
|
SQL 人工智能 关系型数据库
PolarDB-PG AI最佳实践 2 :PolarDB AI X EAS实现自定义库内模型推理最佳实践
PolarDB通过POLAR_AI插件支持使用SQL调用AI/ML模型,无需专业AI知识或额外部署环境。结合阿里云EAS在线模型服务,可轻松部署自定义模型,在SQL中实现如文本翻译等功能。
|
19天前
|
存储 人工智能 运维
AI + 可观测最佳实践:让业务从“看见”到“洞察”
本文介绍了AI Ops的概念及其在提升系统运维效率、洞察力和可观测性方面的作用。主要内容分为三个部分:一是监控、观测与洞察的区别及挑战,强调了数据整合和语义对齐的重要性;二是AI与计算如何重塑可观测性,通过UModel数字图谱和多模态存储分析架构实现数据联通;三是最佳实践与未来展望,展示了阿里云AI Stack可观测解决方案的应用案例,并总结了可观测性的四个发展阶段,最终愿景是借助AI力量让每个人成为多领域的专家。
|
17天前
|
存储 数据采集 算法
构建AI数据管道:从数据到洞察的高效之旅最佳实践
本文探讨了大模型从数据处理、模型训练到推理的全流程解决方案,特别强调数据、算法和算力三大要素。在数据处理方面,介绍了多模态数据的高效清洗与存储优化;模型训练中,重点解决了大规模数据集和CheckPoint的高效管理;推理部分则通过P2P分布式加载等技术提升效率。案例展示了如何在云平台上实现高性能、低成本的数据处理与模型训练,确保业务场景下的最优表现。