AWS Machine Learning Blog

Run NVIDIA Nemotron and OpenAI GPT OSS models on Amazon Bedrock in AWS GovCloud (US)

6.9内容质量
Run NVIDIA Nemotron and OpenAI GPT OSS models on Amazon Bedrock in AWS GovCloud (US)

TL;DR · AI 摘要

Run NVIDIA Nemotron and OpenAI GPT OSS models on Amazon Bedrock in AWS GovCloud US Artificial Intelligence Run NVIDIA Ne...

核心要点

  • 主题聚焦:Run NVIDIA Nemotron and OpenAI GPT OSS models on
  • 来源:AWS Machine Learning Blog,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#前端#后端#云计算
打开原文

在 AWS GovCloud (US) 的 Amazon Bedrock 上运行 NVIDIA Nemotron 和 OpenAI GPT OSS 模型 | 人工智能

在 AWS GovCloud (US) 的 Amazon Bedrock 上运行 NVIDIA Nemotron 和 OpenAI GPT OSS 模型

在 AWS GovCloud (US) 中运行工作负载的政府机构需要与商业领域同步的人工智能能力。同时,他们不能妥协于其任务所需的安全性和合规性控制。随着开源权重的基础模型(FMs)从实验阶段进入任务系统,两个要求塑造了每个模型决策。首先,模型必须满足任务所需的性能。其次,推理环境必须满足机构的安全、合规和数据驻留义务。对于美国政府机构、国防和情报社区以及为其提供服务的承包商而言,这些要求是不可妥协的。访问先进的开源权重模型对于情报分析、任务规划、采购和合同文件审查、安全日志分析以及合规自动化等工作至关重要。这种访问必须不需要将敏感数据移出其管理边界。

我们很兴奋地在 AWS GovCloud (US) 中引入基于美国的前沿开源权重模型。通过此次发布,Amazon Bedrock 现在支持 OpenAI 的开源权重 GPT OSS 模型(120B 和 20B)以及 NVIDIA Nemotron 模型(Nano 9B v2、Nano 12B v2、Nano 30B、Super 120B)。通过这些新模型,您可以使用多样且高性能的基础模型构建和扩展生成式 AI 应用程序。这提供了通过单一统一 API 使用 OpenAI 和 NVIDIA 最新模型以及其它领先 AI 模型的灵活性。您可以使用这个统一 API 为每个具体用例选择合适的模型,而无需更改应用程序代码。

AWS GovCloud (US) 提供了一组隔离的 AWS 区域,专门用于托管敏感数据和受监管的工作负载。这些区域物理位于美国,并且仅由美国公民管理。它们帮助客户满足包括 FedRAMP High(临时运营授权)和 DoD 云计算安全需求指南(SRG)影响等级 2、4 和 5 在内的合规框架。其他合规框架包括国际武器贸易条例(ITAR)和刑事司法信息系统(CJIS)。

Amazon Bedrock 是一项完全托管的服务,用于访问来自独立模型提供商的基础模型,所有推理过程均在 AWS 运营的基础设施上运行。

通过 Amazon Bedrock,推理过程在 AWS GovCloud (US) 的隔离边界内运行,基础设施由美国本土的美国公民运营。有关 Amazon Bedrock 如何处理您的数据的详细信息,请参阅《Amazon Bedrock 中的数据保护》。

OpenAI 的开源权重 GPT OSS 模型和 NVIDIA Nemotron 开源权重模型现已在 AWS GovCloud (US) 的 Amazon Bedrock 上提供。此次发布将两个开源权重模型家族引入 AWS GovCloud (US) 区域:OpenAI 的 gpt-oss-120b 和 gpt-oss-20b,以及 NVIDIA Nemotron 3 家族,包括 Nemotron 3 Super 120B 和 Nemotron 3 Nano 系列模型。通过这些模型,您可以构建代理应用程序和任务流程,例如自动安全控制评估、多文档智能合成、合同和采购分析以及政策合规检查。所有这些操作均在 AWS GovCloud (US) 的合规边界内运行。

在本文中,我们将介绍目前在AWS GovCloud(US)中可用的模型及其功能、数据驻留的推理选项、可用的服务层级以及如何入门。

关于模型

本节将介绍目前在AWS GovCloud(US)中可用的两个开源权重模型家族及其各自的特点。

NVIDIA Nemotron

NVIDIA Nemotron系列同时提供小型语言模型(SLM)和大型语言模型(LLM)功能,专为计算效率和专用智能体AI系统的准确性而设计。NVIDIA对这两个模型的描述如下:

  • NVIDIA Nemotron 3 Super 是一个120B开放混合专家(MoE)模型,适用于复杂的多智能体工作负载,总共有1200亿个参数,每个token仅激活120亿个参数。这种MoE设计相比上一代可实现高达5倍的吞吐量,从而实现成本高效的推理,其100万token的上下文窗口使智能体能够在长期、多步骤任务中保持专注。
  • NVIDIA Nemotron 3 Nano 是一个300亿参数的开放模型,每个token激活约30亿个参数,相比上一代吞吐量提高4倍,并将推理token生成量减少高达60%。其100万token的上下文窗口支持长期运行的多步骤智能体工作流。

如需了解AWS GovCloud(US)中可用的完整NVIDIA Nemotron模型列表,请参阅Amazon Bedrock上的NVIDIA模型。

OpenAI GPT OSS

OpenAI的GPT OSS模型是开源权重的文本到文本模型,专为推理、智能体和开发人员任务而设计,支持可调节的推理努力程度和外部工具集成。本文重点介绍两个变体:

gpt-oss-120b 是OpenAI的1200亿参数开源权重模型,适用于生产、通用和高推理场景。

gpt-oss-20b 是200亿参数模型,专为低延迟和本地或专用场景而设计。

这两个模型均提供128K token的上下文窗口和高达16K的输出token,并且都接受文本输入并生成文本输出。由于权重是开放的,组织可以独立评估模型架构、查看发布的模型卡片,并在代表性工作负载上运行自己的基准测试。对于政府团队而言,这种透明度支持组织风险评估,使客户安全团队能够在部署前评估模型行为,并与许多美国政府机构正在采用的零信任原则保持一致。

如需了解AWS GovCloud(US)中可用的完整OpenAI模型列表,请参阅Amazon Bedrock上的OpenAI模型。

在合规边界内的无服务器推理

Amazon Bedrock上的NVIDIA Nemotron和GPT OSS模型由Amazon Bedrock中的下一代推理引擎提供服务。为了理解架构,区分引擎和端点是有帮助的:引擎是底层的提供基础设施,设计上采用Model Deployment Account隔离和零操作员访问权限,而bedrock-mantle端点是应用程序调用的OpenAI兼容HTTPS API,用于向引擎发送请求。对于机构而言,无需提供基础设施,无需管理GPU,也无需具备模型部署的专业知识。

下一代推理引擎基于零操作员访问设计构建。无论是来自 AWS、客户还是模型提供商的操作员,均无法访问客户数据(如推理提示或完成内容)。结合 AWS GovCloud (US) 的隔离边界,这为政府团队提供了强大的数据保护基础。关于技术细节,请参阅《探索 Mantle 的零操作员访问设计》。

Amazon Bedrock 提供两个端点用于调用这些模型。bedrock-mantle 端点是面向下一代推理引擎的 OpenAI 兼容 API,因此可以通过 OpenAI Python 和 TypeScript SDK 调用该端点。它使用 Chat Completions 和 Responses API。bedrock-runtime 端点则通过 AWS SDK 使用 Converse 和 InvokeModel API,并可访问 Amazon Bedrock 原生功能(如 Guardrails)。两个端点的代码示例可在《入门》部分找到。

区域可用性与数据驻留

Amazon Bedrock 提供多种选项来指定推理请求的处理位置。In-Region 模式将所有请求保留在单一区域内部;Geo Cross-Region 推理模式则在地理区域内跨区域路由请求以实现更高吞吐量,确保数据始终位于该地理边界内。对于 AWS GovCloud (US) 中的 NVIDIA Nemotron 和 GPT OSS 模型,选项如下:

  • In-Region 推理可在 us-gov-west-1(AWS GovCloud (US-West))区域使用。
  • Geo Cross-Region 推理可通过专用的 AWS GovCloud (US) 跨区域推理 ID 实现,该 ID 能在 us-gov-west-1 和 us-gov-east-1 之间路由请求。流量仍保留在 AWS GovCloud (US) 边界内,同时实现两个区域的容错能力。

这些模型的所有推理均位于 AWS GovCloud (US) 边界内。全球跨区域推理(在商业 AWS 全球区域之间路由请求)在 AWS GovCloud (US) 中不可用。您可以根据需求在单区域和 Geo 跨区域之间进行选择。

服务层级

Amazon Bedrock 提供多种服务层级以匹配不同的工作负载需求。对于这三个模型,均支持 Standard、Priority 和 Flex 三种层级。

| 服务层级 | 描述 | 是否支持 | |---------|------|---------| | Standard | 按需计费,无使用承诺 | 支持 | | Priority | 为延迟敏感型流量提供更高吞吐量 | 支持 | | Flex | 为非时间敏感型灵活工作负载提供低成本访问 | 支持 | | Reserved | 通过使用承诺提供专用吞吐量 | 目前不可用 |

默认情况下,请求会使用 Standard 层的按需推理,按 token 计费且无需提前预留容量。对于延迟敏感型面向客户的工作负载,可将单个请求路由到 Priority 层。对于非时间敏感型任务(如模型评估或批量摘要),Flex 层提供更具成本效益的方案。关于扩展指导和生产规模下的限流处理方法,请参阅《扩展与吞吐量最佳实践》和《入门》部分。

在 AWS GovCloud (US) 中入门

本节将逐步演示如何调用模型,首先从推荐的 bedrock-mantle 端点开始。示例使用 us-gov-west-1 区域(支持 In-Region 推理)。

控制台交互环境

  • 在 AWS GovCloud (US) 账户中导航至 Amazon Bedrock 控制台。
  • 在“测试”部分左侧菜单中选择“交互环境”。
  • 选择“选择模型”。
  • 从类别列表中选择提供商(NVIDIA 或 OpenAI),然后选择模型(例如,NVIDIA Nemotron 3 Super 或 120B gpt-oss-120b)。
  • 选择“应用”以加载模型。
  • 输入提示以测试模型。

使用 bedrock-mantle 端点(推荐)

要使用这些模型,您需要在 AWS GovCloud (US) 中拥有 AWS 账户,并具有调用 Amazon Bedrock 模型的权限。对于 bedrock-mantle 端点,您需要 Amazon Bedrock API 密钥或标准 AWS 凭证。以下是一个示例策略:

code
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "BedrockMantleInference",
            "Effect": "Allow",
            "Action": [
                "bedrock-mantle:CreateInference",
                "bedrock-mantle:Get*",
                "bedrock-mantle:List*"
            ],
            "Resource": "arn:aws-us-gov:bedrock-mantle:us-gov-west-1:111122223333:project/*"
        },
        {
            "Sid": "BedrockMantleCallWithBearerToken",
            "Effect": "Allow",
            "Action": "bedrock-mantle:CallWithBearerToken",
            "Resource": "*"
        }
    ]
}

将 111122223333 替换为您的 AWS 账户 ID,并将区域范围限定为您使用的 AWS GovCloud (US) 区域。本文中的代码示例通过 Bedrock API 密钥进行身份验证,这需要 bedrock-mantle:CallWithBearerToken 权限。此操作必须限定为 "Resource": "*",如第二个语句所示。要控制哪些身份可以生成或使用 Amazon Bedrock API 密钥,请参阅 控制生成和使用 Amazon Bedrock API 密钥的权限。若需限制组织仅使用批准的模型,请使用服务控制策略 (SCP)。

以下示例使用 OpenAI Python SDK 调用 bedrock-mantle 端点。对于生产工作负载,请使用短期 API 密钥,这些密钥会自动过期(最长 12 小时),并继承生成它们的 IAM 角色的权限。

code
import boto3
from openai import OpenAI

# 从 AWS Secrets Manager 获取 Bedrock API 密钥
secrets_client = boto3.client("secretsmanager", region_name="us-gov-west-1")
api_key = secrets_client.get_secret_value(SecretId="bedrock-api-key")["SecretString"]

client = OpenAI(
    # 在基础 URL 中使用 AWS GovCloud (US) 区域,例如 us-gov-west-1
    base_url="https://bedrock-mantle.us-gov-west-1.api.aws/v1",
    api_key=api_key,
)

response = client.chat.completions.create(
    model="openai.gpt-oss-120b",
    messages=[
        {"role": "user", "content": "Explain the benefits of open-weight models for regulated workloads."}
    ],
    reasoning_effort="medium",  # low | medium | high
    max_completion_tokens=512,
)

print(response.choices[0].message.content)

注意:这些示例从 AWS Secrets Manager 获取 Bedrock API 密钥。对于本地开发,您可以改从环境变量中读取密钥,但生产环境中应避免使用此模式。请使用 AWS Secrets Manager 或其他密钥存储服务。

若要调用 NVIDIA Nemotron 3 Super 120B 模型,请将模型参数改为 nvidia.nemotron-super-3-120b 并删除 reasoning_effort 参数(推理努力控制仅适用于 GPT OSS)。无需其他代码更改。

#### 控制推理努力

GPT OSS模型是推理模型,能够暴露可调节的推理努力程度。在Chat Completions调用中设置reasoning_effort参数为low、medium或high,可在响应延迟和推理深度之间进行权衡。对于高吞吐量且对延迟敏感的流量,建议使用low;对于复杂多步骤推理或智能体规划场景,建议使用high。对于推理模型,优先使用max_completion_tokens来限制响应长度(旧版的max_tokens字段仍然有效)。

#### 使用Responses API

除了Chat Completions之外,GPT OSS模型还支持Responses API,这是OpenAI提供的用于推理风格交互的接口。与需要消息数组不同,该接口仅接收单个输入。NVIDIA Nemotron 3 Super 120B不支持Responses API,对于该模型应使用Chat Completions、Converse或Invoke接口。

code
import boto3
from openai import OpenAI

# 从AWS Secrets Manager检索Bedrock API密钥
secrets_client = boto3.client("secretsmanager", region_name="us-gov-west-1")
api_key = secrets_client.get_secret_value(SecretId="bedrock-api-key")["SecretString"]

client = OpenAI(
    base_url="https://bedrock-mantle.us-gov-west-1.api.aws/v1",
    api_key=api_key,
)

response = client.responses.create(
    model="openai.gpt-oss-120b",
    input="Explain the benefits of open-weight models for regulated workloads.",
)

print(response)

#### 流式响应

在需要实时展示生成内容的聊天和智能体场景中,设置stream=True参数。响应将变为增量delta事件的迭代器:

code
stream = client.chat.completions.create(
    model="openai.gpt-oss-120b",
    messages=[
        {"role": "user", "content": "Write a short summary of mixture-of-experts architectures."}
    ],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)
print()

在bedrock-runtime端点,实现相同功能需要bedrock:InvokeModelWithResponseStream权限,而后续展示的最小策略已包含该权限。

#### 工具调用

NVIDIA Nemotron和GPT OSS开源模型专为智能体工作流设计,使其适用于工具调用场景。在工具调用工作流中,您需要定义模型可调用的函数(工具),模型根据用户请求决定何时调用工具,您的应用执行函数并返回结果供模型整合到最终响应中。

以下示例完整演示了这一模式。我们定义了一个get_weather工具,发送用户消息,让模型请求工具调用,使用模拟数据运行函数,并将结果返回给模型以生成自然语言回答。

code
import json
import boto3
from openai import OpenAI

# 从AWS Secrets Manager检索Bedrock API密钥
secrets_client = boto3.client("secretsmanager", region_name="us-gov-west-1")
api_key = secrets_client.get_secret_value(SecretId="bedrock-api-key")["SecretString"]

client = OpenAI(
    base_url="https://bedrock-mantle.us-gov-west-1.api.aws/v1",
    api_key=api_key,
)
python
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "获取指定位置的当前天气",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "城市和国家(例如 Seattle, US)"
                    },
                    "unit": {
                        "type": "string",
                        "enum": ["celsius", "fahrenheit"],
                        "description": "温度单位"
                    }
                },
                "required": ["location"]
            }
        }
    }
]

步骤1:使用工具定义发送用户请求

messages = [ {"role": "user", "content": "西雅图的天气如何?"} ]

response = client.chat.completions.create( model="openai.gpt-oss-120b", messages=messages, tools=tools, tool_choice="auto", )

assistant_message = response.choices[0].message

步骤2:检查模型是否需要调用工具

if assistant_message.tool_calls: messages.append(assistant_message)

for tool_call in assistant_message.tool_calls: function_name = tool_call.function.name arguments = json.loads(tool_call.function.arguments)

步骤3:验证函数名称并执行

if function_name == "get_weather": location = arguments.get("location", "未知") unit = arguments.get("unit", "fahrenheit") result = { "location": location, "temperature": 18 if unit == "celsius" else 64, "unit": unit, "condition": "局部多云", "humidity": 72, } else: result = {"error": f"未知函数: {function_name}"}

步骤4:将函数结果返回给模型

messages.append({ "role": "tool", "tool_call_id": tool_call.id, "content": json.dumps(result), })

步骤5:获取包含工具结果的最终响应

final_response = client.chat.completions.create( model="openai.gpt-oss-120b", messages=messages, tools=tools, )

print(final_response.choices[0].message.content) else: print(assistant_message.content)

`

此处的示例展示了客户端工具调用的流程:模型返回工具调用请求,您的应用程序执行对应函数,并将结果返回。在 bedrock-mantle 平台上,GPT OSS 模型同时支持客户端和服务器端工具调用,而 NVIDIA Nemotron 3 Super 120B 仅支持客户端工具调用。这两个模型系列均可通过 bedrock-runtime 端点(使用 Converse API 和 toolConfig 参数)进行工具调用。有关完整功能矩阵,请参阅每个模型的模型卡片。

### 使用 bedrock-runtime 端点(boto3)

使用 bedrock-runtime 端点时,需要配置 AWS 凭证(AWS 身份和访问管理(IAM)用户或角色),并具有调用模型的权限。以下是一个示例策略:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": "arn:aws-us-gov:bedrock:us-gov-west-1::foundation-model/openai.gpt-oss-120b-1:0" } ] }

code

在生产部署中,请将 Resource 范围限定为实际使用的 AWS GovCloud (US) 区域和模型 ID。

以下示例使用 AWS SDK for Python (boto3) 和 Converse API 发送单轮请求。在 bedrock-runtime 端点上,GPT OSS 模型 ID 包含版本后缀(例如 openai.gpt-oss-120b-1:0)。请使用每个模型的模型卡片中提供的精确模型 ID。响应包含推理块和文本块,因此示例在打印答案时会选择文本块。

import boto3

client = boto3.client("bedrock-runtime", region_name="us-gov-west-1")

response = client.converse( modelId="openai.gpt-oss-120b-1:0", messages=[{ "role": "user", "content": [{"text": "What is a mixture-of-experts architecture?"}] }], inferenceConfig={"maxTokens": 2048, "temperature": 1.0, "topP": 0.95}, )

content_blocks = response["output"]["message"]["content"] response_text = next( (block["text"] for block in content_blocks if "text" in block), None )

if response_text: print(response_text) else: print("No text response.")

code

要通过 bedrock-runtime 调用 NVIDIA Nemotron 3 Super 120B,请使用模型 ID nvidia.nemotron-super-3-120b(此模型 ID 不带版本后缀)。

您也可以通过终端使用 AWS 命令行界面 (AWS CLI) 访问这些模型:

aws bedrock-runtime converse \ --model-id openai.gpt-oss-120b-1:0 \ --messages '[{"role":"user","content":[{"text":"Type_Your_Prompt_Here"}]}]' \ --inference-config '{"maxTokens":512}' \ --region us-gov-west-1

code

### 按需推理扩展

标准层级的按需容量在各 AWS 区域内共享并分配,因此在区域需求高峰期,请求可能会被短暂排队或限流。在 bedrock-mantle 端点上,没有每分钟请求数配额限制。吞吐量由基于令牌的限制控制。这些开源模型目前在服务配额控制台中尚未公布每账户的令牌配额,因此请使用带有指数退避的重试逻辑来处理临时限流。Amazon Bedrock 会显示两个 HTTP 错误代码,用于指示请求无法被处理的情况:

错误代码 | 含义 | 建议操作
--- | --- | ---
429 | 请求被拒绝,因为超过了 Amazon Bedrock 的账户配额 | 通过服务配额控制台申请配额提升,并在客户端实施限流
503 | 服务正在经历高需求或临时容量限制 | 使用指数退避和抖动进行重试。如果限流持续发生,请降低请求速率并逐步恢复

对于临时性 503 响应,请在 SDK 中配置自动重试:

import boto3 from botocore.config import Config

config = Config(retries={"total_max_attempts": 6, "mode": "standard"}) client = boto3.client("bedrock-runtime", config=config)

code

当在持续限流后重新提升时,请在每次增加之前保持稳定状态约15分钟,而不是直接跳转到目标吞吐量。如需了解更多逐步提升的详细流程和其他最佳实践,请参阅《Amazon Bedrock用户指南》中的“扩展性和吞吐量最佳实践”。

### 清理

这些模型使用按需推理,仅在调用模型时产生费用,因此无需关闭端点或基础设施。为避免测试后产生意外费用:

- 如果您生成了短期Bedrock API密钥,它们会自动过期(最长12小时)。如需提前撤销,请在Amazon Bedrock控制台中删除该密钥。

- 如果您为测试选择了优先级层级,请通过从调用中移除service_tier参数,将非延迟敏感流量恢复为标准定价。

- 如果您为测试将Bedrock API密钥存储在AWS Secrets Manager中,请删除该密钥以避免存储费用。

有关按模型和层级的定价详情,请参阅Amazon Bedrock定价。

## 定价与可用性

OpenAI GPT OSS和NVIDIA Nemotron模型现已在AWS GovCloud(美国)的Amazon Bedrock上提供。区域内部推理可在AWS GovCloud(美国西部)(us-gov-west-1)使用,跨区域地理路由则在AWS GovCloud(美国西部)和AWS GovCloud(美国东部)(us-gov-east-1)之间路由请求,同时保持流量在AWS GovCloud(美国)边界内。

定价按令牌计算,根据模型和服务层级有所不同。标准层级的按需推理在调用模型时产生费用,无预留容量且无需关闭基础设施。当前费率请参阅Amazon Bedrock定价。

## 结论

OpenAI GPT OSS和NVIDIA Nemotron模型现已在AWS GovCloud(美国)的Amazon Bedrock上提供,使政府客户能够在合规边界内访问先进的开放权重模型。在本文中,我们介绍了可用模型及其功能、调用它们的两个端点、可用服务层级以及扩展指导。政府团队可以在AWS GovCloud(美国)边界内、基于AWS运营的基础设施上运行这些开放权重模型,用于任务关键型工作负载。

要开始使用:

- 在您的AWS GovCloud(美国)账户中打开Amazon Bedrock控制台,并在Playground中尝试这些模型。

- 运行本文提供的bedrock-mantle Python示例,针对您自己的数据进行测试。

- 在您的工作负载上评估gpt-oss-120b、gpt-oss-20b和NVIDIA Nemotron 3 Super 120B,选择符合您成本和延迟需求的模型。

- 对于生产部署,请查看“扩展性和吞吐量最佳实践”,并考虑为延迟敏感流量使用优先级层级。

## 资源

如需更多信息,请参考以下资源:

- AWS GovCloud(美国)

- Amazon Bedrock用户指南

- Amazon Bedrock上的OpenAI模型

- NVIDIA Nemotron 3 Super 120B模型卡片

- 探索Mantle的零操作员访问设计

- Amazon Bedrock服务层级

- Amazon Bedrock API密钥

## 作者简介

'"`