什么是基础模型评估? - Amazon SageMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

什么是基础模型评估?

FMEval可以帮助您量化模型风险,例如不准确、有毒或有偏见的内容。对您的评估LLM有助于您遵守有关负责任的生成式人工智能的国际指导方针,例如 ISO42001 人工智能管理系统标准和NIST人工智能风险管理框架。

以下各节概述了创建模型评估、查看模型评估结果和分析结果的支持方法。

模型评估任务

在模型评估作业中,评估任务是您希望模型根据提示中的信息执行的任务。您可以为每个模型评估任务选择一种任务类型

模型评估作业中支持的任务类型
  • 开放式生成 — 人类对没有预定义结构的文本的自然反应产生。

  • 文本摘要 — 生成简洁精简的摘要,同时保留大文本中包含的含义和关键信息。

  • 问题解答 — 对提示做出相关且准确的回应。

  • 分类-根据文本的内容为其分配类别,例如标签或分数。

  • 自定义-允许您为模型评估任务定义自定义评估维度。

每种任务类型都有与之关联的特定指标,您可以在自动模型评估作业中使用这些指标。要了解与自动模型评估作业相关的指标以及使用人工的模型评估作业,请参阅在模型评估作业中使用提示数据集和可用的评估维度

更新推理参数

推理参数是一种无需重新训练或微调模型即可影响模型输出的方法。

在自动模型评估作业中,您可以更改模型的温度、Top P 和 Max 新标记。

Temperature

更改模型响应中的随机性。降低默认温度以减少随机性,提高默认温度以获得更多随机性。

Top P

在推理过程中,模型会生成文本,然后从单词列表中进行选择以放置下一个单词。更新前 P 会根据百分比更改该列表中的单词数。降低 Top P 会产生更多的确定性样本,而较高的值将允许生成的文本具有更大的可变性和创造力。

新代币上限

更改模型可以提供的响应长度。

将模型添加到模型评估任务后,您可以在 Studio 中更新推理参数。

自动模型评估作业

自动模型评估任务使用基于基准的指标来衡量对客户的毒性、有害或其他不良反应。使用特定于任务的内置数据集对模型响应进行评分,也可以指定自己的自定义提示数据集。

要创建自动模型评估作业,可以使用 Studio 或fmeval库。自动模型评估作业支持使用单个模型。在 Studio 中,您可以使用 JumpStart JumpStart 模型,也可以使用之前部署到端点的模型。

或者,您可以将该fmeval库部署到自己的代码库中,并针对自己的用例自定义模型评估作业。

为了更好地了解您的结果,请使用生成的报告。该报告包括可视化效果和示例。您还可以看到结果保存在创建任务时指定的 Amazon S3 存储桶中。要了解有关结果结构的更多信息,请参阅了解自动评估工作的结果

要使用中未公开的模型 JumpStart ,必须使用该fmeval库来运行自动模型评估作业。有关 JumpStart 型号列表,请参阅可用的基础模型

提示模板

为了帮助确保您选择的 JumpStart 模型在所有提示下都表现良好, SageMaker Clarify 会自动将您的输入提示扩展为最适合您选择的模型和评估维度的格式。要查看 Clarify 提供的默认提示模板,请在评估维度卡片中选择提示模板。例如,如果您在用户界面中选择 “文本摘要” 任务类型,则 Clarify 默认会为每个关联的评估维度显示一张卡片,在本例中为准确性、毒性和语义稳健性。在这些卡片中,您可以配置 Clarify 用来衡量该评估维度的数据集和提示模板。您也可以移除任何不想使用的维度。

默认提示模板

Clarify 提供了一系列数据集,您可以使用这些数据集来衡量每个评估维度。您可以选择使用其中一个或多个数据集,也可以提供自己的自定义数据集。如果您使用 Clarify 提供的数据集,也可以默认使用 Clarify 插入的提示模板。我们通过分析每个数据集中的响应格式并确定实现相同响应格式所需的查询增强来得出这些默认提示。

Clarify 提供的提示模板还取决于您选择的型号。您可以选择经过微调的模型,以期在提示的特定位置出现指令。例如,选择模型 meta-textgenerationneuron-llama-2-7b、任务类型 “文本摘要” 和 Gigaword dataset,显示以下内容的默认提示模板:

Summarize the following text in one sentence: Oil prices fell on thursday as demand for energy decreased around the world owing to a global economic slowdown...

另一方面,选择 llama 聊天模式 meta-textgenerationneuron-llama2-7b-f 会显示以下默认提示模板:

[INST]<<SYS>>Summarize the following text in one sentence:<</SYS>>Oil prices fell on thursday as demand for energy decreased around the world owing to a global economic slowdown...[/INST]

自定义提示模板

在提示模板对话框中,您可以打开或关闭 Clarify 提供的自动提示模板支持。 SageMaker 如果您关闭自动提示模板,Clarify 会提供默认提示(作为同一评估维度内所有数据集的基线),您可以对其进行修改。例如,如果默认提示模板包含用一句话汇总以下内容的指令,则可以将其修改为用少于 100 个字的总结以下内容或任何其他要使用的指令。

此外,如果您修改评估维度的提示,则会对使用相同维度的所有数据集应用相同的提示。因此,如果您选择应用提示,请将以下文本分为 17 个句子汇总到数据集中 Gigaword 为了测量毒性,数据集也使用了同样的指令 Government report 以测量毒性。如果要对不同的数据集使用不同的提示(使用相同的任务类型和评估维度),则可以使用提供的 python 包FMEval。有关详细信息,请参阅使用fmeval库自定义您的工作流程

使用提示模板更新的提示模板示例

想象一下一个简单的场景,你有一个由两个提示组成的简单数据集,你想用它来评估它们meta-textgenerationneuron-llama-2-7b-f

{ "model_input": "Is himalaya the highest mountain in the world?", "target_output": "False, Mt. Everest is the highest mountain in the world", "category": "Geography" }, { "model_input": "Is Olympia the capital of Washington?", "target_output": "True", "category": "Capitals" }

由于您的提示是问答对,因此您可以选择问答 (Q&A) 任务类型。

通过在 Studio 中选择 “提示模板”,您可以看到 Clarify 将如何 SageMaker 格式化提示以匹配meta-textgenerationneuron-llama-2-7b-f JumpStart 模型的要求。

[INST]<<SYS>>Respond to the following question. Valid answers are "True" or "False".<<SYS>>Is himalaya the highest mountain in the world?[/INST]

对于此模型, SageMaker Clarify 将通过添加[INST]<<SYS>>标签来补充您的提示以包含正确的提示格式。它还将通过添加来增强您的初始请求Respond to the following question. Valid answers are "True" or "False".,以帮助模型更好地响应。

C SageMaker larify 提供的文本可能不太适合您的用例。要关闭默认提示模板,请将数据集默认提示模板切换开关滑至关闭

您可以编辑提示模板以使其与您的用例保持一致。例如,您可以提示回复简短,而不是 True/False 答案格式,如下行所示:

[INST]<<SYS>>Respond to the following question with a short response.<<SYS>>Is himalaya the highest mountain in the world?[/INST]

现在,指定评估维度下的所有内置或自定义提示数据集都将使用您指定的提示模板。

使用人类工人的模型评估工作

您也可以雇用人工来手动评估模型响应,以了解更主观的维度,例如帮助性或风格。要创建使用人工操作的模型评估作业,必须使用 Studio。

在使用人工操作的模型评估作业中,您最多可以比较两个 JumpStart 模型的响应。或者,您也可以指定来自外部模型的响应 AWS。所有使用人工的模型评估任务都需要您创建自定义提示数据集,并将其存储在 Amazon S3 中。要了解有关如何创建自定义提示数据的更多信息,请参阅创建使用人工的模型评估作业

在 Studio 中,您可以定义员工用来评估模型响应的标准。您也可以使用 Studio 中提供的模板记录评估说明。此外,您还可以在 Studio 中创建工作团队。工作团队是您想要参与模型评估工作的人。