了解如何生成或操作文本

本文介绍了AzureOpenAI服务的完成端点,如何通过精心设计的提示引导模型进行文本分类、情绪分析、对话生成和代码编写。文章强调了清晰表达意图、提供高质量示例和调整概率设置的重要性,以及如何使用Codex模型进行代码生成。
摘要由CSDN通过智能技术生成

在本文中

  1. 设计提示
  2. 对文本进行分类
  3. 触发想法
  4. 进行对话
  5. 变换文本
  6. 完成部分文本和代码输入
  7. 生成事实回应
  8. 使用代码
  9. 下一步

Azure OpenAI 服务提供了可用于各种任务的完成端点。该端点为任何Azure OpenAI 模型提供简单但功能强大的文本输入、文本输出界面。要触发完成,您需要输入一些文本作为提示。该模型生成补全并尝试匹配您的上下文或模式。假设您向 API 提供提示“正如笛卡尔所说,我认为,因此”。对于此提示,Azure OpenAI 很有可能返回完成端点“我是”。

开始探索完成情况的最佳方式是通过Azure OpenAI Studio中的游乐场。这是一个简单的文本框,您可以在其中输入提示以生成完成。您可以从一个简单的提示开始,如下所示:

输入提示后,Azure OpenAI 将显示完成信息:

您看到的完成结果可能会有所不同,因为 Azure OpenAI API 会为每次交互生成新的输出。即使您的提示保持不变,每次调用 API 时您可能会得到略有不同的完成结果。您可以通过Temperature设置来控制此行为。

简单的文本输入、文本输出界面意味着您可以通过提供说明或您希望它执行的操作的几个示例来“编程”Azure OpenAI 模型。输出的成功通常取决于任务的复杂性和提示的质量。一般规则是考虑如何为十几岁前的学生写一个文字问题来解决。写得好的提示可以为模型提供足够的信息,让其知道您想要什么以及它应该如何响应。

 笔记

每种模型类型的模型训练数据可能不同。最新模型的训练数据目前仅延续到 2021 年 9 月。根据您的提示,模型可能不了解相关的当前事件。

设计提示

Azure OpenAI 服务模型可以执行从生成原始故事到执行复杂文本分析的所有操作。因为它们可以做很多事情,所以你必须明确地展示你想要什么。展示,而不仅仅是讲述,往往是良好提示的秘诀。

模型尝试根据提示预测您想要什么。如果您输入提示“给我一份猫品种列表”,该模型不会自动假设您只需要一个列表。您可能会在开始对话时说的第一句话是“给我一份猫品种列表”,然后是“我会告诉您我喜欢哪些品种”。如果模型仅假设您想要一个猫列表,那么它在内容创建、分类或其他任务方面就不会那么好。

创建强大提示的指南

创建有用提示的三个基本准则:

  • 展示和讲述。通过说明、示例或两者的结合来明确您想要什么。如果您希望模型按字母顺序对项目列表进行排名或按情绪对段落进行分类,请在提示中包含这些详细信息以显示模型。

  • 提供优质数据。如果您尝试构建分类器或让模型遵循某种模式,请确保有足够的示例。请务必校对您的示例。该模型足够智能,可以解决基本的拼写错误并为您提供有意义的响应。相反,模型可能会假设错误是故意的,这可能会影响响应。

  • 检查您的设置。概率设置(例如TemperatureTop P)控制模型生成响应的确定性。如果您要求的响应只有一个正确答案,则应为这些设置指定较低的值。如果您正在寻找不明显的响应,您可能需要使用更高的值。用户在使用这些设置时最常犯的错误是假设他们控制模型响应中的“聪明”或“创造力”。

针对提示问题进行故障排除

如果您在使 API 按预期执行时遇到问题,请检查以下实施要点:

  • 明确目标一代应该是什么吗?
  • 有足够的例子吗?
  • 你检查过你的例子是否有错误吗?(API 不会直接告诉您。)
  • 您是否正确使用TemperatureTop P概率设置?

对文本进行分类

要使用 API 创建文本分类器,您需要提供任务描述并提供一些示例。在此演示中,您将向 API 展示如何对文本消息的情绪进行分类。情感表达了文本中的整体感受或表达

此演示展示了 API 如何按情绪对文本消息进行分类。您提供消息的编号列表和具有相同数字索引的情绪评级列表。API 使用第一个演示中的信息来学习如何对单个文本消息的情绪进行分类。在第二个演示中,模型学习如何将情感分类应用于文本消息列表。这种方法允许 API 在一次 API 调用中对五条(甚至更多)短信进行评分。

重要的

当您要求 API 创建列表或评估文本时,帮助 API 避免偏差非常重要。以下是一些需要遵循的要点:

  • Top P请特别注意或概率设置的值Temperature
  • 运行多次测试以确保您的概率设置正确校准。
  • 不要使用长列表。长列表可能会导致漂移。

触发想法

使用 API 可以完成的最强大但最简单的任务之一是生成新的想法或输入版本。假设您正在写一本悬疑小说,并且需要一些故事创意。您可以向 API 提供一些想法的列表,它会尝试向您的列表添加更多想法。该 API 可以通过少量示例创建商业计划、角色描述、营销口号等等。

在下一个演示中,您将使用 API 创建更多示例,了解如何在课堂上使用虚拟现实

此演示为 API 提供了列表的基本描述以及一个列表项。然后您使用不完整的提示“2”。触发 API 的响应。API 将不完整的条目解释为生成类似项目并将其添加到您的列表中的请求。

触发想法的指南

尽管此演示使用了简单的提示,但它强调了触发新想法的几个准则:

  • 解释该列表的意图。与文本分类器的演示类似,您首先要告诉 API 列表的内容。这种方法有助于 API 专注于完成列表,而不是尝试通过分析文本来确定模式。

  • 设置列表中项目的模式。当您提供一句话描述时,API 会在为列表生成新项目时尝试遵循该模式。如果您想要更详细的响应,则需要通过向 API 输入更详细的文本来建立该意图。

  • 用不完整的条目提示API以触发新的想法。当 API 遇到看起来不完整的文本(例如提示文本“2.”)时,它首先尝试确定可能完成输入的任何文本。因为演示有一个列表标题和一个带有数字“1”的示例。和随附文本,API 解释了不完整的提示文本“2”。作为继续向列表添加项目的请求。

  • 探索先进的生成技术。您可以通过在提示中制作更长、更多样化的列表来提高响应的质量。一种方法是从一个示例开始,让 API 生成更多示例,然后选择您最喜欢的示例并将它们添加到列表中。示例中的一些高质量变体可以显着提高响应的质量。

进行对话

从GPT-35-Turbo 和 GPT-4的发布开始,我们建议您使用支持聊天完成端点的模型来创建对话生成和聊天机器人。聊天完成模型和端点需要与完成端点不同的输入结构。

API 擅长与人类甚至与自身进行对话。只需几行指令,该 API 就可以充当客户服务聊天机器人,智能地回答问题而不会慌乱,或者充当聪明的对话伙伴,讲笑话和双关语。关键是告诉 API 它应该如何表现,然后提供一些示例。

在此演示中,API 充当人工智能回答问题的角色:

The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.

Human: Hello, who are you?
AI: I am an AI created by OpenAI. How can I help you today?
Human:

让我们看一下名为“Cramer”的聊天机器人的变体,它是一个有趣且有点帮助的虚拟助手。为了帮助 API 了解角色的特征,您提供了一些问题和答案的示例。只需要一些讽刺性的响应,API 就可以识别该模式并提供无数的类似响应。

Cramer is a chatbot that reluctantly answers questions.

###
User: How many pounds are in a kilogram?
Cramer: This again? There are 2.2 pounds in a kilogram. Please make a note of this.
###
User: What does HTML stand for?
Cramer: Was Google too busy? Hypertext Markup Language. The T is for try to ask better questions in the future.
###
User: When did the first airplane fly?
Cramer: On December 17, 1903, Wilbur and Orville Wright made the first flights. I wish they'd come and take me away.
###
User: Who was the first man in space?
Cramer:

对话设计指南

我们的演示展示了如何轻松创建能够进行对话的聊天机器人。虽然看起来很简单,但这种方法遵循几个重要的准则:

  • 定义对话的意图。就像其他提示一样,您可以向 API 描述交互的意图。在这种情况下,“对话”。此输入准备 API 根据初始意图处理后续输入。

  • 告诉 API 如何表现。此演示中的一个关键细节是关于 API 应如何交互的明确说明:“助手很有帮助、富有创意、聪明且非常友好。” 如果没有您的明确指示,API 可能会迷失方向并模仿与其交互的人类。API 可能会变得不友好或表现出其他不良行为。

  • 给 API 一个身份。一开始,您让 API 作为 OpenAI 创建的 AI 进行响应。虽然 API 没有内在身份,但字符描述可帮助 API 以尽可能接近事实的方式做出响应。您可以通过其他方式使用角色身份描述来创建不同类型的聊天机器人。如果您让 API 以生物学研究科学家的身份做出回应,您会收到来自 API 的明智且深思熟虑的评论,类似于您对具有该背景的人的期望。

变换文本

API 是一种语言模型,熟悉单词和字符标识用于表达信息的各种方式。知识数据支持将文本从自然语言转换为代码,以及其他语言和英语之间的翻译。API 还能够在一定程度上理解内容,从而能够以不同的方式总结、转换和表达内容。让我们看几个例子。

从一种语言翻译成另一种语言

此演示指导 API 如何将英语短语转换为法语:

Cramer is a chatbot that reluctantly answers questions.

###
User: How many pounds are in a kilogram?
Cramer: This again? There are 2.2 pounds in a kilogram. Please make a note of this.
###
User: What does HTML stand for?
Cramer: Was Google too busy? Hypertext Markup Language. The T is for try to ask better questions in the future.
###
User: When did the first airplane fly?
Cramer: On December 17, 1903, Wilbur and Orville Wright made the first flights. I wish they'd come and take me away.
###
User: Who was the first man in space?
Cramer:

对话设计指南

我们的演示展示了如何轻松创建能够进行对话的聊天机器人。虽然看起来很简单,但这种方法遵循几个重要的准则:

  • 定义对话的意图。就像其他提示一样,您可以向 API 描述交互的意图。在这种情况下,“对话”。此输入准备 API 根据初始意图处理后续输入。

  • 告诉 API 如何表现。此演示中的一个关键细节是关于 API 应如何交互的明确说明:“助手很有帮助、富有创意、聪明且非常友好。” 如果没有您的明确指示,API 可能会迷失方向并模仿与其交互的人类。API 可能会变得不友好或表现出其他不良行为。

  • 给 API 一个身份。一开始,您让 API 作为 OpenAI 创建的 AI 进行响应。虽然 API 没有内在身份,但字符描述可帮助 API 以尽可能接近事实的方式做出响应。您可以通过其他方式使用角色身份描述来创建不同类型的聊天机器人。如果您让 API 以生物学研究科学家的身份做出回应,您会收到来自 API 的明智且深思熟虑的评论,类似于您对具有该背景的人的期望。

变换文本

API 是一种语言模型,熟悉单词和字符标识用于表达信息的各种方式。知识数据支持将文本从自然语言转换为代码,以及其他语言和英语之间的翻译。API 还能够在一定程度上理解内容,从而能够以不同的方式总结、转换和表达内容。让我们看几个例子。

从一种语言翻译成另一种语言

 

此演示指导 API 如何将英语短语转换为法语:

English: I do not speak French.
French: Je ne parle pas français.
English: See you later!
French: À tout à l'heure!
English: Where is a good restaurant?
French: Où est un bon restaurant?
English: What rooms do you have available?
French: Quelles chambres avez-vous de disponible?
English:

此示例之所以有效,是因为 API 已经掌握了法语。您无需尝试向 API 教授该语言。您只需要提供足够的示例来帮助 API 理解您从一种语言转换为另一种语言的请求。

如果您想将英语翻译成 API 无法识别的语言,您需要为 API 提供更多示例以及可以生成流畅翻译的微调模型。

在文本和表情符号之间转换

此演示将电影名称从文本转换为表情符号字符。此示例展示了 API 拾取模式并与其他字符一起使用的适应性。

Carpool Time: 👨👴👩🚗🕒
Robots in Cars: 🚗🤖
Super Femme: 👸🏻👸🏼👸🏽👸🏾👸🏿
Webs of the Spider: 🕸🕷🕸🕸🕷🕸
The Three Bears: 🐻🐼🐻
Mobster Family: 👨👩👧🕵🏻‍♂️👲💥
Arrows and Swords: 🏹🗡🗡🏹
Snowmobiles:

总结文本

API 可以掌握文本的上下文并以不同的方式重新表述。在此演示中,API 采用一段文本并创建小学年龄儿童可以理解的解释。这个例子说明了API对语言的掌握很深。

My ten-year-old asked me what this passage means:
"""
A neutron star is the collapsed core of a massive supergiant star, which had a total mass of between 10 and 25 solar masses, possibly more if the star was especially metal-rich.[1] Neutron stars are the smallest and densest stellar objects, excluding black holes and hypothetical white holes, quark stars, and strange stars.[2] Neutron stars have a radius on the order of 10 kilometres (6.2 mi) and a mass of about 1.4 solar masses.[3] They result from the supernova explosion of a massive star, combined with gravitational collapse, that compresses the core past white dwarf star density to that of atomic nuclei.
"""

I rephrased it for him, in plain language a ten-year-old can understand:
"""

生成文本摘要的指南

文本摘要通常涉及向 API 提供大量文本。为了帮助防止 API 在处理大块文本后发生漂移,请遵循以下准则:

  • 将要摘要的文本括在三个双引号内。在此示例中,您在要摘要的文本块之前和之后的单独行中输入三个双引号 (""")。此格式样式明确定义了要处理的大文本块的开始和结束。

  • 在摘要之前和之后解释摘要意图和目标受众。请注意,此示例与其他示例不同,因为您向 API 提供了两次指令:在要处理的文本之前和之后。冗余指令有助于 API 专注于您的预期任务并避免漂移。

完成部分文本和代码输入

虽然所有提示都会导致完成,但在您希望 API 从您上次停下的地方继续的情况下,将文本完成视为自己的任务会很有帮助。

在此演示中,您向 API 提供的文本提示似乎不完整。您将文本输入停止在单词“and”上。API 将不完整的文本解释为继续您的思路的触发器。

Console

Vertical farming provides a novel solution for producing food locally, reducing transportation costs and

下一个演示将展示如何使用完成功能来帮助编写React代码组件。您首先向 API 发送一些代码。您可以使用左括号停止代码输入(。API 将不完整的代码解释为完成HeaderComponent常量定义的触发器。API可以完成这段代码定义,因为它了解相应的React库。

生成完成的指南

以下是使用 API 生成文本和代码完成的一些有用指南:

  • 降低温度以保持 API 集中。为该Temperature设置设置较低的值,以指示 API 提供专注于提示中描述的意图的响应。

  • 升高温度以使 API 相切。为该Temperature设置设置较高的值,以允许 API 以与提示中描述的意图无关的方式进行响应。

  • 使用 GPT-35-Turbo 和 GPT-4 Azure OpenAI 模型。对于涉及理解或生成代码的任务,Microsoft 建议使用GPT-35-TurboGPT-4Azure OpenAI 模型。这些模型使用新的聊天完成格式

生成事实回应

API 已经学习了基于训练期间审查的实际数据的知识。它使用这些学习到的数据来形成其响应。然而,API 还能够以听起来真实但实际上是捏造的方式进行响应。

您可以通过多种方法来限制 API 根据您的输入做出答案的可能性。您可以定义真实响应的基础,以便 API 根据您的数据起草其响应。您还可以设置一个低Temperature概率值,并向 API 展示当数据无法提供实际答案时如何响应。

以下演示展示了如何教导 API 以更真实的方式进行回复。您向 API 提供其理解的问题和答案示例。您还提供了它可能无法识别的问题示例(“Q”),并使用问号作为答案(“A”)输出。这种方法教会 API 如何回答它无法实际回答的问题。

作为一项保障措施,您将Temperature概率设置为零,以便 API 更有可能在对真实响应有任何疑问时以问号 (?) 进行响应。

Console

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 an American film director and producer famous for creating Star Wars.

Q: What is the capital of California?
A: Sacramento.

Q: What orbits the Earth?
A: The Moon.

Q: Who is Egad Debunk?
A: ?

Q: What is an atom?
A: An atom is a tiny particle that makes up everything.

Q: Who is Alvan Muntz?
A: ?

Q: What is Kozar-09?
A: ?

Q: How many moons does Mars have?
A: Two, Phobos and Deimos.

Q:

生成事实答复的指南

让我们回顾一下指南,以帮助限制 API 编造答案的可能性:

  • 为 API 提供基本事实。指导 API 使用什么作为根据您的意图创建真实响应的基础。如果您向 API 提供用于回答问题的文本正文(例如维基百科条目),则 API 不太可能伪造响应。

  • 使用概率较低。设置一个低Temperature概率值,以便 API 始终专注于您的意图,而不会转向创建捏造或捏造的响应。

  • 向 API 展示如何响应“我不知道”。您可以输入示例问题和答案,指导 API 对无法找到实际答案的问题使用特定答案。在示例中,您教 API 在找不到相应数据时以问号 (?) 进行响应。这种方法还可以帮助 API 了解何时回答“我不知道”比编造答案更“正确”。

使用代码

Codex 模型系列是 OpenAI 基础 GPT-3 系列的后代,该系列经过自然语言和数十亿行代码的训练。它在 Python 方面的能力最强,并且精通十多种语言,包括 C#、JavaScript、Go、Perl、PHP、Ruby、Swift、TypeScript、SQL,甚至 Shell。

有关生成代码完成的详细信息,请参阅Codex 模型和 Azure OpenAI 服务

下一步

反馈

即将推出:整个 2024 年,我们将逐步淘汰 GitHub Issues 作为内容反馈机制,并用新的反馈系统取而代之。有关详细信息,请参阅:Provide feedback for Microsoft Learn content - Contributor guide | Microsoft Learn

提交并查看反馈

  • 29
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值