概述 Azure OpenAI 和文本补全
Azure OpenAI 服务提供对 OpenAI 强大语言模型(包括 GPT-3.5 和 GPT-4 模型系列)的 REST API 访问。 这些模型可以轻松适应特定的任务,包括但不限于内容生成、汇总、语义搜索和自然语言到代码的转换。
除了进行 REST API 访问,还可以使用 .NET SDK 来访问 Azure OpenAI 服务。 这就是我们将用来构建应用程序的内容。 但在构建应用程序之前,让我们先来更多地了解一下什么是 Azure OpenAI 以及什么是文本补全。 了解这一点将为我们奠定使用 AI 构建令人惊叹的应用程序所需的基础。
Azure OpenAI 概述
Azure OpenAI 服务通过 OpenAI GPT-3.5、GPT-4、Codex 和 DALL-E 模型为客户提供高级语言 AI,并能够实现 Azure 的安全性和企业承诺。 Azure OpenAI 与 OpenAI 共同开发 API,在确保兼容性的同时,又能够确保实现二者之间的平稳过渡。
使用 Azure OpenAI,客户可在运行与 OpenAI 相同的模型时获得 Microsoft Azure 的安全功能。 Azure OpenAI 提供专用网络、区域可用性、负责任的 AI 内容筛选,以及使用你自己的数据扩展模型的功能。
补全终结点是 API 服务的核心组件。 此 API 提供对模型的文本输入、文本输出接口的访问。 用户只需提供一个包含英文文本命令的输入提示,模型就会生成文本补全内容。
文本补全
在本单元中,我们将了解文本补全。 补全终结点可用于各种任务。 它为所有 Azure OpenAI 模型提供一个简单但功能强大的文本输入和文本输出接口。 输入一些文本作为提示,模型就会生成文本补全内容,试图匹配你提供给它的任何上下文或模式。 例如,如果你给 API 的提示为“正如笛卡尔所说,我思故”,它很有可能返回补全内容“我在”。
你看到的实际补全结果可能会有所不同,因为默认情况下 AI 的答案是随机的。 换句话说,每次调用它时,你都可能会得到略有不同的补全,即使提示保持不变。
这个简单的“文本输入、文本输出”接口意味着,你可以提供说明或仅提供几个想要的操作示例来给模型"编程"。 是否成功通常取决于任务的复杂度和提示的质量。 一般规则是考虑如何写出一道能让年轻的学生解决的应用题。 写得好的提示可提供足够的信息,便于模型了解你想要什么以及它应该如何回复。
稍后我们将了解如何撰写良好的提示,但现在,让我们看看不同类型的补全。
Azure OpenAI 补全的类型
如前所述,你向 Azure OpenAI API 传递提示,该提示提供有关你希望其执行的操作的指令。 你可以让它执行一些操作,例如对文本进行分类、产生想法,甚至将文本转换成表情符号。
分类
对于第一种补全类型,让我们深入了解如何使用指令对模型进行“编程”。
你可以告知模型,你希望它将数据分类为预定义的类别。 此补全类型称为“分类”。
例如,可以向补全 API 传递类似于以下内容的指令或提示:
This is a sentiment classifier
Example: "I loved the new movie!"
Sentiment: Positive
Example: "I hate it when my phone battery dies"
Sentiment: Negative
Example: "My day has been 👍"
Sentiment: Positive
Example: "This is the link to the article"
Sentiment: Neutral
Examples:
1. "I loved the new Batman movie!"
2. "I hate it when my phone battery dies"
3. "My day has been 👍"
4. "This is the link to the article"
5. "This new music video blew my mind"
Examples sentiment ratings:
1: Positive
2: Negative
3: Positive
4: Neutral
5: Positive
Create sentiments for:
1. "I can't stand homework"
2. "This is no fun. I'm bored 😠"
3. "I can't wait for Halloween!!!"
4. "My cat is adorable ❤️❤️"
5. "I hate chocolate"
Sentiment classifications:
1.
在向模型显示 4 个按情绪分类的句子示例后,我们为其提供一个示例列表,然后提供一个具有相同编号索引的情绪评分列表。 API 能够从中了解应该如何输出分类情绪。
因此,我们想要模型执行这样的操作:我们给它 5 种将由其分类的情绪,然后它就应该以已排序列表的形式输出每个情绪的分类。
因此,只需对模型进行一次调用,模型即可对五个(甚至更多个)示例进行评分。
你现在可以开始了解如何在编程语言中将提示或文本传递给模型。
代系
在可以使用各种 GPT 模型完成的任务中,最强大但又最简单的任务之一是生成新的想法或输入版本。 你可以为此模型提供一个包含一些故事想法的列表,它会尝试将内容添加到该列表中。 我们看到只需为它提供一些示例,它就可以创建商业计划、人物描述和营销口号。
对话
此模型非常擅长与人类甚至它自己进行对话。 只需几行指令,就能看到此模型表现得像一个客服聊天机器人,它可以智能地回答问题,毫不慌乱;又像是一位聪明的对话伙伴,会讲笑话和双关语。
转换
此模型是一种语言模型,它熟悉使用单词和字符表达信息的各种方式。 从自然语言文本到代码和英语以外的其他语言,范围十分广泛。 此模型还能够对内容有一定程度的理解,从而能够以不同方式汇总、转换和表达内容。
翻译
此模型已经掌握了多种语言(例如法语),因此你不需教它, 而只需在提示中为它提供足够的翻译示例,这样它就知道是要从一种语言翻译成另一种语言。
转换
在此示例中,我们将电影名称转换为表情符号。 这展示了此模型在学习各种模式和处理其他字符方面的适应能力。
在这里,我们期望输出是《蜘蛛侠》这部电影的表情符号表示形式。
Back to Future: 👨👴🚗🕒
Batman: 🤵🦇
Transformers: 🚗🤖
Wonder Woman: 👸🏻👸🏼👸🏽👸🏾👸🏿
Spider-Man: 🕸🕷🕸🕸🕷🕸
Winnie the Pooh: 🐻🐼🐻
The Godfather: 👨👩👧🕵🏻♂️👲💥
Game of Thrones: 🏹🗡🗡🏹
Spider-Man:
汇总
此模型能够掌握文本上下文,并以不同的方式改述文本。 例如,它可以采用文本块并创建儿童可以理解的解释。
Completion
尽管所有提示都可以得到补全,但如果你希望此模型从停止的位置继续,将文本补全视为它自己的任务可能会有所帮助。 例如,如果给出此提示,此模型会延续垂直农业的思路。
Vertical farming provides a novel solution for producing food locally, reducing transportation costs and
真实的回复
大型语言模型 (LLM) 拥有从训练数据中学到的大量知识。 它们还能够提供听起来真实但实际上是编造的回复。 有两种方法可以限制 LLM 编造答案的可能性。
1. 为 API 提供一个基本事实:如果你为此模型提供一篇文字来回答相关问题(比如维基百科条目),它就不太可能虚构出一个回复。
2. 使用低概率并向 API 展示如何说“我不知道”:如果此模型知道在不太确定如何回复的情况下说“我不知道”或类似的话语是合适的,它将不太倾向于编造答案。
在此示例中,我们向此模型提供了它知道的问题和答案的示例,然后列举了它不知道的事情并用问号回复。 我们还将概率设置为 0,这样一来,如果有任何疑问,此模型就更有可能回复“?”。
Q: Who is Batman?
A: Batman is a fictional comic book character.
Q: What is torsalplexity?
A: ?
Q: What is Devz9?
A: ?
Q: Who is George Lucas?
A: George Lucas is American film director and producer famous for creating Star Wars.
总结
Azure OpenAI 服务提供对 OpenAI 强大语言模型(包括 GPT-3.5 和 GPT-4 模型系列)的 REST API 访问。 它还为你提供了 Azure 云中你所依赖的安全性和企业功能。
OpenAI 语言模型中最有用的功能之一是文本补全。 你传入希望模型执行的操作的提示或简单语言描述之后,它就可以执行文本分类、文本生成或文本摘要等任务。