

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 準確性
<a name="clarify-accuracy-evaluation"></a>

 此評估會比較模型輸出與資料集中包含的基準真相答案，以測量模型在任務中執行的準確度。

 Amazon SageMaker AI 支援從 Amazon 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)、[政府報告資料集](https://gov-report-data.github.io/) |  內建資料集僅限英文，但某些指標與語言無關。您可以帶入任何語言的資料集。 | 
|  回答問題  |  [BoolQ](https://github.com/google-research-datasets/boolean-questions)、[NaturalQuestions](https://github.com/google-research-datasets/natural-questions)、[TriviaQA](http://nlp.cs.washington.edu/triviaqa/) |  內建資料集僅限英文，但某些指標與語言無關。您可以帶入任何語言的資料集。 | 
|  分類  | [女性電子商務服裝評論](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 元語法)，以測量摘要品質。評估 ROUGE 分數時，分數越高表示模型能夠建立更好的摘要。
  +  值的範圍從 `0` (不相符) 到 `1` (完美相符)。
  +  指標區分大小寫。
  +  **限制**：對抽象摘要任務可能不可靠，因為分數依賴確切的單字重疊。
  +  範例 ROUGE 二元語法計算
    + **基準真相摘要**："The dog played fetch with the ball in the park."
    + **產生的摘要**："The dog played with the ball."
    + **ROUGE-2**：計算參考與候選項目之間共同的二元語法 (句子中的兩個相鄰單字) 數量。有 4 個共同的二元語法 ("the dog"、"dog played"、"with the"、"the ball")。
    + **除以基準真相摘要中的二元語法總數**：9 
    + `ROUGE-2 = 4/9 = 0.444`
  +  **Studio 自動模型評估任務中的 ROUGE 分數預設值** 

    當您使用 Studio 建立自動模型評估任務時，SageMaker AI 會將 `N=2` 用於 ROUGE 分數計算中使用的 N 元語法。因此，模型評估任務會使用二元語法進行比對。Studio 任務也會使用 Porter [詞幹](https://en.wikipedia.org/wiki/Stemming)從所有提示中除去字尾。例如，字串 `raining` 會截斷至 `rain`。
  +  **`fmeval` 程式庫中可用的 ROUGE 分數選項** 

    使用 `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 [詞幹](https://en.wikipedia.org/wiki/Stemming)來除去字尾。  
      +  例如：“raining” 被截斷為 “rain”。
+  **明確排序翻譯評估指標 (METEOR) 分數：**METEOR 類似於 ROUGE-1，但也包含詞幹和同義詞比對。與 ROUGE 相比，它提供更全面的摘要品質檢視，僅限於簡單的 n 元語法比對。METEOR 分數越高表示準確度越高。
  +  **限制**：對抽象摘要任務可能不可靠，因為分數依賴確切的單字和同義字重疊。
+  **BERTScore：**BERTScore 使用來自 BERT 系列的額外 ML 模型，來計算句子嵌入並比較其餘弦相似性。此分數旨在考慮比 ROUGE 和 METEOR 更多的語言靈活性，因為語義相似的句子可能彼此嵌入得更緊密。
  +  **限制：**
    +  繼承用於比較段落的模型限制。
    +  變更單一重要單字時，短文字比較可能不可靠。
  +  **Studio 自動模型評估任務中的 BERTScore 預設值** 

     當您使用 Studio 建立自動模型評估任務時，SageMaker AI 會使用 `[deberta-xlarge-mnli](https://github.com/microsoft/DeBERTa)` 模型來計算 BERTScore。
  +  **`fmeval` 程式庫中可用的 BERTScore 選項** 

     使用 `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)"` (default) 
      +  `"[roberta-large-mnli](https://github.com/facebookresearch/fairseq/tree/main/examples/roberta)"`

### 回答問題
<a name="clarify-accuracy-evaluation-qa"></a>

 對於問答任務，準確性評估會測量模型的問答 (QA) 效能，方法是以不同的方式比較模型產生的答案與指定的基準真相答案。所有這些分數都會對整個資料集進行平均。

**注意**  
這些指標的計算方式是比較產生的答案與基準真相答案，以取得完全相符項目。因此，對於可以重述答案而不修改其意義的問題，它們可能不可靠。
+  **Precision Over Words 分數：**範圍從 `0` (最差) 到 `1` (最佳) 的數值分數。為了計算此分數，模型輸出和基準真相會在比較之前標準化。在計算精確度之前，此評估會移除任何新行字元，以考慮具有幾個不同段落的冗長答案。如果您上傳自己的資料集，則可以在任何語言上評估**精確度**。
  +  `precision = true positives / (true positives + false positives)` 
    +  `true positives`：模型輸出中也包含在基準真相中的單字數量。
    +  `false positives`：模型輸出中不包含在基準真相中的單字數量。
+  **Recall Over Words 分數：**範圍從 `0` (最差) 到 `1` (最佳) 的數值分數。若要計算此分數，模型輸出和基準真相會在比較之前標準化。在計算召回率之前，此評估會移除任何新行字元，以考慮具有幾個不同段落的冗長答案。因為召回率只會檢查答案是否包含基準真相，並且不會懲罰冗長，所以我們建議對冗長模型使用召回率。如果您上傳自己的資料集，則可以在任何語言上評估**召回率**。
  +  `recall = true positives / (true positives + false negatives)` 
    +  `true positives`：模型輸出中也包含在基準真相中的單字數量。
    +  `false negatives`：模型輸出中遺失但包含在基準真相中的單字數量。
+  **F1 Over Words 分數：**範圍從 `0` (最差) 到 `1` (最佳) 的數值分數。F1 是精確度和召回率的調和平均數。為了計算此分數，模型輸出和基準真相會在比較之前標準化。在計算 F1 之前，此評估會移除任何新行字元，以考慮具有幾個不同段落的冗長答案。如果您上傳自己的資料集，則可以在任何語言上評估 *F1 Over Words*。
  +  `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_tw/sagemaker/latest/dg/clarify-accuracy-evaluation.html)
      +  **類別 1 召回率**：0 
      +  **類別 2 召回率**：1 
      +  **類別 3 召回率**：1 
      +  **平衡的分類準確度**：(0\$11\$11)/3=0.66 