一.什么是 Azure OpenAI 服务?
Azure OpenAI 服务允许通过 REST API 访问 OpenAI 的强大语言模型,包括 GPT-3、Codex 和 Embeddings 模型系列。
这些模型可以轻松适应特定的任务,包括但不限于内容生成、汇总、语义搜索和自然语言到代码的转换。 用户可以在 Azure OpenAI Studio 中通过 REST API、Python SDK 或基于 Web 的界面访问该服务。
1.1 功能概述
功能 |
Azure OpenAI |
可用的模型 |
GPT-3 基本系列 Codex 系列 Embeddings 系列 |
微调 |
Ada Babbage Curie Cushman* Davinci* * 当前不可用。 **在美国东部区域,微调目前对新客户不可用。 请使用美国中南部区域进行位于美国的训练 |
虚拟网络支持和专用链接支持 |
是 |
托管标识 |
是,通过 Azure Active Directory |
UI 体验 |
用于帐户和资源管理的 Azure 门户 用于模型探索和微调的 Azure OpenAI Service Studio |
区域可用性 |
美国东部 美国中南部 西欧 |
内容筛选 |
使用自动化系统根据内容策略评估提示和完成情况。 将筛选高严重性内容。 |
1.2 负责任的 AI
Microsoft 致力于遵照“以人为本”的原则推动 AI 的进步。 生成性模型(例如 Azure OpenAI 中提供的模型)提供显著的潜在优势,但如果不经过精心设计和采用全方位的缓解措施,此类模型有可能会生成错误甚至有害的内容。 Microsoft 已做出大量投资来帮助防范滥用和意外损害,其中包括要求申请人展示妥善定义的用例、融入 Microsoft 的负责任 AI 使用原则、生成内容筛选器以支持客户,并向已加入的新客户提供负责任 AI 实施指导。
1.3 如何访问 Azure OpenAI?
由于需要应对很高的需求、即将推出的产品改进以及履行 Microsoft 对负责任 AI 做出的承诺,我们目前会限制访问。 当前,我们正在与已经同 Microsoft 建立了合作关系的客户、用例风险较低的客户以及承诺融入缓解措施的客户合作。 除了申请初始访问权限外,所有使用 Azure OpenAI 的解决方案都需要经历用例审查,然后才能发布用于生产用途。
一般而言,提交审批的方案的敏感程度越高,风险缓解措施就越重要。
1.3 比较 Azure OpenAI 和 OpenAI
Azure OpenAI 服务通过 OpenAI GPT-3、Codex 和 DALL-E 模型为客户提供高级语言 AI,并能够实现 Azure 的安全性和企业前景。 Azure OpenAI 与 OpenAI 共同开发 API,确保兼容性的同时能够实现二者之间的平稳过渡。
使用 Azure OpenAI,客户可在运行与 OpenAI 相同的模型时获得 Microsoft Azure 的安全功能。 Azure OpenAI 提供专用网络、区域可用性和负责任 AI 内容筛选功能。
1.4 关键概念
1.4.1 提示和补全
补全是 API 服务的核心组件。 此 API 提供对模型的文本输入、文本输出接口的访问。 用户只需提供一个包含英文文本命令的输入提示,模型就会生成文本补全。
下面是一个简单的提示和补全的示例:
提示:""" count to 5 in a for loop """
补全:for i in range(1, 6): print(i)
1.4.2 令牌(token)
Azure OpenAI 通过将文本分解为标记来处理文本。 标记可以是单词,也可以是字符块。 例如,单词“hamburger”将分解为标记“ham”、“bur”和“ger”,而“pear”之类的常见短单词只是一个单个标记。 许多标记以空格开头,例如“ hello”和“ bye”。
给定请求中处理的标记总数取决于输入、输出和请求参数的长度。 处理的标记数量也会影响模型的响应延迟和吞吐量。
1.4.3 资源
Azure OpenAI 是 Azure 上的一个新产品。 可以像在 Azure 订阅中使用任何其他可用于创建资源或服务实例的 Azure 产品一样开始使用 Azure OpenAI。
1.4.3 部署
创建 Azure OpenAI 资源后,必须先部署模型,然后才能开始发出 API 调用和生成文本。 可以使用部署 API 来完成此操作。 这些 API 允许指定要使用的模型。
1.4.4 上下文学习
Azure OpenAI 使用的模型使用生成调用期间提供的自然语言指令和示例来识别请求的任务和所需的技能。 使用此方法时,提示的第一个部分包括自然语言指令和/或所需特定任务的示例。 然后,模型通过预测概率最高的下一段文本来完成任务。 这种技术称为“上下文”学习。 在此步骤中不会重新训练这些模型,而是根据你在提示中包含的上下文做出预测。
上下文学习有三种主要方法:少样本学习、单样本学习和零样本学习。 这些方法根据提供给模型的任务特定数据量而异:
-
少样本学习
在这种情况下,用户在调用提示中包含几个示例来演示预期的答案格式和内容。 以下示例显示了几个提示,我们在其中提供了多个示例(模型将生成最后一个答案):
Convert the questions to a command:
Q: Ask Constance if we need some bread.
A: send-msg `find constance` Do we need some bread?
Q: Send a message to Greg to figure out if things are ready for Wednesday.
A: send-msg `find greg` Is everything ready for Wednesday?
Q: Ask Ilya if we're still having our meeting this evening.
A: send-msg `find ilya` Are we still having a meeting this evening?
Q: Contact the ski store and figure out if I can get my skis fixed before I leave on Thursday.
A: send-msg `find ski store` Would it be possible to get my skis fixed before I leave on Thursday?
Q: Thank Nicolas for lunch.
A: send-msg `find nicolas` Thank you for lunch!
Q: Tell Constance that I won't be home before 19:30 tonight — unmovable meeting.
A: send-msg `find constance` I won't be home before 19:30 tonight. I have a meeting I can't move.
Q: Tell John that I need to book an appointment at 10:30.
A:
示例数量通常为 0 到 100 个,具体取决于单个提示的最大输入长度可以容纳多少个示例。 最大输入长度可能因使用的特定模型而异。 少样本学习可以大大减少准确进行预测所需的任务特定数据量。 此方法的准确度通常不如微调的模型。
-
单样本学习
这种情况与少样本学习方法相同,不过只提供了一个示例。
-
零样本学习
在这种情况下,未向模型提供任何示例,而只提供了任务请求。
1.4.5 模型
该服务为用户提供对多种不同模型的访问。 每种模型提供不同的功能和价位。 GPT-3 基础模型按功能降序和速度升序顺序分别称为 Davinci、Curie、Babbage 和 Ada。
Codex 系列模型是 GPT-3 的后代,并且已基于自然语言和代码进行训练,可为自然语言到代码用例提供支持。 在模型概念页上详细了解每个模型。
二. Azure OpenAI 服务配额和限制
2.1 配额和限制参考
以下部分提供了适用于 Azure OpenAI 配额和限制的快速指南:
限制名称 |
限制值 |
每个区域的 OpenAI 资源 |
2 |
每个模型每分钟的请求数* |
Davinci 模型(002 及更高版本):120 所有其他模型:300 |
每个模型每分钟的标记数* |
Davinci 模型(002 及更高版本):40,000 所有其他模型:120,000 |
最大微调模型部署* |
2 |
能够将同一模型部署到多个部署 |
不允许 |
每个资源的训练作业总数 |
100 |
每个资源同时运行训练作业的最大数目 |
1 |
排队的最大训练作业数 |
20 |
每个资源的最大文件数 |
50 |
每个资源的所有文件的总大小 |
1 GB |
最大训练作业时间(如果超过,作业将失败) |
120 小时 |
最大训练作业大小(训练文件中的标记数)×(时期数) |
Ada:40-M 令牌 Babbage:40-M 令牌 Curie:40-M 令牌 Cushman:40-M 令牌 Davinci:10-M |
三. Azure OpenAI 服务模型
3.1 模型系列
通过 Azure OpenAI 可使用很多不同模型,这些模型按系列和功能分组。
模型系列通常按其预期任务关联模型。
下表介绍了 Azure OpenAI 中当前可用的模型系列。 目前并非所有模型都可在所有区域中使用。
模型系列 |
说明 |
GPT-3 |
可以理解和生成自然语言的模型系列。 |
Codex |
可以理解和生成代码(包括将自然语言翻译为代码)的模型系列。 |
嵌入 |
一组可以理解和使用嵌入的模型。 嵌入是一种特殊的数据表示格式,可由机器学习模型和算法轻松使用。 嵌入是一段文本的语义含义的信息密集表示。 目前,我们提供了三个系列的嵌入模型以实现不同的功能:相似性、文本搜索和代码搜索。 |
3.2 模型功能
每个模型系列都有一系列模型,这些模型按功能进一步区分。 这些功能通常由名称标识,并且这些名称的字母顺序通常指示给定模型系列中该模型的相对功能和成本。
例如,GPT-3 模型使用 Ada、Babbage、Curie 和 Davinci 等名称来指示相对功能和成本。
Davinci 比 Curie 功能更强大(且成本更高),而 Curie 又比 Babbage 功能更强大(且成本更高),依此类推。
备注
功能较低的模型(如 Ada)可执行的任何任务都可以由功能较高的模型(如 Curie 或 Davinci)执行。
3.3 命名约定
Azure OpenAI 的模型名称通常对应于以下标准命名约定:
{capability}-{family}[-{input-type}]-{identifier}
元素 |
说明 |
{capability} |
|
{family} |
模型的相关系列。 例如,GPT-3 模型包括 ada、babbage、curie 和 davinci。 |
{input-type} |
(仅限嵌入模型)模型支持的嵌入的输入类型。 例如,文本搜索嵌入模型支持 doc 和 query。 |
{identifier} |
模型的版本标识符。 |
例如,我们最强大的 GPT-3 模型称为 text-davinci-003,而我们最强大的 Codex 模型称为 code-davinci-002。
名为 ada、babbage、curie 和 davinci 的旧版 GPT-3 模型不遵循标准命名约定,它们主要用于微调(借助 Azure OpenAI 服务,你可以使用称为微调的过程根据个人数据集定制模型)
3.4 查找可用的模型
可以使用模型列表 API 获取 Azure OpenAI 资源可用于推理和微调的模型列表。
3.5 查找适当的模型
建议从模型系列中功能最强大的模型开始,以确认模型功能是否满足你的要求。 然后可以继续使用该模型,也可以迁移到功能和成本较低的模型,围绕此模型的功能进行优化。
3.6 GPT-3 模型
GPT-3 模型可以理解和生成自然语言。 该服务提供四个模型功能,每个都有不同级别的能力以及适用于不同任务的速度。 Davinci 是功能最强大的模型,而 Ada 是速度最快的模型。 模型排序(按功能从高到低的顺序):
-
text-davinci-003
-
text-curie-001
-
text-babbage-001
-
text-ada-001
虽然 Davinci 能力最强,但其他模型提供了显着的速度优势。 我们的建议是让用户在试验时从 Davinci 开始,因为它能产生最佳结果并验证 Azure OpenAI 可以提供的价值。 原型正常工作后,就可以优化模型选择,为应用程序实现最佳延迟/性能平衡。
3.6.1 Davinci(达芬奇)
Davinci 是功能最强大的模型,可以执行其他模型能够执行的任何任务,并且所用的指令通常更少。 对于需要深入理解内容的应用程序(例如面向特定受众的摘要和创意内容的生成),Davinci 将产生最佳结果。 Davinci 提供的这些增加的功能需要更多计算资源,因此 Davinci 的成本更高,并且 Davinci 不如其他模型快。
Davinci 擅长的另一个领域是理解文本的意图。 Davinci 擅长解决多种逻辑问题并解释字符动机。 Davinci 已经能够解决一些涉及因果关系的最具挑战性的 AI 问题。
用途:复杂的意图、因果关系、受众摘要
3.6.2 Curie(居里)
Curie 功能强大,但速度很快。 虽然 Davinci 在分析复杂文本方面更强大,但 Curie 可以执行许多精细化的任务,例如情绪分类和摘要。 Curie 也善于回答问题和执行问答,适合用作常规服务聊天机器人。
用途:语言翻译、复杂分类、文本情绪、摘要
3.6.3 Babbage(巴贝奇)
Babbage 可以执行简单的分类等简单任务。 在语义搜索方面,它的功能也很强大,可对文档与搜索查询的匹配程度进行排名。
用途:中等分类、语义搜索分类
3.6.4 Ada(艾达)
Ada 通常是最快的模型,可以执行的任务有分析文本、地址更正和不需要太多细微差别的某些分类任务等等。 Ada 的性能通常可以通过提供更多上下文来改进。
用途:分析文本、简单分类、地址更正、关键字
3.7 Codex 模型
Codex 模型是基模型 GPT-3 的子代,可以理解和生成代码。 它们的训练数据包含自然语言和来自 GitHub 的数十亿行公开代码。
它们最擅长 Python,并且精通十几种语言,包括 C#、JavaScript、Go、Perl、PHP、Ruby、Swift、TypeScript、SQL 和 Shell。 Codex 模型排序(按功能从高到低的顺序):
-
code-davinci-002
-
code-cushman-001
Davinci
类似于 GPT-3,Davinci 是功能最强大的 Codex 模型,可以执行其他模型能够执行的任何任务,并且所用的指令通常更少。 对于需要深入了解内容的应用程序,Davinci 会生成最佳结果。 更强的功能需要更多计算资源,因此 Davinci 的成本更高,并且不如其他模型快。
Cushman(库什曼)
Cushman 功能强大,但速度很快。 虽然 Davinci 在分析复杂任务方面更强大,但 Cushman 是能够执行许多代码生成任务的模型。 Cushman 通常也比 Davinci 运行速度更快、成本更低。
3.8 嵌入模型(搜索&算法&机器学习)
3.8.1 嵌入模型系列
嵌入是一种特殊的数据表示格式,可由机器学习模型和算法轻松使用。
嵌入是一段文本的语义含义的信息密集表示。 每个嵌入是浮点数的一个向量,向量空间中两个嵌入之间的距离与原始格式的两个输入之间的语义相似性相关。
例如,如果两个文本相似,则它们的向量表示形式也应该相似。
每个系列都包含某一功能范围的模型。 以下列表根据模型功能指示服务返回的数字向量长度:
-
Ada:1024 个维度
-
Babbage:2048 个维度
-
Curie:4096 个维度
-
Davinci:12288 个维度
Davinci 功能最强,但比其他模型更慢更贵。 Ada 功能最弱,但速度更快且更成本更低。
3.8.2 相似性嵌入
此类模型擅长捕获两个或更多文本片段之间的语义相似性。
用例 |
模型 |
聚类分析、回归、异常情况检测、可视化 |
text-similarity-ada-001 text-similarity-babbage-001 text-similarity-curie-001 text-similarity-davinci-001 |
文本搜索嵌入
此类模型有助于度量长文档是否与短搜索查询相关。 此系列支持两种输入类型:doc(用于嵌入要检索的文档)和 query(用于嵌入搜索查询)。
用例 |
模型 |
搜索、上下文相关性、信息检索 |
text-search-ada-doc-001 text-search-ada-query-001 text-search-babbage-doc-001 text-search-babbage-query-001 text-search-curie-doc-001 text-search-curie-query-001 text-search-davinci-doc-001 text-search-davinci-query-001 |
代码搜索嵌入
与文本搜索嵌入模型类似,此系列支持两种输入类型:code(用于嵌入要检索的代码片段)和 text(用于嵌入自然语言搜索查询)。
用例 |
模型 |
代码搜索和相关性 |
code-search-ada-code-001 code-search-ada-text-001 code-search-babbage-code-001 code-search-babbage-text-001 |
使用嵌入模型时,请注意其限制和风险。
3.9 模型摘要表和区域可用性
3.9.1 GPT-3 模型
模型 ID |
支持补全 |
支持嵌入 |
基本模型区域 |
微调区域 |
ada |
是 |
否 |
空值 |
美国东部2、美国中南部、欧洲西部 |
text-ada-001 |
是 |
否 |
美国东部2、美国中南部、欧洲西部 |
空值 |
babbage |
是 |
否 |
空值 |
美国东部2、美国中南部、欧洲西部 |
text-babbage-001 |
是 |
否 |
美国东部2、美国中南部、欧洲西部 |
空值 |
curie |
是 |
否 |
空值 |
美国东部2、美国中南部、欧洲西部 |
text-curie-001 |
是 |
否 |
美国东部2、美国中南部、欧洲西部 |
空值 |
davinci1 |
是 |
否 |
空值 |
美国东部2、美国中南部、欧洲西部 |
text-davinci-001 |
是 |
否 |
美国中南部、欧洲西部 |
空值 |
text-davinci-002 |
是 |
否 |
美国东部、美国中南部、欧洲西部 |
空值 |
text-davinci-003 |
是 |
否 |
美国东部 |
空值 |
text-davinci-fine-tune-0021 |
是 |
否 |
空值 |
美国东部、西欧 |
1 仅能通过请求获取该模型。 目前,我们不接受使用该模型的新请求。 2 由于需求高,美国东部区域的新用户目前无法进行微调。 请使用美国中南部区域进行位于美国的训练。
3.9.2 Codex 模型
模型 ID |
支持补全 |
支持嵌入 |
基本模型区域 |
微调区域 |
code-cushman-0011 |
是 |
否 |
美国中南部、欧洲西部 |
美国东部2、美国中南部、欧洲西部 |
code-davinci-002 |
是 |
否 |
美国东部、西欧 |
空值 |
code-davinci-fine-tune-0021 |
是 |
否 |
空值 |
美国东部2、西欧 |
1 仅能通过请求将该模型用于微调。 目前,我们不接受微调该模型的新请求。 2 由于需求高,美国东部区域的新用户目前无法进行微调。 请使用美国中南部区域进行位于美国的训练。
3.9.3 嵌入模型
模型 ID |
支持补全 |
支持嵌入 |
基本模型区域 |
微调区域 |
text-ada-embeddings-002 |
否 |
是 |
美国东部、美国中南部、欧洲西部 |
空值 |
text-similarity-ada-001 |
否 |
是 |
美国东部、美国中南部、欧洲西部 |
空值 |
text-similarity-babbage-001 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
text-similarity-curie-001 |
否 |
是 |
美国东部、美国中南部、欧洲西部 |
空值 |
text-similarity-davinci-001 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
text-search-ada-doc-001 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
text-search-ada-query-001、 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
text-search-babbage-doc-001 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
text-search-babbage-query-001 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
text-search-curie-doc-001 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
text-search-curie-query-001 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
text-search-davinci-doc-001 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
text-search-davinci-query-001 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
code-search-ada-code-001 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
code-search-ada-text-001 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
code-search-babbage-code-001 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
code-search-babbage-text-001 |
否 |
是 |
美国中南部、欧洲西部 |
空值 |
四. 定价详细信息:
4.1 Language models
模型 |
Per 1,000 tokens |
标准 |
|
Text-Ada |
$0.0004 |
Text-Babbage |
$0.0005 |
Text-Curie |
$0.002 |
Text-Davinci |
$0.02 |
Code-Cushman |
$0.024 |
Code-Davinci |
$0.10 |
ChatGPT (gpt-3.5-turbo) |
$0.002 |
4.2 Image models(图片生成模型)
模型 |
Per 100 images |
标准 |
|
Dall-E |
$2 |
4.3 Fine-tuned models(微调的模型)
模型 |
Per 1,000 tokens |
标准 |
|
Text-Ada |
$0.0004 |
Text-Babbage |
$0.0005 |
Text-Curie |
$0.002 |
Text-Davinci |
$0.02 |
Code-Cushman |
$0.024 |
模型 |
Training per compute hour |
标准 |
|
Text-Ada |
$20 |
Text-Babbage |
$22 |
Text-Curie |
$24 |
Text-Davinci |
$84 |
Code-Cushman |
$26 |
模型 |
Hosting per hour |
标准 |
|
Text-Ada |
$0.05 |
Text-Babbage |
$0.08 |
Text-Curie |
$0.24 |
Text-Davinci |
$3 |
Code-Cushman |
$0.54 |
4.4 Embedding models
模型 |
Per 1,000 tokens |
标准 |
|
Ada |
$0.0004 |
Babbage |
$0.005 |
Curie |
$0.02 |
Davinci |
$0.20 |
备注
本文内容来自微软官方,个人只是做了一些简单的整理和标注,顺便分享给有兴趣的同学。