评估在 SageMaker 推理上托管的模型 - Amazon Nova

评估在 SageMaker 推理上托管的模型

本指南介绍如何使用开源评估框架 Inspect AI,对部署在 SageMaker 推理端点上的自定义 Amazon Nova 模型进行评估。

注意

有关实操演示,请参阅 SageMaker Inspect AI 快速入门笔记本

概述

您可以使用人工智能研究社区的标准化基准,对部署在 SageMaker 端点上的自定义 Amazon Nova 模型进行评估。该方式支持:

  • 大规模评估自定义 Amazon Nova 模型(微调、蒸馏或其他适配版本)

  • 通过多端点实例并行推理执行评估

  • 使用 MMLU、TruthfulQA、HumanEval 等基准对比模型性能

  • 与现有的 SageMaker 基础设施集成

支持的模型

SageMaker 推理提供程序支持以下模型/端点类型:

  • Amazon Nova 系列模型(Nova Micro、Nova Lite、Nova Lite 2)

  • 通过 vLLM 或兼容 OpenAI 协议的推理服务器部署的模型

  • 任何支持 OpenAI Chat Completions API 格式的端点

先决条件

在开始之前,请确保您满足以下条件:

  • 拥有 AWS 账户,且该账户具备创建和调用 SageMaker 端点的权限

  • 已通过 AWS CLI CLI、环境变量或 IAM 角色配置好 AWS 凭证

  • Python 3.9 或更高版本

所需的 IAM 权限

您的 IAM 用户或角色需具备以下权限:

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

步骤 1:部署 SageMaker端点

运行评估前,需先部署承载目标模型的 SageMaker 推理端点。

有关使用 Amazon Nova 模型创建 SageMaker 推理端点的操作指引,请参阅开始使用

当端点状态变为 InService 后,请记录端点名称,以便在评估命令中使用。

步骤 2:安装评估依赖项

创建 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 凭证

选择以下任一身份验证方式:

选项 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 提供程序

SageMaker 提供程序用于让 Inspect AI 与您的 SageMaker 端点通信。快速入门笔记本中已简化该提供程序的安装流程。

步骤 5:下载评估基准

克隆 Inspect Evals 存储库以获取标准评估基准:

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

该存储库包含的评估基准包括:

  • MMLU 和 mmlu-Pro(知识与推理)

  • TruthfulQA(真实性)

  • HumanEval(代码生成)

  • GSM8K(数学推理)

步骤 6:运行评估

使用您的 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

关键参数

参数 默认值 说明
--max-connections 10 发送到端点的并行请求数。需随实例数量调整(例如:10 个实例 x 25 = 250)。
--max-retries 3 失败请求的重试次数。大规模评估建议设为 50–100。
-M region_name us-east-1 端点部署所在的 AWS 区域。
-M read_timeout 600 请求超时时间(单位:秒)。
-M connect_timeout 60 连接超时时间(单位:秒)。

调优建议

针对多实例端点:

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

--max-connections 设置过高可能导致端点过载并触发节流;设置过低则会造成资源利用率不足。

步骤 7:查看结果

启动 Inspect AI 可视化工具分析评估结果:

inspect view

该工具将展示以下内容:

  • 整体得分与指标

  • 含模型响应的单样本评估结果

  • 错误分析与失败模式

管理终端节点

更新端点

如需使用新模型或新配置更新现有端点:

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)

添加自定义评估基准

您可通过以下工作流向 Inspect AI 添加新的评估基准:

  1. 研究基准数据集格式与评估指标

  2. 参考 inspect_evals/ 中类似的实现

  3. 创建任务文件,将数据集记录转换为 Inspect AI 样本

  4. 实现对应的求解器与评分器

  5. 使用小规模测试运行进行验证

示例任务结构:

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() )

问题排查

常见问题

端点节流或超时

  • 降低 --max-connections

  • 提高 --max-retries

  • 查看端点的 CloudWatch 指标,确认是否存在容量问题

身份验证错误

  • 确认 AWS 凭证配置正确

  • 检查 IAM 权限是否包含 sagemaker:InvokeEndpoint

模型错误

  • 确认端点处于 InService 状态

  • 检查模型是否支持 OpenAI Chat Completions API 格式