

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

# 准确性
<a name="clarify-accuracy-evaluation"></a>

 这项评估通过比较模型输出与数据集中的基本真实答案，来衡量模型在某项任务中的准确度。

 Amazon SageMaker AI 支持从亚马逊 SageMaker Studio 运行精度评估或使用该`fmeval`库。
+  **在 Studio 中运行评估：**在 Studio 中创建的评估作业使用预选默认值来快速评估模型性能。
+  **使用 `fmeval` 库运行评估：**使用 `fmeval` 库创建的评估作业可提供更多选项来配置模型性能评估。

## 支持的任务类型
<a name="clarify-accuracy-evaluation-task"></a>

准确性评估支持以下任务类型及其相关内置数据集。内置数据集包括一个用于衡量准确性的地面实况组件。用户还可以自带数据集。有关在数据集中加入地面实况组件的信息，请参阅 [自动模型评测](clarify-foundation-model-evaluate-auto.md)。

默认情况下， SageMaker AI 会从数据集中随机采样 100 条提示以进行准确性评估。 使用`fmeval`库时，可以通过将`num_records`参数传递给`evaluate`方法来进行调整。 有关使用`fmeval`库自定义事实知识评估的信息，请参阅[使用 `fmeval` 库定制工作流程](clarify-foundation-model-evaluate-auto-lib-custom.md)。


|  任务类型  |  内置数据集  |  注意  | 
| --- | --- | --- | 
|  文本摘要  |  [Gigaword](https://huggingface.co/datasets/gigaword?row=3)、[Government Report Dataset](https://gov-report-data.github.io/)。 |  内置数据集仅支持英语，但某些指标与语言无关。您可以引入任何语言的数据集。 | 
|  问题回答  |  [boolQ](https://github.com/google-research-datasets/boolean-questions)[，triviaQ [NaturalQuestions](https://github.com/google-research-datasets/natural-questions)A](http://nlp.cs.washington.edu/triviaqa/) |  内置数据集仅支持英语，但某些指标与语言无关。您可以引入任何语言的数据集。 | 
|  分类  | [Women's E-Commerce Clothing Reviews](https://www.kaggle.com/datasets/nicapotato/womens-ecommerce-clothing-reviews) |   | 

## 计算值
<a name="clarify-accuracy-evaluation-values"></a>

 根据任务类型的不同，评估准确度的得分也会发生变化。有关评估所需提示结构的信息，请参阅 [在 Studio 中创建自动模型评测任务](clarify-foundation-model-evaluate-auto-ui.md)。

### 总结
<a name="clarify-accuracy-evaluation-summarization"></a>

对于摘要任务，准确性评估衡量模型总结文本的准确程度。默认情况下，此评估在两个内置数据集上对模型进行基准测试，这些数据集包含输入文本和真实答案的配对。模型生成的摘要将与真实答案进行比较，使用三种内置指标来衡量摘要在不同方面的相似性。所有这些得分都是在整个数据集上取平均值。
+  **ROUGE 得分：**ROUGE 得分是一类指标，用于计算模型生成的摘要与地面实况摘要之间的重叠词单元 (N-grams)，以衡量摘要质量。在评估 ROUGE 得分时，得分越高，说明模型能够生成更好的摘要。
  +  数值范围从 `0`（不匹配）到 `1`（完全匹配）。
  +  指标不区分大小写。
  +  **限制**：在抽象概括任务中可能不可靠，因为得分依赖于精确的词语重叠。
  +  ROUGE 大字符计算示例
    + **基本事实概述**：“狗在公园里玩捡球游戏”。
    + **生成摘要**：“狗在玩球”
    + **ROUGE-2**：计算参考答案和候选摘要之间共有的二元组（句子中的两个相邻单词）数量。有 4 个常见的大词（“狗”、“狗玩”、“用”、“球”）。
    + **除以地面实况摘要中的大词组总数**：9 
    + `ROUGE-2 = 4/9 = 0.444`
  +  **在 Studio 自动模型评测作业中，ROUGE 得分的默认设置** 

    使用 Studio 创建自动模型评估作业时， SageMaker AI 会使用 ROUGE 分数计算中使用的 N-gram。`N=2`因此，模型评测作业使用大词块进行匹配。Studio 作业还可以使用 Porter [stemmer](https://en.wikipedia.org/wiki/Stemming) 从所有提示符中去除单词后缀。例如，字符串 `raining` 被截断为 `rain`。
  +  **ROUGE 在 `fmeval` 库中提供的选项得分** 

    使用 `fmeval` 库，可以通过 `[SummarizationAccuracyConfig](https://github.com/aws/fmeval/blob/91e675be24800a262faf8bf6e59f07522b5314ea/src/fmeval/eval_algorithms/summarization_accuracy.py#L40)` 参数配置计算 ROUGE 得分的方式。支持以下选项：  
    +  `rouge_type`：需要匹配的 N 个语法的长度。支持的三个值是 
      +   `ROUGE_1` 匹配单字（单字符） 
      +   `ROUGE_2` 匹配词对（大词组）。这是默认值。
      +   `ROUGE_L` 匹配最长公共子序列。  要计算最长公共子序列，需要考虑词序，但连续性不在考虑之列。
        +  例如：
          + **模型总结** = “It is autumn” 
          + **参考** = “It is once again autumn” 
          +  `Longest common subsequence(prediction, reference)=3`.  
    +  `use_stemmer_for_rouge`：如果是 `True`（默认），则使用 Porter [stemmer](https://en.wikipedia.org/wiki/Stemming) 来去除词缀。  
      +  例如：“raining”截断为“rain”。
+  **带有显式 ORdering (METEOR) 分数的翻译评估指标：**METEOR 与 ROUGE-1 类似，但也包括词干提取和同义词匹配。 与 ROUGE 相比，它提供了更全面的摘要质量视图，后者仅限于简单的 n-gram 匹配。METEOR 得分越高，表明准确度越高。
  +  **限制**：在抽象概括任务中可能并不可靠，因为得分依赖于精确词和同义词的重叠。
+  **BERTScore:** BERTScore 使用 BERT 系列中的额外机器学习模型来计算句子嵌入并比较它们的余弦相似度。 该分数旨在考虑比 ROUGE 和 METEOR 更大的语言灵活性，因为语义上相似的句子可能彼此靠得更近。
  +  **限制:** 
    +  继承了用于比较段落的模型的局限性。
    +  当一个重要单词发生变化时，短文对比可能不可靠。
  +  **BERTScoreStudio 自动模型评估作业中的默认值** 

     当您使用 Studio 创建自动模型评估任务时， SageMaker AI 会使用`[deberta-xlarge-mnli](https://github.com/microsoft/DeBERTa)`模型来计算 BERTScore。
  +  **BERTScore `fmeval`库中可用的选项** 

     使用该`fmeval`库，您可以使用`[SummarizationAccuracyConfig](https://github.com/aws/fmeval/blob/91e675be24800a262faf8bf6e59f07522b5314ea/src/fmeval/eval_algorithms/summarization_accuracy.py#L40)`参数配置计算方式。BERTScore 支持以下选项：
    +  `model_type_for_bertscore`：用于评分的模型的名称。 BERTScore 目前仅支持以下型号：
      +  `"[microsoft/deberta-xlarge-mnli](https://github.com/microsoft/DeBERTa)"`（默认值） 
      +  `"[roberta-large-mnli](https://github.com/facebookresearch/fairseq/tree/main/examples/roberta)"`

### 问题回答
<a name="clarify-accuracy-evaluation-qa"></a>

 在问题解答任务中，准确度评估通过将模型生成的答案与给定的地面真实答案进行不同方式的比较，来衡量模型的问题解答 (QA) 性能。所有这些得分都是整个数据集的平均值。

**注意**  
这些指标是通过比较生成的答案和地面实况答案是否完全匹配来计算的。因此，对于可以重新措辞而不改变答案含义的问题，它们的可靠性可能较低。
+  **字词精确度得分：**从 `0`（最差）到 `1`（最佳）的数值分值。为了计算这一得分，在比较之前要对模型输出和地面实况进行归一化处理。在计算精确度之前，该评估会删除任何换行符，以考虑到有多个不同段落的冗长答案。如果上传自己的数据集，**精确度**可以在任何语言上进行评估。
  +  `precision = true positives / (true positives + false positives)` 
    +  `true positives`：模型输出中同时包含在地面实况中的单词数量。
    +  `false positives`：模型输出中不包含在地面实况中的单词数量。
+  **单词回忆得分：**从 `0`（最差）到 `1`（最佳）的数值得分。为计算这一得分，在进行比较之前，要对模型输出和地面实况进行归一化处理。在计算回忆率之前，该评估会删除任何换行符，以考虑到包含多个不同段落的冗长答案。由于回忆率只检查答案是否包含基本事实，而不会对冗长进行惩罚，因此我们建议对冗长的模型使用回忆率。如果上传自己的数据集，**回忆**可以在任何语言上进行评估。
  +  `recall = true positives / (true positives + false negatives)` 
    +  `true positives`：模型输出中同时包含在地面实况中的单词数量。
    +  `false negatives`：模型输出中缺失但包含在地面实况中的单词数量。
+  **词语 F1 得分：**从 `0`（最差）到 `1`（最佳）的数值得分。F1 是精确度和回忆率的调和平均值。为了计算这一得分，在进行比较之前要对模型输出和地面实况进行归一化处理。在计算 F1 之前，该评估会删除任何换行符，以考虑到包含多个不同段落的冗长答案。如果您上传自己的数据集，可以在任何语言上对*单词 F1* 进行评估。
  +  `F1 = 2*((precision * recall)/(precision + recall))` 
    +  `precision`：精确度的计算方法与精确度得分相同。
    +  `recall`：回忆率的计算方法与回忆得分相同。
+  **完全匹配 (EM) 得分：**二进制得分，表示模型输出是否与地面实况答案完全匹配。如果上传自己的数据集，**完全匹配**可以在任何语言上进行评估。
  + `0`：不完全匹配。
  + `1`：完全匹配。
  + 示例：
    +  **问题**：`“``where is the world's largest ice sheet located today?”`
    +  **地面真值**：“Antarctica” 
    +  **生成的答案**：“in Antarctica” 
      +  **得分**：0 
    +  **生成的答案**：“Antarctica” 
      +  **得分**：1 
+  **准精确匹配得分：**二进制得分，计算方法与 EM 得分类似，但在比较前对模型输出和地面真值进行了归一化处理。对于这两种输入法，输出结果都会进行规范化处理，将其转换为小写字母，然后删除冠词、标点符号和多余的空白。
  +  `0`：不是准精确匹配。
  +  `1`：准精确匹配。
  +  示例：
    +  **问题**：`“``where is the world's largest ice sheet located today?”`
    +  **地面真值**：“Antarctica” 
    +  **生成的答案**：“in South America” 
      +  **得分**：0 
    +  **生成的答案**：“in Antarctica” 
      +  **得分**：1 

### 分类
<a name="clarify-accuracy-evaluation-classification"></a>

 对于分类任务，准确度评估是比较输入的预测类别和给定标签。所有这些得分都是整个数据集的平均值。
+ **准确度得分：**表示模型预测的标签是否与输入的给定标签完全匹配的二进制得分。
  +  `0`：不完全匹配。
  +  `1`：完全匹配。
+  **精确度得分：**从 `0`（最差）到 `1`（最好）的数值分值。
  +  `precision = true positives / (true positives + false positives)` 
    +  `true positives`：模型预测出给定标签的输入数。
    +  `false positives`：模型预测的标签与相应输入的给定标签不匹配的输入数量。
  + **Studio 自动模型评测作业中的精度得分默认值** 

     当您使用 Studio 创建自动模型评估作业时， SageMaker AI 会通过计算真阳性、误报和误报的总数来计算所有类别的全局精度。
  +  **`fmeval` 库中提供的精确记分选项** 

     使用 `fmeval` 库，您可以使用 `[ClassificationAccuracyConfig](https://github.com/aws/fmeval/blob/91e675be24800a262faf8bf6e59f07522b5314ea/src/fmeval/eval_algorithms/classification_accuracy.py#L137)` 参数配置计算精度得分的方式。支持以下选项：  
    +  `multiclass_average_strategy` 决定了在多分类器设置中如何在不同类别之间汇总得分。可能的值是 `{'micro', 'macro', 'samples', 'weighted', 'binary'}` 或 `None`（默认值=`'micro'`）。  在默认情况“`micro'`”下，精确度是通过计算真阳性、假阴性和假阳性的总数，对所有类别进行全局计算。有关所有其他选项，请参阅 [sklearn.metrics.precision\$1score](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_score.html)。
**注意**  
对于二元分类，我们建议使用 `'binary'` 平均策略，这与精度的经典定义相对应。
+  **回忆得分：**从 `0`（最差）到 `1`（最好）的数字得分。
  +  `recall = true positives / (true positives + false negatives)` 
    +  `true positives`：模型预测了各自输入的给定标签的输入个数。
    +  `false negatives`：模型未能预测其各自输入的给定标签的输入数。
  +  **Studio 自动模型评测作业中的调用得分默认值** 

     当您使用 Studio 创建自动模型评估作业时， SageMaker AI 会通过计算真阳性、误报和误报的总数来计算所有类别的全局召回率。
  +  **调用 `fmeval` 库中的得分选项** 

     使用 `fmeval` 库，可以通过 `[ClassificationAccuracyConfig](https://github.com/aws/fmeval/blob/91e675be24800a262faf8bf6e59f07522b5314ea/src/fmeval/eval_algorithms/classification_accuracy.py#L137)` 参数配置回忆得分的计算方式。支持以下选项：  
    +  `multiclass_average_strategy` 决定了在多分类器设置中如何在不同类别之间汇总得分。可能的值是 `{'micro', 'macro', 'samples', 'weighted', 'binary'}` 或 `None`（默认值=`'micro'`）。  在默认情况“`micro'`”下，回忆是通过计算真阳性、假阴性和假阳性的总数，对所有类别进行全局计算。有关所有其他选项，请参阅 [sklearn.metrics.precision\$1score](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_score.html)。
**注意**  
对于二元分类，我们建议使用 `'binary'` 平均策略，这与回忆的经典定义相对应。
+  **均衡分类准确率：**数值分值，范围从 `0`（最差）到 `1`（最好）。
  +  **对于二元分类**：该得分的计算方法与准确率相同。
  +  **对于多分类器**：该得分是所有类别的单个回忆得分的平均值。
    +  以下是输出示例：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/clarify-accuracy-evaluation.html)
      +  **1 类回忆**：0 
      +  **2 类回忆**：1 
      +  **3 类回忆**：1 
      +  **平衡分类准确率**：(0\$11\$11)/3=0.66 