准确性 - Amazon SageMaker

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

准确性

该评估通过将模型输出与数据集中包含的真实答案进行比较来衡量模型在任务中的精确度。

亚马逊 SageMaker 支持从 Amazon SageMaker Studio 或使用该fmeval库进行准确性评估。

  • 在 Studio 中运行评估:在 St udio 中创建的评估作业使用预先选择的默认值来快速评估模型性能。

  • 使用库运行评估:使用fmeval创建的fmeval评估作业提供了配置模型性能评估的扩展选项。

支持的任务类型

以下任务类型及其关联的内置数据集支持精度评估。内置数据集包括用于衡量精度的地面实况组件。用户也可以自带数据集。有关在数据集中包含真实情况组件的信息,请参阅自动模型评估

默认情况下, SageMaker 从数据集中随机抽取 100 条提示进行精度评估。 使用fmeval库时,可以通过将num_records参数传递给evaluate方法来进行调整。 有关使用fmeval库自定义事实知识评估的信息,请参阅使用fmeval库自定义您的工作流程

任务类型 内置数据集 注意
文本摘要 Gigaword政府报告数据集 内置数据集仅支持英语,但有些指标与局域网无关。您可以导入任何语言的数据集。
问题回答 boolQ,triviaQ NaturalQuestionsA 内置数据集仅支持英语,但有些指标与局域网无关。您可以导入任何语言的数据集。
分类 女士电子商务服装评测

计算值

为评估准确性而测得的分数因任务类型而异。有关评估所需的提示结构的信息,请参见在 Studio 中创建自动模型评估作业

总结

对于摘要任务,精度评估用于衡量模型汇总文本的准确程度。 默认情况下,此评估基于两个内置数据集对模型进行基准测试,这两个数据集包含成对的输入文本和真实答案。然后,使用三个内置指标将模型生成的摘要与事实答案进行比较,这些指标以不同的方式衡量摘要的相似程度。 所有这些分数均为整个数据集的平均值。

  • ROUGE分ROUGE数:分数是一类指标,用于计算模型生成的摘要和基本事实摘要之间的重叠单词单位(N-gram),以衡量摘要质量。评估ROUGE分数时,分数越高表示模型能够创建更好的摘要。

    • 值的范围从0(不匹配)到1(完美匹配)。

    • 这些指标不区分大小写。

    • 局限性:在抽象摘要任务中可能不可靠,因为分数依赖于确切的单词重叠。

    • ROUGE双重函数计算示例

      • 地面真相摘要:“那只狗在公园里用球玩接球。”

      • 生成的摘要:“那只狗在玩球。”

      • ROUGE-2:计算参考文献和候选词之间共有的双组词(句子中两个相邻的单词)的数量。有 4 种常见的双组词(“狗”、“狗玩”、“with the”、“the ball”)。

      • 除以地面真相摘要中的双字元总数:9

      • ROUGE-2 = 4/9 = 0.444

    • ROUGEStudio 自动模型评估作业中的默认分数

      使用 Studio 创建自动模型评估作业时,会 SageMaker 使用N=2ROUGE分数计算中使用的 N 元函数。因此,模型评估作业使用二元组进行匹配。工作室的工作还使用 Porter stemmer 从所有提示中删除单词后缀。例如,字符串被截断raining为。rain

    • ROUGEfmeval库中提供的乐谱选项

      使用该fmeval库,您可以使用SummarizationAccuracyConfig参数配置ROUGE分数的计算方式。支持以下选项: 

      • rouge_type: 要匹配的 N 元词的长度。支持的三个值是:

        •  ROUGE_1匹配单个单词(单词)

        •  ROUGE_2匹配单词对(双字组)。这是默认值。

        •  ROUGE_L匹配最长的公共子序列。  要计算最长的公共子序列,需要考虑词序,但不考虑连续性

          • 例如:

            • 模型摘要 = “现在是秋天了”

            • refer ence = '又是秋天了'

            • Longest common subsequence(prediction, reference)=3

      • use_stemmer_for_rouge: 如果True(默认),则使用 Porter stemmer 去除单词后缀。 

        • 例如:“下雨” 被截断为 “雨”。

  • Ex METEOR plicit ORdering (METEOR) 分数的翻译评估指标:与 ROUGE -1 类似,但也包括词干提取和同义词匹配。 与之相比,它提供了更全面的摘要质量视图ROUGE,后者仅限于简单的 n-gram 匹配。METEOR分数越高通常表示精度越高。

    • 局限性:在抽象摘要任务中可能不可靠,因为分数依赖于确切的单词和同义词重叠。

  • BERTScore: BERTScore 使用该BERT系列中的额外机器学习模型来计算句子嵌入并比较它们的余弦相似度。 该分数旨在考虑比ROUGE和更高的语言灵活性,METEOR因为语义上相似的句子可能彼此靠得更近。

    • 限制:

      • 继承用于比较段落的模型的局限性。

      • 当一个重要的单词被更改时,对于简短的文本比较可能不可靠。

    • BERTScoreStudio 自动模型评估作业中的默认值

      使用 Studio 创建自动模型评估任务时, SageMaker 使用deberta-xlarge-mnli模型来计算BERTScore。

    • BERTScorefmeval库中可用的选项

      使用该fmeval库,您可以使用SummarizationAccuracyConfig参数配置计算方式。BERTScore支持以下选项:

问题回答

对于问答任务,准确性评估通过以不同的方式将模型生成的答案与给定的真实答案进行比较来衡量模型的问答 (QA) 表现。所有这些分数均为整个数据集的平均值。

注意

这些指标是通过比较生成的答案和真实答案来计算的,以实现完全匹配。因此,对于可以在不修改答案含义的情况下改写答案的问题,它们可能不太可靠。

  • 精确度高于单词的分数:介于0(最差)和1(最佳)之间的数字分数。为了计算该分数,在比较之前对模型输出和基本真值进行了归一化。 在计算精度之前,此评估会删除所有换行符,以解释包含多个不同段落的冗长答案。如果您上传自己的数据集,则可以用任何语言评估@@ 精度

    • precision = true positives / (true positives + false positives)

      • true positives: 模型输出中也包含在基本真值中的单词数。

      • false positives: 模型输出中未包含在基本真值中的单词数。

  • Recall Over Words 分数:数字分数介0于(最差)和1(最佳)之间。 为了计算该分数,在比较之前对模型输出和基本真值进行了归一化。 在计算召回率之前,此评估会删除所有换行符,以解释包含多个不同段落的冗长答案。 由于 recall 仅检查答案是否包含基本事实,不会惩罚冗长,因此我们建议对详细模型使用 recall。如果您上传自己的数据集,则可以用任何语言评估@@ 召回率。

    • recall = true positives / (true positives + false negatives)

      • true positives: 模型输出中也包含在基本真值中的单词数。

      • false negatives: 模型输出中缺少但包含在基本事实中的单词数。

  • F1 Over Words 分数:数字分数介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?”

      • 实地真相:“南极洲”

      • 生成的答案:“在南极洲”

        • 分数:0

      • 生成的答案:“南极洲”

        • 分数:1

  • 准精确匹配分数:二进制分数,其计算方式与 EM 分数类似,但在比较之前对模型输出和地面真值进行了标准化。对于这两者,通过将其转换为小写字母,然后删除文章、标点符号和多余的空白来对输出进行标准化。

    • 0: 不是准精确匹配。

    • 1: 准精确匹配。

    • 例如:

      • 问题where is the world's largest ice sheet located today?”

      • 实地真相:“南极洲”

      • 生成的答案:“在南美”

        • 分数:0

      • 生成的答案:“在南极洲”

        • 分数:1

分类

对于分类任务,精度评估会将预测的输入类别与其给定标签进行比较。所有这些分数都是对整个数据集进行单独平均计算的。

  • 精度分数:二进制分数,用于指示模型预测的标签是否与输入的给定标签完全匹配。

    • 0: 不完全匹配。

    • 1: 完全匹配。

  • 精度分数:介于0(最差)和1(最佳)之间的数字分数。

    • precision = true positives / (true positives + false positives)

      • true positives: 数字输入,其中模型预测了各自输入的给定标签。

      • false positives: 模型预测的标签与各自输入的给定标签不匹配的输入数量。

    • Studio 自动模型评估作业中的精度分数默认值

      使用 Studio 创建自动模型评估作业时,通过 SageMaker 计算真阳性、假阴性和误报的总数,全局计算所有类的精度。

    • fmeval库中提供精确分数选项

      使用该fmeval库,您可以使用ClassificationAccuracyConfig参数配置精度分数的计算方式。支持以下选项: 

      • multiclass_average_strategy确定如何在多类分类设置中跨班级汇总分数。可能的值为{'micro', 'macro', 'samples', 'weighted', 'binary'}None(默认值 ='micro')。  在默认情况下 'micro',通过计算真阳性、假阴性和误报的总数,全局计算所有类别的精度。有关所有其他选项,请参阅 sklearn.metrics.precision_scor e。

        注意

        对于二元分类,我们建议使用'binary'平均策略,该策略与精度的经典定义相对应。

  • 召回分数:介于0(最差)和1(最佳)之间的数字分数。

    • recall = true positives / (true positives + false negatives)

      • true positives: 模型预测其各自输入的给定标签的输入数量。

      • false negatives: 模型未能预测其各自输入的给定标签的输入数量。

    • Studio 自动模型评估作业中的召回分数默认值

      使用 Studio 创建自动模型评估作业时,通过 SageMaker 计算真阳性、误阴性和误报的总数,计算所有类别的全局召回率。

    • fmeval库中提供的 “召回分数” 选项

      使用该fmeval库,您可以使用ClassificationAccuracyConfig参数配置召回分数的计算方式。支持以下选项: 

      • multiclass_average_strategy确定如何在多类分类设置中跨班级汇总分数。可能的值为{'micro', 'macro', 'samples', 'weighted', 'binary'}None(默认值 ='micro')。  在默认情况下 'micro',通过计算真阳性、假阴性和误报的总数,对所有类别的召回率进行全局计算。有关所有其他选项,请参阅 sklearn.metrics.precision_scor e。

        注意

        对于二元分类,我们建议使用'binary'平均策略,该策略与召回的经典定义相对应。

  • 平衡的分类精度:数字分数介于0(最差)和1(最佳)之间。

    • 对于二进制分类:该分数的计算方法与准确性相同。

    • 对于多类别分类:此分数是所有班级的个人召回分数的平均值。

      • 对于以下示例输出:

        查看文本 Ground Truth 标签 类名称 预测标签
        美味的蛋糕!会再次购买。 3 布朗尼 3
        美味的蛋糕!R 推荐。 2 磅蛋糕 2
        太糟糕了!真是太糟糕了。 1 磅蛋糕 2
        • 1 级召回:0

        • 2 级召回:1

        • 第 3 类召回:1

        • 平衡的分类精度:(0+1+1) /3=0.66