

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

# 評估託管在 SageMaker 推論上的模型
<a name="nova-eval-on-sagemaker-inference"></a>

本指南說明如何使用 [Inspect AI](https://github.com/UKGovernmentBEIS/inspect_ai) 開放原始碼評估架構，評估部署在 SageMaker 推論端點上的自訂 Amazon Nova 模型。

**注意**  
如需實作演練，請參閱 [SageMaker Inspect AI 快速入門筆記本](https://github.com/aws-samples/amazon-nova-samples/tree/main/customization/sagemaker-inference/sagemaker_inspect_quickstart.ipynb)。

## 概觀
<a name="nova-eval-sagemaker-overview"></a>

您可以使用 AI 研究社群的標準化基準，評估部署在 SageMaker 端點上的自訂 Amazon Nova 模型。此方法可讓您：
+ 大規模評估自訂的 Amazon Nova 模型 （微調、分割或以其他方式調整）
+ 跨多個端點執行個體以平行推論執行評估
+ 使用 MMLU、TruthfulQA 和 HumanEval 等基準比較模型效能
+ 與您現有的 SageMaker 基礎設施整合

## 支援的模型
<a name="nova-eval-sagemaker-supported-models"></a>

SageMaker 推論提供者適用於：
+ Amazon Nova 模型 (Nova Micro、Nova Lite、Nova Lite 2)
+ 透過 vLLM 或 OpenAI 相容推論伺服器部署的模型
+ 支援 OpenAI 聊天完成 API 格式的任何端點

## 先決條件
<a name="nova-eval-sagemaker-prerequisites"></a>

開始前，請確保您具備以下條件：
+  AWS 帳戶 具有建立和叫用 SageMaker 端點許可的
+ AWS 透過 AWS CLI、環境變數或 IAM 角色設定的登入資料
+ Python 3.9 或更新版本

**必要的 IAM 許可**

您的 IAM 使用者或角色需要下列許可：

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sagemaker:InvokeEndpoint",
        "sagemaker:DescribeEndpoint"
      ],
      "Resource": "arn:aws:sagemaker:*:*:endpoint/*"
    }
  ]
}
```

## 步驟 1：部署 SageMaker 端點
<a name="nova-eval-sagemaker-step1"></a>

在執行評估之前，您需要執行模型的 SageMaker 推論端點。

如需使用 Amazon Nova 模型建立 SageMaker 推論端點的說明，請參閱 [開始使用](nova-sagemaker-inference-getting-started.md)。

一旦您的端點處於 `InService` 狀態，請記下要用於評估命令的端點名稱。

## 步驟 2：安裝評估相依性
<a name="nova-eval-sagemaker-step2"></a>

建立 Python 虛擬環境並安裝必要的套件。

```
# Create virtual environment
python3.12 -m venv venv
source venv/bin/activate

# Install uv for faster package installation
pip install uv

# Install Inspect AI and evaluation benchmarks
uv pip install inspect-ai inspect-evals

# Install AWS dependencies
uv pip install aioboto3 boto3 botocore openai
```

## 步驟 3：設定 AWS 登入資料
<a name="nova-eval-sagemaker-step3"></a>

選擇下列其中一種身分驗證方法：

**選項 1： AWS CLI （建議）**

```
aws configure
```

出現提示時，輸入您的 AWS 存取金鑰 ID、私密存取金鑰和預設區域。

**選項 2：環境變數**

```
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_DEFAULT_REGION=us-west-2
```

**選項 3：IAM 角色**

如果在 Amazon EC2 或 SageMaker 筆記本上執行，會自動使用執行個體的 IAM 角色。

**驗證登入資料**

```
import boto3

sts = boto3.client('sts')
identity = sts.get_caller_identity()
print(f"Account: {identity['Account']}")
print(f"User/Role: {identity['Arn']}")
```

## 步驟 4：安裝 SageMaker 提供者
<a name="nova-eval-sagemaker-step4"></a>

SageMaker 提供者可讓 Inspect AI 與您的 SageMaker 端點通訊。在[快速入門筆記本](https://github.com/aws-samples/amazon-nova-samples/tree/main/customization/sagemaker-inference/sagemaker_inspect_quickstart.ipynb)中簡化了提供者安裝程序。

## 步驟 5：下載評估基準
<a name="nova-eval-sagemaker-step5"></a>

複製檢查 Evals 儲存庫以存取標準基準：

```
git clone https://github.com/UKGovernmentBEIS/inspect_evals.git
```

此儲存庫包含基準，例如：
+ MMLU 和 MMLU-Pro （知識和推理）
+ TruthfulQA （真實性）
+ HumanEval （程式碼產生）
+ GSM8K （數學推理）

## 步驟 6：執行評估
<a name="nova-eval-sagemaker-step6"></a>

使用您的 SageMaker 端點執行評估：

```
cd inspect_evals/src/inspect_evals/

inspect eval mmlu_pro/mmlu_pro.py \
  --model sagemaker/my-nova-endpoint \
  -M region_name=us-west-2 \
  --max-connections 256 \
  --max-retries 100 \
  --display plain
```

**金鑰參數**


| 參數 | 預設 | Description | 
| --- | --- | --- | 
| --max-connections | 10 | 對端點的平行請求數量。使用執行個體計數擴展 （例如，10 個執行個體 × 25 = 250)。 | 
| --max-retries | 3 | 重試失敗請求的嘗試。使用 50-100 進行大型評估。 | 
| -M region\$1name | us-east-1 | AWS 部署端點的區域。 | 
| -M read\$1timeout | 600 | 請求以秒為單位的逾時。 | 
| -M connect\$1timeout | 60 | 連線逾時，以秒為單位。 | 

**調校建議**

對於多執行個體端點：

```
# 10-instance endpoint example
--max-connections 250   # ~25 connections per instance
--max-retries 100       # Handle transient errors
```

設定`--max-connections`過高可能會壓倒端點並導致限流。設定太低，未充分利用容量。

## 步驟 7：檢視結果
<a name="nova-eval-sagemaker-step7"></a>

啟動檢查 AI 檢視器以分析評估結果：

```
inspect view
```

檢視器會顯示：
+ 整體分數和指標
+ 每個範例結果與模型回應
+ 錯誤分析和失敗模式

## 管理端點
<a name="nova-eval-sagemaker-managing-endpoints"></a>

**更新端點**

若要使用新模型或組態更新現有端點：

```
import boto3

sagemaker = boto3.client('sagemaker', region_name=REGION)

# Create new model and endpoint configuration
# Then update the endpoint
sagemaker.update_endpoint(
    EndpointName=EXISTING_ENDPOINT_NAME,
    EndpointConfigName=NEW_ENDPOINT_CONFIG_NAME
)
```

**刪除端點**

```
sagemaker.delete_endpoint(EndpointName=ENDPOINT_NAME)
```

## 加入自訂基準
<a name="nova-eval-sagemaker-custom-benchmarks"></a>

您可以使用下列工作流程，將新基準新增至檢查 AI：

1. 研究基準的資料集格式和評估指標

1. 在 中檢閱類似的實作 `inspect_evals/`

1. 建立任務檔案，將資料集記錄轉換為檢查 AI 範例

1. 實作適當的求解器和評分器

1. 使用小型測試執行進行驗證

範例任務結構：

```
from inspect_ai import Task, task
from inspect_ai.dataset import hf_dataset
from inspect_ai.scorer import choice
from inspect_ai.solver import multiple_choice

@task
def my_benchmark():
    return Task(
        dataset=hf_dataset("dataset_name", split="test"),
        solver=multiple_choice(),
        scorer=choice()
    )
```

## 疑難排解
<a name="nova-eval-sagemaker-troubleshooting"></a>

**常見問題**

**端點限流或逾時**
+ 減少 `--max-connections`
+ 增加 `--max-retries`
+ 檢查端點 CloudWatch 指標是否有容量問題

**身分驗證錯誤**
+ 確認已正確設定 AWS 登入資料
+ 檢查 IAM 許可包括 `sagemaker:InvokeEndpoint`

**模型錯誤**
+ 確認端點處於 `InService` 狀態
+ 檢查模型是否支援 OpenAI 聊天完成 API 格式

## 相關資源
<a name="nova-eval-sagemaker-related-resources"></a>
+ [檢查 AI 文件](https://inspect.ai-safety-institute.org.uk/)
+ [檢查 Evals 儲存庫](https://github.com/UKGovernmentBEIS/inspect_evals)
+ [SageMaker 開發人員指南](https://docs.aws.amazon.com//sagemaker/latest/dg/whatis.html)
+ [部署模型以進行推論](https://docs.aws.amazon.com//sagemaker/latest/dg/deploy-model.html)
+ [設定 AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/cli-chap-configure.html)