

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

# 評估和比較 Amazon SageMaker JumpStart 文字分類模型
<a name="jumpstart-text-classification-evaluation"></a>

SageMaker AI JumpStart 提供多種文字分類模型，將文字分類為預先定義的類別。這些模型會處理情緒分析、主題分類和內容審核等任務。選擇正確的生產模型，需要使用金鑰指標進行仔細評估，包括準確性、F1-score 和馬修斯相關係數 (MCC)。

在本指南中，您可以：
+ 從 JumpStart 目錄部署多個文字分類模型 (DistilBERT 和 BERT)。
+ 跨平衡、偏斜和具有挑戰性資料集執行全面評估。
+ 解譯進階指標，包括馬修斯相關係數 (MCC) 和曲線下面積接收器操作特性分數。
+ 使用系統化比較架構做出資料驅動的模型選擇決策。
+ 使用自動擴展和 CloudWatch 監控來設定生產部署。

下載完整的評估架構：[JumpStart 模型評估套件](samples/sagemaker-text-classification-evaluation-2.zip)。**套件包含具有範例輸出的預先執行結果**，因此您可以在自行部署模型之前預覽評估程序和指標。

## 先決條件
<a name="w2aac37c15c11"></a>

開始前，請確定您有下列項目：
+ [AWS 具有 SageMaker AI 許可的帳戶](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-set-up.html)。
+ [SageMaker AI Amazon SageMaker Studio 存取](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-quick-start.html)。
+ 基本 Python 知識。
+ 了解文字分類概念。

時間和成本：總計 45 分鐘。成本會根據執行個體類型和使用持續時間而有所不同 - 如需目前費率，請參閱 [SageMaker AI 定價](https://aws.amazon.com/sagemaker/pricing/)。

本教學課程包含逐步清除指示，協助您移除所有資源並避免持續收費。

**Topics**
+ [先決條件](#w2aac37c15c11)
+ [設定您的評估環境](jumpstart-text-classification-setup.md)
+ [選取並部署文字分類模型](jumpstart-text-classification-deploy.md)
+ [評估和比較模型效能](jumpstart-text-classification-evaluate.md)
+ [解讀您的結果](jumpstart-text-classification-interpret.md)
+ [大規模部署您的模型](jumpstart-text-classification-scale.md)

# 設定您的評估環境
<a name="jumpstart-text-classification-setup"></a>

設定 SageMaker AI Studio 以存取 JumpStart 模型進行文字分類評估。本節涵蓋在您部署模型之前設定許可並了解相關聯成本。

## 先決條件
<a name="w2aac37c15c19b5"></a>

開始之前，請確定您擁有具有 SageMaker AI 許可 AWS 的帳戶。如需帳戶設定指示，請參閱[設定 SageMaker AI 先決條件](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-set-up.html)。

## 設定 SageMaker AI Studio 進行 JumpStart 模型評估
<a name="w2aac37c15c19b7"></a>

如果您無法存取 SageMaker AI Studio，請參閱[快速設定](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-quick-start.html)以建立網域。

若要在 SageMaker Studio 中開始使用文字分類專案：

1. 開啟 SageMaker AI Studio 控制面板。

1. 選取您的使用者設定檔。

1. 選擇**開啟 Studio**。

1. 等待 Studio 載入 (第一次啟動可能需要 2-3 分鐘)。

1. 驗證 JumpStart 是否出現在左側導覽面板中。

## 了解 SageMaker AI 成本
<a name="w2aac37c15c19b9"></a>

當您使用 SageMaker AI Studio 時，會產生下列成本：
+ SageMaker AI 端點託管 (因執行個體類型和持續時間而異)。
+ 用於資料集和模型成品的 Amazon S3 儲存體。
+ 筆記本執行個體執行期 （合格帳戶的 AWS 免費方案涵蓋的部分使用量）。

**注意**  
使用 Studio 介面不會產生額外費用。

### 成本管理建議
<a name="w2aac37c15c19b9b9"></a>

請遵循下列建議，將評估期間的成本降至最低：
+ 使用為 DistilBERT 和 BERT 模型指定的預設執行個體。
+ 評估後立即刪除端點。
+ 使用 [AWS 定價計算器](https://aws.amazon.com/calculator.aws/#/addService/SageMaker)監控您的用量。
+ 如需目前的儲存費率，請參閱 [Amazon Simple Storage Service 定價](https://aws.amazon.com/s3/pricing/)。

**警告**  
請務必在完成本教學課程之後關閉端點並清除資源，以避免持續收費。

繼續進行[選取並部署文字分類模型](jumpstart-text-classification-deploy.md)。

# 選取並部署文字分類模型
<a name="jumpstart-text-classification-deploy"></a>

部署兩個文字分類模型進行比較：DistilBERT Base Cased 和 BERT Base Uncased。您將看到這些模型之間的差異，並使用最佳執行個體組態部署它們。

## 為什麼選擇這兩個模型
<a name="w2aac37c15c21b5"></a>

這些模型顯示客戶在生產時於效能與成本之間面臨的典型選擇：
+ **BERT Base Uncased**：更大、更準確，但速度較慢且資源更密集。
+ **DistilBERT Base Cased**：更小、更快、更具成本效益，但可能不太準確。

此比較可協助您選擇適合您特定需求的模型。

## 了解目錄中的模型名稱
<a name="w2aac37c15c21b7"></a>

目錄中的文字分類模型名稱包含下列元件：
+ BERT：來自轉換器的雙向編碼器表示法。
+ L-X\$1H-Y\$1A-Z：模型結構，其中：
  + L-X：層數 (X)。
  + H-Y：隱藏大小 (Y)。
  + A-Z：注意力頭數量 (Z)。
+ Small/Base/Large：模型大小和複雜性。
+ Uncased/Cased - 區分大小寫設定。

範例：`Small BERT L-2_H-128_A-2` 指出小型 BERT 模型，其中具有：
+ 2 層。
+ 128 個隱藏單位。
+ 2 個注意力頭。

## 存取 JumpStart 模型目錄
<a name="w2aac37c15c21b9"></a>

導覽至 JumpStart 目錄中的文字分類模型。

1. 開啟 SageMaker AI Studio

1. 在左側導覽窗格中，選擇 **JumpStart**。

1. 在 JumpStart 頁面上，選擇 **Hugging Face**。

1. 選擇**文字分類**。

您應該會在目錄中看到可用的文字分類模型清單，包括 DistilBERT 和 BERT 變體。

## 部署 DistilBERT Base Cased
<a name="w2aac37c15c21c11"></a>

使用預設組態部署 DistilBERT 模型。

1. 在模型清單中，尋找並選擇 **DistilBERT Base Cased** (依 Distilbert)。

1. 在模型詳細資訊頁面上，保留預設執行個體類型。

1. 保留其他所有預設設定，然後選擇**部署**。

1. 等待 5-10 分鐘讓部署完成。

1. 若要驗證部署是否成功，請前往**部署**，然後前往**端點**。

1. 確認 DistilBERT 端點顯示 `InService` 狀態。

## 部署 BERT Base Uncased
<a name="w2aac37c15c21c13"></a>

部署 BERT 模型以與 DistilBERT 進行比較。

1. 返回 JumpStart 中的 Hugging Face 文字分類模型。

1. 尋找並選擇 **BERT Base Uncased** (依 google-bert)。

1. 保留預設執行個體類型，然後選擇**部署**。

1. 若要確認這兩個部署，請檢查這兩個端點是否在端點清單中顯示 `InService`。狀態。

這兩個模型都會出現在您的端點清單中，狀態為 `InService`。

**重要**  
複製並儲存端點名稱。您將需要它們才能進行評估程序。

## 疑難排解
<a name="w2aac37c15c21c15"></a>

如果您遇到部署問題：
+ 對於執行個體類型錯誤，請驗證您使用的是預設執行個體類型，而不是 `ml.m5.large` 之類的 CPU 執行個體。
+ 如果您找不到模型，請使用確切的模型名稱進行搜尋，包括括號中的發布者。
+ 對於失敗的部署，請檢查您區域中的服務運作狀態，或嘗試不同的區域。

在您的模型顯示 `InService` 狀態之後，請繼續[評估和比較模型效能](jumpstart-text-classification-evaluate.md)以評估您部署的模型。

# 評估和比較模型效能
<a name="jumpstart-text-classification-evaluate"></a>

使用評估架構評估您部署的文字分類模型。此架構透過筆記本型方法支援監督式和非監督式評估模式。

## 使用內建資料集
<a name="w2aac37c15c23b5"></a>

針對本教學課程，**我們建議您使用內建的監督式評估資料集**，因為大多數使用者沒有隨時可用的已標記評估資料。內建資料集提供跨不同案例的全方位效能分析：
+ **平衡資料集**：基準效能的均等類別分佈。
+ **偏斜資料集**：用於真實世界測試的不平衡類別。
+ **挑戰資料集**：要對模型穩健性進行壓力測試的邊緣案。

評估會產生關鍵指標，包括準確性、精確度、召回率、F1-score、馬修斯相關係數 (MCC) 和曲線下面積接收器操作特性分數，並提供視覺化曲線進行模型比較。

## 使用自訂資料
<a name="w2aac37c15c23b7"></a>

如果您有自己的已標記資料集，您可以在筆記本中取代它。架構會自動適應您的資料格式，並產生相同的全方位指標。

**支援的資料格式：**
+ **CSV 格式：**兩個資料欄：`text` 和 `label`
+ **標籤格式：**"positive"/"negative"、"LABEL\$10"/"LABEL\$11"、"True"/"False" 或 "0"/"1"
+ **非監督式：**用於可信度分析的單一 `text` 資料欄

## 設定您的評估環境
<a name="w2aac37c15c23b9"></a>

在 SageMaker Amazon SageMaker Studio 中建立 JupyterLab 空間，以執行評估筆記本。

1. 在 Studio 中，從主畫面選擇 **JupyterLab**。

1. 如果您沒有空間：

   1. 選擇**建立空間**。

   1. 輸入描述名稱 (例如 **TextModelEvaluation)**。

   1. 保留預設執行個體類型。

   1. 選擇**執行空間**。

   1. 建立空間後，選擇**開啟 JupyterLab**。

### 存取評估筆記本
<a name="w2aac37c15c23b9b7"></a>

下載 [zip 檔案](samples/sagemaker-text-classification-evaluation-2.zip)並將其解壓縮至您的本機電腦。將整個解壓縮的資料夾上傳至您的 JupyterLab 空間，以開始測試您的模型。套件包含主要評估筆記本、範例資料集、支援 Python 模組，以及完整評估架構的詳細指示。

**注意**  
解壓縮套件後，請檢閱 README 檔案，以取得詳細的設定指示和架構概觀。

繼續[解讀您的結果](jumpstart-text-classification-interpret.md)以了解如何分析評估輸出並做出資料驅動的模型選擇決策。

# 解讀您的結果
<a name="jumpstart-text-classification-interpret"></a>

從您的文字分類模型比較中分析評估指標，為生產部署做出資料驅動的決策。

## 了解評估指標
<a name="w2aac37c15c25b5"></a>

評估會為所有資料集的每個模型提供數個關鍵指標：

### 準確性
<a name="w2aac37c15c25b5b5"></a>

測量正確預測的百分比，最適合平衡資料集。不過，它可能會誤導不平衡的資料，並可能在一個類別主導時顯示人為的高結果。

### 精確度
<a name="w2aac37c15c25b5b7"></a>

透過測量正確的陽性預測百分比，評估模型避免偽陽性的程度。此指標的範圍從 0.0 到 1.0 (越高越好)，且在偽陽性成本高昂時，它就會變得至關重要。

### 取回
<a name="w2aac37c15c25b5b9"></a>

透過測量找到的實際陽性百分比，評估模型捕捉所有陽性案例的程度。其範圍從 0.0 到 1.0 (越高越好)，且在缺少陽性成本高昂時，它就會變得至關重要。

### F1-score
<a name="w2aac37c15c25b5c11"></a>

提供精確度和召回率的調和平均值，將這兩個指標平衡為範圍從 0.0 到 1.0 的單一分數 (越高越好)。

### 馬修斯相關係數 (MCC)
<a name="w2aac37c15c25b5c13"></a>

測量整體二進制分類品質，並做為不平衡資料的最佳指標。它的範圍從 -1.0 到 1.0，其中越高的值表示效能越好，0 代表隨機猜測。

### 曲線下面積接收器操作特性
<a name="w2aac37c15c25b5c15"></a>

評估模型區分類別的程度。它的範圍從 0.0 到 1.0，其中 1.0 代表完美分類，0.5 代表隨機猜測。

### 平均推論時間
<a name="w2aac37c15c25b5c17"></a>

測量預測速度，這對於即時應用程式會變得至關重要。評估此指標時，請同時考慮速度和一致性。

**注意**  
請勿僅依賴準確性進行模型選擇。對於不平衡資料集，精確度、召回率和 MCC，提供更可靠的實際效能指標。

## 比較跨資料集類型的效能
<a name="w2aac37c15c25b7"></a>

**平衡資料集**顯示您模型在理想條件下執行的程度，並相等表示陽性和陰性範例。這裡的強大效能表示模型已了解基本文字分類模式。

**偏斜資料集**顯示模型如何處理真實世界類別不平衡，這在生產案例中很常見。

**具有挑戰性的資料集**會在生產中可能出現的不明確或邊緣案例上測試模型穩健性。

## 模型選擇
<a name="w2aac37c15c25b9"></a>

使用此系統性方法，為您的特定使用案例選取最佳模型。

### 定義您的業務優先順序
<a name="w2aac37c15c25b9b5"></a>

選擇模型之前，請判斷哪些效能因素對您的使用案例最為重要。

1. 識別您的準確性要求和最低可接受的效能閾值。

1. 確定您的延遲限制條件，包括您需要即時 (<100 毫秒) 還是批次處理。

1. 建立推論和擴展的成本考量和預算。

1. 分析您的資料特性，以了解您的生產資料是平衡、偏斜還是高度可變。

### 選擇每個模型的時機
<a name="w2aac37c15c25b9b7"></a>

根據您的評估結果，選擇最適合您使用案例的模型：
+ 當您需要更快速且準確性很好的推論時，請選擇 **DistilBERT**，例如客戶服務聊天機器人中的即時情緒分析、內容審核系統，或回應時間低於 100 毫秒至關重要的應用程式。
+ 當最高準確性比速度更重要時，請選擇 **BERT**，例如法律文件分類、醫療文字分析，或精確度最重要且可接受批次處理的合規應用程式。

### 排定評估資料集的優先順序
<a name="w2aac37c15c25b9b9"></a>

專注於最能代表您實際使用案例的資料集。

1. 將更多權重提供授予實際資料最相似的資料集。

1. 考慮邊緣案例在應用程式中的重要性，並據此排定具有挑戰性資料集效能的優先順序。

1. 平衡跨多個案例的最佳化，而不是只專注於一種資料集類型。

將您的評估結果與這些優先順序進行比較，以選擇最能平衡準確性、速度和成本需求的模型。

現在您已選取偏好的模型，已準備好進行生產部署。繼續進行[大規模部署您的模型](jumpstart-text-classification-scale.md)。

# 大規模部署您的模型
<a name="jumpstart-text-classification-scale"></a>

為您的 SageMaker AI 端點設定自動擴展和 CloudWatch 監控，使其可以進行生產。

## 為什麼生產監控對文字分類很重要
<a name="w2aac37c15c27b5"></a>

文字分類工作負載需要監控，因為它們：
+ 體驗處理爆量時流量模式的變化。
+ 需要亞秒級回應時間。
+ 需要透過自動擴展進行成本最佳化。

## 先決條件
<a name="w2aac37c15c27b7"></a>

開始之前，請確定您具有下列先決條件：
+ 您從上一節部署的 SageMaker AI 端點。
+ 您的端點名稱 (例如，jumpstart-dft-hf-tc)。
+ Your AWS 區域 （例如 us-east-2)。

如需端點建立或疑難排解，請參閱[即時推論](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html)。

## 設定生產監控
<a name="w2aac37c15c27b9"></a>

設定 CloudWatch 監控以追蹤模型在生產中的效能。

1. 在您的 JupyterLab 空間中，從您先前上傳的評估套件開啟 `sagemaker_production_monitoring.ipynb` 筆記本。

1. 在組態區段中更新您的端點名稱和區域。

1. 請遵循筆記本指示來設定：
   + 自動擴展 (1-10 個執行個體，視流量而定）。
   + 延遲和調用閾值的 CloudWatch 警示。
   + 用於視覺化監控的指標儀表板。

## 驗證您的設定
<a name="w2aac37c15c27c11"></a>

完成筆記本步驟後，請確認您具有：
+ **端點狀態**：`InService`。
+ **自動擴展**：已設定 1-10 個執行個體。
+ **CloudWatch 警示**：2 個警示監控。
+ **指標**：已註冊 15 個以上指標。

**注意**  
警示一開始可能會顯示 `INSUFFICIENT_DATA` - 這是正常的，並且會隨著用量而變更為 `OK`。

## 監控您的端點
<a name="w2aac37c15c27c13"></a>

透過 AWS 管理主控台存取視覺化監控：
+ [CloudWatch 指標](https://console.aws.amazon.com/cloudwatch/home#metricsV2:graph=~();query=AWS/SageMaker)
+ [CloudWatch 警示](https://console.aws.amazon.com/cloudwatch/home#alarmsV2:)

如需詳細資訊，請參閱[監控 SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-overview.html)。

## 管理成本和清除資源
<a name="w2aac37c15c27c15"></a>

您的監控設定提供寶貴的生產洞見，但也會透過 CloudWatch 指標、警示和自動擴展政策持續產生 AWS 費用。了解如何管理這些成本對於符合成本效益的操作至關重要。清除不再需要的專案資源。

**警告**  
即使不處理請求，您的端點仍會繼續產生費用。若要停止所有費用，必須刪除您的端點。如需指示，請參閱[刪除端點和資源](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-delete-resources.html)。

如需進階監控組態，請參閱 [SageMaker AI 的 CloudWatch 指標](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-cloudwatch.html)。