# 生成式人工智能的完整过时指南(MEAP)(一)(2)

简介: # 生成式人工智能的完整过时指南(MEAP)(一)

# 生成式人工智能的完整过时指南(MEAP)(一)(1)https://developer.aliyun.com/article/1516907

2.5 完成配置

你可以把“完成配置”看作是一种微调,这样说也不算错。但是,在 AI 的背景下,“微调”这个术语可能有更具体的含义。我们将在第六章和第九章花更多时间讨论这个话题。

在我开始解释每个配置的工作方式之前,这是一张图片,应该可以帮助你想象 AI 模型在生成响应之前对你的提示做些什么。

图 2.5:参数如何应用于 AI 提示


正如你所见,一个典型的语言模型可能会立即产生一个初步的草案响应(图中的“生成输出”)。但是,在与你分享之前(“返回输出”),它将首先测试其是否符合你可能设置的任何偏好(即,温度、频率等)。我们很快就会看到这些偏好起作用 - 它们可以控制提示的语调、创造性、焦点、冗长甚至成本。

现在看看游乐场中的这些控件是什么样子的。

图 2.6:游乐场 UI 中的工具上半部分选择


现在让我们看看这些到底是什么。为了让你保持方向,我们将涵盖每个配置类别:

  • 模式
  • 温度
  • 最高 P 值
  • 停止序列
  • 频率惩罚
  • 存在惩罚
  • 最佳选择
  • 注入起始文本

为了让你有些背景,想象一下你正在构建一个 Web 应用程序,为用户提供关于你的酒店的问题的即时响应。你可能最初会要求用户从一系列类别中进行选择(“餐饮和娱乐”,“旅行规划”等)。根据他们选择的类别,你希望微调你的聊天工具,以便响应与用户的期望相匹配。

这些配置可以帮助你创建这样的定制。

2.5.1 设置模式

根据你使用的模型不同,模式下拉菜单可能有三个选项:聊天、完成和编辑。完成和聊天提供了我们已经习惯的熟悉的完成和聊天体验。如果你有一些文本想要以某种方式重新处理,你可以选择编辑模式,在输入部分输入你的文本,并在下面的说明字段中输入你想要更改的文本。游乐场建议“修复语法”作为可能的指令,但你可以自由使用你自己的指令。我们将在下一章中了解更多关于这种操作的信息。

模型下拉菜单中预置的列表显示了当前选定模式下可用的所有 OpenAI 模型。此列表将根据您选择的模式动态变化。显然,您会想要选择一个最适合您的需求和预算的模型(如上所述)。

2.5.2 设置温度

温度控制生成输出时所使用的随机性程度。它允许用户调整输出中的创造性和不可预测性水平。通过将温度设置为介于02之间的值(默认为1),AI 可以生成不同类型的输出,从高度创造性和不可预测性(即 2)到高度结构化和保守性(即0)。

让我们考虑一个使用聊天机器人场景的例子,其中用户询问餐厅推荐:

提示

用户:“你能推荐附近的好餐厅吗?”

我们可以使用不同的温度设置来生成具有不同随机性程度的响应。更高的温度(例如 1.3)鼓励语言模型生成更多样化和创造性的响应,即使它们可能不太集中或准确:

响应

温度 1.3:助手:“当然!试试角落里那家舒适的小咖啡馆怎么样?他们供应美味的食物,从美味的汉堡到异国情调的寿司。那里的用餐体验绝对让你大开眼界!”

在这种情况下,高温设置导致了一个更有想象力的回应,提出了各种食品选择,并强调了“冒险的用餐体验”。

另一方面,较低的温度(例如 0.2)鼓励语言模型生成更确定性和集中的回应,通常固守安全和传统的选择:

响应

温度 0.2:助手:“当然!我建议你去主街上的意大利餐厅。那里有正宗的意大利面和令人垂涎的披萨。你绝对不会失望!”

通过降低温度,回应更为直接,并专注于特定的烹饪风格和场所,提供了一个安全可靠的建议。

2.5.3 设置 Top P 值

Top P(也称为核采样或“无惩罚采样”)是帮助控制生成文本多样性的参数。它涉及在序列中选择下一个标记的最有可能的单词,考虑累积概率阈值(P)。它不是从整个词汇表中生成,而是将选择范围缩小到那些累积概率超过 P 的最有可能的单词的子集。这有助于控制输出的长度和多样性,同时保持连贯性。

使用 Top P 抽样方法时,模型根据概率阈值(p)选择最有可能的下一个词,这允许更多样化和受控制的输出。累积概率超过阈值的单词将被考虑,确保在生成的文本中平衡可预测性和创造性。简单来说,“top p”允许模型超越明显的选择,同时保持连贯性。这就像给 AI 一点自由来给你带来惊喜,同时确保生成的文本仍然有意义。当您需要创意回复而不完全偏离主题时,这种技术特别有用。

通过调整 Top P 值,用户可以影响模型响应中的随机性或多样性。较高的值(例如,0.9)包括更大的潜在标记集,使输出更加多样化,而较低的值(例如,0.1)限制了选择,导致更加聚焦和确定性的输出。默认的 Top P 值为1

这是一个用户询问天气信息的例子:

提示

用户:“今天的天气怎么样?”

我们可以探索不同的 Top P 值对响应生成的影响。

响应

Top P 0.2(高度聚焦):助手:“今天的天气是晴朗的,最高气温为摄氏 25 度。是享受户外活动的完美天气。”

使用较低的 Top P 值,模型仅选择最可能的下一个词,导致聚焦和确定性的响应,通常更可靠但变化较小。

响应

Top P 0.8(更多样化):助手:“今天的天气晴朗、温暖、令人愉快。你可能想戴上太阳镜,出去享受充满乐趣的一天!”

使用较高的 Top P 值,模型会考虑更广泛范围的可能的下一个词,从而产生更多样化的响应。这可以在生成的文本中引入变化,提供表达相同信息的不同方式。

尽管 Top P 和 Temperature 看起来相似,但 Temperature 控制语言生成中的随机性:较高的值(例如,1.0)增加多样性,较低的值(例如,0.2)产生更可预测的输出。相反,Top-p 抽样设置概率阈值(p)以从最有可能的词组中进行选择,根据阈值(例如,p=0.9 用于更多多样性,p=0.2 用于较少多样性)调整输出的多样性。

一般情况下,可以更改 Temperature Top P,但不能同时更改两者。

2.5.4 使用停止序列

停止序列是用于指示生成的响应结束或提示模型停止生成进一步文本的特殊标记。这些标记通常添加到输入提示中以控制生成的输出长度。

在英语中,常见的句末标记示例是句号(.),后跟一个空格。在编程语言中,常见的停止序列可能是一对花括号(“{}”)来表示代码块的结尾。在 HTML 或 XML 中,像 “” 这样的闭合标签表示元素的结束。

需要注意的是,像 GPT 这样的现代语言模型不一定依赖于显式的停止序列来生成文本。相反,它们通常使用诸如标记化和上下文窗口之类的技术来理解何时自然结束句子或段落。此外,它们可能在内部使用特殊标记,如 “”(序列结束),但这些细节通常对用户进行了抽象处理。

例如,在解释课程的中途,可以配置虚拟讲师说,“我们今天就到这里吧。请给我复述一下这节课的三个主要观点。” 学生回答了三个主要观点(符合所需的停止序列)后,讲师可以说,“是的,很棒!好了,今天的课到此结束。”

2.5.5 设置频率惩罚

频率惩罚 用于阻止重复或冗余的输出。它有助于解决模型倾向于产生重复或过长短语的常见问题,导致响应不够连贯和多样化。通过应用频率惩罚,用户可以控制生成多样化响应和避免重复模式之间的权衡。

惩罚是根据已在输出中出现的生成标记或标记序列的次数计算的。当应用惩罚时,模型对标记的概率分布进行调整,以减少生成已使用标记的可能性。频率惩罚的目的是鼓励模型探索替代选项并生成更多样化和连贯的响应。

惩罚值(可以介于 -2.02.0 之间)可以根据所需的重复避免级别进行调整。较高的惩罚值导致更强烈地避免重复,而较低的值允许生成的输出具有更多的灵活性。找到正确的平衡很重要,以确保生成的文本保持连贯性和上下文相关性,同时避免过多的重复。

考虑一个用户要求为新智能手机提供一些想法的示例:

提示和响应

用户:为新智能手机提供一些想法。

模型:当然!以下是一些想法:高分辨率显示屏、多个摄像头镜头、快速处理速度、长续航时间和时尚设计。

那个语言模型生成的想法已经很常见了 - 它几乎没有突破性。然而,如果你加上一个频率惩罚:

提示和响应

用户:在使用频率惩罚的情况下,为新智能手机提供一些独特和罕见功能的想法。

模型:当然!如何把智能手机和全息显示器结合起来,以投射 3D 图像,采用石墨烯电池实现即时充电,设计可定制的模块化结构,使用户可以更换硬件组件,内置 AI 语言翻译器实现实时对话,以及读取用户手掌上独特静脉纹理的生物识别系统?

在这种情况下,通过使用频率惩罚,模型更有可能生成涉及不太常见的单词或概念的想法。这导致了更具创新性和想象力的建议,符合您提出独特产品特性的目标。

2.5.6 设置存在惩罚

存在惩罚 是 GPT 模型中的一个参数,有助于控制生成文本中短语和单词的重复。它旨在防止模型在生成的输出中过于频繁地重复相同的短语或单词。存在惩罚修改概率分布,以减少输入提示或种子文本中存在的单词。这鼓励模型生成未明确存在于输入中的单词和涉及的主题。

尽管存在频率惩罚似乎有重叠之处,但它们并不相同。频率惩罚是与特定标记已被采样的频率成比例的贡献。它阻止模型在生成文本中过于频繁地重复相同的单词或短语。另一方面,存在惩罚是一次性的、增加的贡献,适用于至少被采样一次的所有标记。它修改概率分布,以减少输入提示或种子文本中存在的单词。这鼓励模型生成未在输入中的单词。

我们可以探索不同存在惩罚值对响应生成的影响,同时与频率惩罚进行比较。想象一下,您提示模型:“告诉我关于我最喜欢的体育队最近的表现。”

回应

存在惩罚 0.2(减少规避):

助手:“您最喜欢的体育队在最近的比赛中表现异常出色。他们展示了卓越的团队合作和战略性的比赛,取得了几场胜利。”

采用较低的存在惩罚,模型可能更频繁地生成包含所需关键词或概念的响应,因为它不太倾向于避免使用它们。而使用频率惩罚进行相同操作,结果会是:

回应

频率惩罚 0.2(减少重复):

助手:“您最喜欢的体育队最近表现出色。他们展示了出色的技巧、协调能力和改变比赛局势的策略,取得了一系列的成功。”

与存在惩罚相比,频率惩罚侧重于减少特定短语或响应的重复,而不考虑它们与用户输入的相关性。

通过调整存在惩罚,您可以控制 AI 在生成的文本中遵循特定关键字或概念的程度。较低的值可能导致模型更频繁地提到所需的主题,而较高的值则鼓励模型避免过多地重复这些主题。

下面是如何在语言模型提示中使用高存在惩罚的示例。想象一下,您正在使用语言模型来生成一个故事或对话,并且希望确保生成的文本避免提及任何暴力或图形内容。您希望应用高存在惩罚来确保模型严格避免使用与暴力相关的单词或短语。

提示

用户:创建一个关于两位冒险家为了拯救他们的王国免受巨大威胁的故事。应用高存在惩罚,避免描述任何暴力或图形场景。

通过使用高存在惩罚,您可以引导语言模型生成符合特定内容指南的响应,使其适用于各种需要避免某些主题或语言的情境。

除了您在游乐场页面上可以看到的配置控件之外,还有一些其他控件既常见又有用:

2.5.7 使用“最佳选择”

当从生成式 AI 模型生成响应时,有时可能会收到多个候选输出。最佳选择方法涉及根据某些标准从这些候选项中选择最合适或最高质量的响应。默认设置(1)将流式传输所有输出而不进行任何选择或过滤。较高的值(最高可达20)将增加您所看到的可能性生成与输出之间的比率。

“最佳选择”方法的目的是通过手工选择最有利的响应来策划和完善输出中的内容。它使您能够更多地控制最终输出,确保它符合您的期望标准或与生成式 AI 模型的预期目的相一致。但请记住:最佳选择值越高,您为每个输出支付的费用就越多。

例如,在文本摘要任务中,您可能希望识别出捕捉文档或文章精华的最重要的短语或句子。您可以使用“最佳选择”来提取基于其重要性或相关性的前 n 个短语或句子,然后使用这些短语来生成原始文本的摘要。

2.5.8 使用注入起始文本设置

“注入开始文本”或“输入前缀”是指根据用户提供的特定初始文本来指导或约束模型的输出。它涉及在输入序列开头处事先添加或插入提示、问题或上下文,以影响生成的回复。通过注入开始文本,您可以为模型提供额外的上下文或信息,以帮助其将输出引导到所需的方向。与我们之前看到的其他提示工具不同,注入的开始文本成为输入提示本身的一部分,并用作生成的回复的开头。这在您想要生成的文本更加专注、具体或适用于特定上下文的情况下非常有用。

例如,如果您正在使用语言模型在客户支持聊天机器人中生成回复,可以在模型生成回复之前插入“用户:您的产品的退货政策是什么?”等开始文本。这有助于给对话框架并确保模型理解用户查询的上下文。

与指定文本前缀完成不同,“注入重新启动文本”允许用户在一个完成中插入文本,以“继续”某种模式化的对话结构。

想必你可以想象,在 API 的帮助下,GPT 还有很多酷炫和精彩的用途。在本书的剩余部分中,我们肯定会触及其中的许多方面。但是你可以(而且应该)经常去 API 参考页面查看。

要点

除了简单的信息获取请求之外,任何比较复杂的生成型 AI 操作(特别是以程序化方式交付的自动提示)都可以通过调整模型参数来更有效地执行。所以考虑超越默认设置,比如频率和温度等内容。

2.6 小结

  • 生成型 AI 模型有多个类别,包括像 GPT 和 PaLM-2 这样的软件框架,以及像 GPT 的 davinci 和 ada 这样更具体的基于任务的模块。每种模型都有其最佳应用场景。
  • OpenAI 的 Playground 是一个有价值的工具,可用于了解 GPT 提供的配置选项并生成用于通过 OpenAI API 运行提示的代码。您应该将 Playground 作为自定义构建代码的来源,以执行通过 OpenAI API 的提示。
  • 温度、存在惩罚和最优选择等配置控制变量可以用于微调模型提示。无论使用哪个 AI 模型,通常都有互动工具可用于应用这些控制变量。
  • OpenAI API 参考指南是一个重要的资源,把它当做你最好的朋友。
  • 我们探索了微调在更大上下文中的应用,从中快速了解到了 LLM 所具备的一些灵活性。

第三章:创建生成式 AI:文本和代码

本章将涵盖

  • 自动化过滤内容的准确性
  • 基于你可以定义的复杂细节创建新内容
  • 生成与专业领域匹配的定制文档
  • 生成编程代码

直到现在,我们已经探讨了一些生成式 AI 的基础背景和机制:它如何工作以及如何进行微调。从这一章开始,我们将开始处理一些实际的内容生成问题。

但确切地说,这要怎么运作呢?我不认为列举一个 ChatGPT 提示的长列表对你有什么意义。我敢肯定你已经做了大量这样的工作了。而且,如果你还没有这样做,那么在你喜爱的互联网搜索引擎中键入“ChatGPT 的酷提示”很快就会解决问题了。

我将要为你提供的是一些更复杂且有时意想不到的方法来处理更大的问题——包括如何训练你的 AI 模型在一个紧密定义的概念宇宙内工作,以及如何仅仅通过描述来构建真实世界的网站。我们将使用所有其他人正在使用的玩具,但我们将调整它们以更完美地适应我们的特定需求。

Callout(应该是图文之类的)

一个警告。正如我在接下来的章节中指出的那样:我不希望你完全按照我呈现的技巧和配置来使用。相反,目标是提供一些基本技能和激发你的好奇心和创造力,让你看到你的问题的新解决方案。

本章将重点介绍使用生成式 AI 来生成一些基于文本的原始内容。下一章也是这样,但是针对的是非文本内容,例如图像、音频和视频。

3.1 自动化准确性检查

如果你还没有注意到,在本书中我们将主要关注 OpenAI 工具如 GPT。这并不是说没有其他强大和有效的资源可以完成这些工作,事实上是有的。但至少现在,OpenAI 在行业中具有最高的创造力和动力,也是最具突破性的地方。

实话说,我已经可以看到微妙的迹象表明这可能开始改变。我不会惊讶,如果 12 个月后 Meta(Facebook)或甚至独立的平台领先于前面。但你要用你有的工具。而现在,大部分的工具或多或少都与 OpenAI 联系在一起。

所以我们将使用 GPT。关于 GPT Playground 的事情是,它应该让你思考程序代码而不是聊天对话。换句话说,Playground 的View code功能如何帮助你构建自动化工作流程呢?

让我们想象一下,你正在尝试将 GPT 创作整合到一个更大的过程中。也许你的组织正在鼓励它的网站用户在你们的公共讨论论坛上发布自己的想法和评论。

由于您提供的产品或服务在技术上很复杂,您对于在平台上保持高水平的对话很感兴趣。另一方面,您没有时间和资源在每一条用户评论在发布之前进行手动编辑。相反,您决定您宁愿让 GPT 来为您工作。下面是在 Playground 中的效果:

图 3.1 使用编辑模式的 GPT Playground


注意Mode下拉菜单被设置为默认值Chat。这给了我一个附加的SYSTEM字段和一个Output字段添加到 Playground 界面上。这里,我在输入字段中输入了一些包含明显错误的文本:

提示工程

60 年代最著名的音乐家是披头士乐队、鲍勃·迪伦和 J.S.巴赫。

然后,我将Check for accuracy and and output a corrected version作为我的指令输入。当我提交提示时,输出结果中的第三项是"Elvis Presley"。

这是代码的呈现方式:

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.ChatCompletion.create(
  model="gpt-4",
  messages=[
    {
      "role": "system",
      "content": "Check for accuracy and output a corrected version"
    },
    {
      "role": "user",
      "content": "The most famous musicians from the 1960's were the
      Beatles, Bob Dylan, and J.S. Bach"
    }
  ],
  temperature=1,
  max_tokens=256,
  top_p=1,
  frequency_penalty=0,
  presence_penalty=0
)

当我通过 API 运行该代码时,我得到了略微不同的响应:

response
<OpenAIObject chat.completion id=chatcmpl-7l0C8xGXBTM9quFZoPwDHHaSl
7avX at 0x7f07e67109a0> JSON: {
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "The most famous musicians from the 1960's were
        the Beatles, Bob Dylan, and Jimi Hendrix.",
        "role": "assistant"
      }
    }
  ],
  "created": 1691436520,
  "id": "chatcmpl-7l0C8xGXBTM9quFZoPwDHHaSl7avX",
  "model": "gpt-4-0613",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 23,
    "prompt_tokens": 41,
    "total_tokens": 64
  }
}

下面的图片展示了对我们的用例示例,如何通过使用Stop sequences字段基于关键词过滤内容。如果我想要完全捕捉和防止用户发布不恰当的言论,这对我会很有帮助。我敢肯定你可以列出一份你自己的更不合适的词汇表,可以添加到这个字段中。

图 3.2 使用 Stop sequences 的 GPT Playground 编辑模式


自然而然,您需要自己决定是否适合赋予 GPT 有效地审查您的用户的权力。尽管我个人会对给予 AI 这种权力感到紧张,但这个例子实际上只是为了说明可能性。

要点

使用 OpenAI Playground(或其他资源)构建利用 LLM 功能的工作流以实时解析文本并检查准确性。

# 生成式人工智能的完整过时指南(MEAP)(一)(3)https://developer.aliyun.com/article/1516911

相关文章
|
17天前
|
机器学习/深度学习 算法 TensorFlow
无监督学习与生成式人工智能(MEAP)(三)(5)
无监督学习与生成式人工智能(MEAP)(三)
17 0
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
无监督学习与生成式人工智能(MEAP)(三)(4)
无监督学习与生成式人工智能(MEAP)(三)
9 0
|
17天前
|
机器学习/深度学习 人工智能 数据挖掘
无监督学习与生成式人工智能(MEAP)(三)(3)
无监督学习与生成式人工智能(MEAP)(三)
7 0
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
无监督学习与生成式人工智能(MEAP)(三)(2)
无监督学习与生成式人工智能(MEAP)(三)
16 0
|
17天前
|
机器学习/深度学习 自然语言处理 测试技术
无监督学习与生成式人工智能(MEAP)(三)(1)
无监督学习与生成式人工智能(MEAP)(三)
20 0
|
17天前
|
机器学习/深度学习 算法 数据可视化
无监督学习与生成式人工智能(MEAP)(二)(5)
无监督学习与生成式人工智能(MEAP)(二)
20 0
|
17天前
|
机器学习/深度学习 人工智能 算法
无监督学习与生成式人工智能(MEAP)(二)(4)
无监督学习与生成式人工智能(MEAP)(二)
17 0
|
17天前
|
人工智能 编解码 安全
[AI Google] 基于我们对提供负责任的人工智能的承诺
今天,我们宣布了新的人工智能保障措施,以防止滥用,并推出了利用人工智能使学习更具吸引力和可访问性的新工具
[AI Google] 基于我们对提供负责任的人工智能的承诺
|
15天前
|
人工智能
如何优化人工智能人才培养体系以适应快速发展的AI技术?
【6月更文挑战第1天】如何优化人工智能人才培养体系以适应快速发展的AI技术?
40 4
|
25天前
|
机器学习/深度学习 人工智能 算法
声控门的工作原理与人工智能AI
声控门的工作原理与人工智能AI
29 1

热门文章

最新文章