

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

# 語意穩健性
<a name="clarify-semantic-robustness-evaluation"></a>

 評估模型輸出由於輸入中的小幅語意保留變更而變更的程度。Foundation Model Evaluations (FMEval) 會測量模型輸出由於鍵盤打錯字、隨機變更為大寫，以及隨機新增或刪除空格而變更的方式。

 Amazon SageMaker AI 支援從 Amazon SageMaker Studio 或使用 `fmeval` 程式庫執行語意穩健性評估。
+  **在 Studio 中執行評估：**在 Studio 中建立的評估任務會使用預先選取的預設值，來快速評估模型效能。無法在 Studio 中建立開放式生成的語意穩健性評估。您必須使用 `fmeval` 程式庫建立它們。
+  **使用 `fmeval` 程式庫執行評估：**使用 `fmeval` 程式庫建立的評估任務提供擴充選項來設定模型效能評估。

## 受支援任務類型
<a name="clarify-semantic-robustness-evaluation-task"></a>

 下列任務類型及其相關聯的內建資料集支援語意穩健性評估。使用者也可以攜帶自己的資料集。根據預設，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)  |   | 
|  開放式生成  |  [T-REx](https://hadyelsahar.github.io/t-rex/)、[BOLD](https://github.com/amazon-science/bold)、[WikiText-2](https://huggingface.co/datasets/wikitext/viewer/wikitext-2)  |   | 

## 擾動類型
<a name="clarify-semantic-robustness-evaluation-perturbation"></a>

 語意穩健性評估會進行下列三種擾動的其中之一。您可以在設定評估任務時選取擾動類型。這三種擾動全都改編自 NL-Augmenter。

 範例模型輸入：`A quick brown fox jumps over the lazy dog`。  
+  [奶油手](https://github.com/GEM-benchmark/NL-Augmenter/blob/c591130760b453b3ad09516849dfc26e721eeb24/nlaugmenter/transformations/butter_fingers_perturbation)：由於按下相鄰的鍵盤鍵而導致打字錯誤。

  ```
  W quick brmwn fox jumps over the lazy dig
  ```
+  [隨機大寫](https://github.com/GEM-benchmark/NL-Augmenter/blob/c591130760b453b3ad09516849dfc26e721eeb24/nlaugmenter/transformations/random_upper_transformation/)：將隨機選取的字母變更為大寫。

  ```
  A qUick brOwn fox jumps over the lazY dog
  ```
+  [空格新增移除](https://github.com/GEM-benchmark/NL-Augmenter/blob/c591130760b453b3ad09516849dfc26e721eeb24/nlaugmenter/transformations/whitespace_perturbation)：從輸入中隨機新增和移除空格。

  ```
  A q uick bro wn fox ju mps overthe lazy dog
  ```

## 運算值
<a name="clarify-semantic-robustness-evaluation-values"></a>

 此評估會根據原始、未受干擾的輸入來測量模型輸出之間的效能變更，並根據一系列擾動版本的輸入來測量模型輸出。如需評估所需提示結構的相關資訊，請參閱[在 Studio 中建立自動模型評估任務](clarify-foundation-model-evaluate-auto-ui.md)。

 效能變更是原始輸入分數與擾動輸入分數之間的平均差異。評估此效能變更所測得的分數取決於任務類型：

### 摘要
<a name="clarify-semantic-robustness-evaluation-summarization"></a>

 對於摘要任務，語意穩健性會在使用擾動輸入時測量下列分數，以及每個分數的 Delta。Delta 分數代表原始輸入分數與擾動輸入分數之間的平均絕對差異。
+  **Delta ROUGE 分數：**原始和擾動輸入的 ROUGE 分數的平均絕對差異。ROUGE 分數的計算方式與 [摘要](clarify-accuracy-evaluation.md#clarify-accuracy-evaluation-summarization) 中的 ROUGE 分數相同。
+  **Delta METEOR 分數：**原始和擾動輸入的 METEOR 分數的平均絕對差異。METEOR 分數的計算方式與 [摘要](clarify-accuracy-evaluation.md#clarify-accuracy-evaluation-summarization) 中的 METEOR 分數相同。
+  **Delta BERTScore：**原始和擾動輸入的 BERTScore 平均絕對差異。BERTScores 的運算方式與 [摘要](clarify-accuracy-evaluation.md#clarify-accuracy-evaluation-summarization) 中的 BERTScore 相同。

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

 對於問答任務，語意穩健性會在使用擾動輸入時測量下列分數，以及每個分數的 Delta。Delta 分數代表原始輸入分數與擾動輸入分數之間的平均絕對差異。
+  **Delta F1 Over Words 分數：**原始和擾動輸入的 F1 Over Words 分數的平均絕對差異。F1 Over Words 分數的計算方式與 [回答問題](clarify-accuracy-evaluation.md#clarify-accuracy-evaluation-qa) 中的 F1 Over Words 分數相同。
+  **Delta 完全相符分數：**原始和擾動輸入的完全相符分數的平均絕對差異。完全相符分數的計算方式與 [回答問題](clarify-accuracy-evaluation.md#clarify-accuracy-evaluation-qa) 中的完全相符分數相同。
+  **Delta 準完全相符分數：**原始和擾動輸入的準完全相符分數的平均絕對差異。準完全相符分數的計算方式與 [回答問題](clarify-accuracy-evaluation.md#clarify-accuracy-evaluation-qa) 中的準完全相符分數相同 
+  **Delta Precision Over Words 分數：**原始和擾動輸入的 Precision Over Words 分數的平均絕對差異。Precision Over Words 分數的計算方式與 [回答問題](clarify-accuracy-evaluation.md#clarify-accuracy-evaluation-qa) 中的 Precision Over Words 分數相同。
+  **Delta Recall Over Words 分數：**原始和擾動輸入的 Recall Over Words 分數的平均絕對差異。Recall Over Words 分數的計算方式與 [回答問題](clarify-accuracy-evaluation.md#clarify-accuracy-evaluation-qa) 中的 Recall Over Words 分數相同。

### 分類
<a name="clarify-semantic-robustness-evaluation-classification"></a>

 對於分類任務，語意穩健性會在使用擾動輸入時測量準確度，以及每個分數的 Delta。Delta 分數代表原始輸入分數與擾動輸入分數之間的平均絕對差異。
+  **Delta 準確度分數：**原始和擾動輸入的準確度分數的平均絕對差異。準確度分數的計算方式與 [分類](clarify-accuracy-evaluation.md#clarify-accuracy-evaluation-classification) 中的準確度分數相同。

### 開放式生成
<a name="clarify-semantic-robustness-evaluation-open-ended"></a>

無法在 Studio 中建立開放式生成的語意穩健性評估。您必須使用 `fmeval` 程式庫搭配 [GeneralSemanticRobustness](https://github.com/aws/fmeval/blob/91e675be24800a262faf8bf6e59f07522b5314ea/src/fmeval/eval_algorithms/general_semantic_robustness.py#L81C7-L81C32) 建立它們。語意穩健性評估不會計算開放式生成的分數差異，而是測量原始輸入與擾動輸入之間模型生成的不相似性。此不相似性是使用下列策略來測量的：
+ ***[單字錯誤率](https://huggingface.co/spaces/evaluate-metric/wer)** (WER)：*透過計算將第一代轉換為第二代所必須變更的單字百分比來衡量兩代之間的語法差異。如需 WER 計算的詳細資訊，請參閱 [HuggingFace 關於單字錯誤率的文章](https://huggingface.co/spaces/evaluate-metric/wer)。
  +  例如：
    +  **輸入 1**：“This is a cat” 
    +  **輸入 2**：“This is a dog” 
    +  **必須變更的單字數**：1/4 或 25% 
    +  **WER**：0.25 
+ **BERTScore 不相似性 (BSD)：**從 1 減去 BERTScore，測量兩代之間的語義差異。BSD 可能會考慮未包含在 WER 中的其他語言靈活性，因為語義相似的句子可能彼此更緊密嵌入。
  +  例如，雖然第 2 代和第 3 代與第 1 代個別相比時 WER 相同，但 BSD 分數會有所不同，以說明語義意義。
    +  **gen1 (原始輸入)**：`"It is pouring down today"`
    +  **gen2 (擾動輸入 1)**：`"It is my birthday today"`
    + **gen3 (擾動輸入 2)**：`"It is very rainy today"`
    +  `WER(gen1, gen2)=WER(gen2, gen3)=0.4` 
    +  `BERTScore(gen1, gen2)=0.67` 
    +  `BERTScore(gen1, gen3)=0.92` 
    +  `BSD(gen1, gen2)= 1-BERTScore(gen1, gen2)=0.33` 
    +  `BSD(gen2 ,gen3)= 1-BERTScore(gen2, gen3)=0.08` 
  +  支援下列選項作為 [GeneralSemanticRobustnessConfig](https://github.com/aws/fmeval/blob/91e675be24800a262faf8bf6e59f07522b5314ea/src/fmeval/eval_algorithms/general_semantic_robustness.py#L54C7-L54C38) 參數的一部分：  
    +  `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)`" 

 **非確定性模型** 

 當模型產生策略為非確定性時，例如在具有非零溫度的 LLM 中，即使輸入相同，輸出也可能會變更。在這些情況下，報告原始和擾動輸入的模型輸出之間的差異可能會顯示人為低強健性。為了解譯非確定性策略，語意穩健性評估會減去基於相同輸入的模型輸出之間的平均相似性，以標準化不相似性分數。  

`max(0,d−dbase​)`
+  `d`：兩代之間的不相似性分數 (單字錯誤率或 BERTScore 不相似性)。
+  `dbase​`：相同輸入上模型輸出之間的不相似性。