跳到正文
AWS Machine Learning Blog· Clement Perrot·· 3 小时前精选AI 评分64

Reflection Beam 开源权重模型登陆 AWS:SageMaker JumpStart 与 HyperPod 部署指南

Introducing Reflection Beam: an open-weight model for agentic coding on AWS

AI 导读

Reflection AI 发布开源权重模型 Beam,面向智能体编码与长程任务,总参数 501B、激活参数 23B,有效上下文长度 100 万 tokens,权重以 Apache 2.0 许可通过 Hugging Face 发布,提供 BF16、FP8 和 NVFP4 三种 checkpoint。

推荐理由

原文给出 Beam 在 AWS 上的三种部署路径、实例选型和参数显存考量,可迁移到同类开源大模型的部署规划。

正文 · AI 翻译

Reflection AI 推出了 Beam,这是一个开放权重的模型,专为智能体编码和长时程任务而设计,例如维护代码、使用工具、解读结果以及完成多步骤工作流。开放权重的发布让开发者和研究人员能够掌控运行时、部署环境和定制流程。

在这篇文章中,我们将阐述 Reflection 的愿景,并展示如何在 AWS 上部署 Beam。你可以从 Amazon SageMaker JumpStart 实时端点开始,获得一条完全托管的路径。当你需要 Kubernetes 原生地掌控分布式 GPU 基础设施时,可以使用 Amazon SageMaker HyperPod Inference,配合 JumpStart、SGLang 或 vLLM。我们还将解释 Beam 的 5010 亿总参数如何影响检查点存储、权重内存、分片和并行性,以及其 230 亿激活参数如何影响每 token 的计算量。

发布时,Beam 已在 Amazon SageMaker JumpStart 的美国东部(弗吉尼亚北部)和美国东部(俄亥俄)区域可用。

Reflection 的开放智能愿景

Reflection 的使命是通过开放模型权重、发表研究和开源软件,让智能对所有人开放且可获取。其 完整的 AI 技术栈涵盖模型、核心软件、生产基础设施和应用。Beam 将这一理念带给正在构建软件工程和智能体系统的开发者。

关于 Reflection Beam

Beam 是一个稀疏混合专家(mixture-of-experts)模型,用于解决软件问题、修改代码、调用工具以及对中间结果采取行动。它拥有 5010 亿总参数和 230 亿激活参数,Reflection 称其有效上下文长度为 100 万 token。

Reflection 通过 Hugging Face 以 Apache 2.0 许可证发布 Beam 的权重。Beam 1.0 提供 BF16、FP8 和 NVFP4 三种检查点变体。这些格式具有不同的内存占用和硬件兼容性。你可以使用 AWS 托管的 JumpStart 容器配置来部署该模型,也可以在自己的 AWS 环境中使用 SGLang 或 vLLM 检查和定制该模型。

了解部署架构

根据你的掌控力和扩缩容需求选择服务路径。

  1. 当你想要 AWS 托管的模型包、端点和调用 API,而不想运维 Kubernetes 时,请从 SageMaker JumpStart 实时端点开始。
  2. 当你想在由 Amazon Elastic Kubernetes Service (Amazon EKS) 编排的 HyperPod 集群上使用 AWS 托管的容器和模型配置时,请使用 HyperPod Inference 上的 JumpStart。
  3. 当你需要控制服务镜像、运行时参数、量化或分布式执行时,请使用 HyperPod Inference 上的 SGLang 或 vLLM。
  4. 根据检查点存储、权重内存、KV 缓存、上下文长度、批处理、运行时开销以及所支持的并行方式来确定部署规模。
  5. 定义预期的并发量和延迟目标,然后根据实测的工作负载行为来配置副本、缓存、路由和自动扩缩容。

JumpStart 实时路径将模型、容器和端点打包在一个托管部署工作流之后。HyperPod 路径则暴露集群和服务运行时,使你能够控制分布式执行、缓存、路由和扩缩容。

下图展示了 HyperPod 路径所使用的组件。Beam 可通过 SageMaker JumpStart、Hugging Face Hub 或可选的 Amazon Simple Storage Service (Amazon S3) 镜像获取。分布式工作进程使用 AWS 托管的 JumpStart 容器或自定义的 SGLang 或 vLLM 运行时。

Architecture diagram showing Beam sourced from SageMaker JumpStart, Hugging Face Hub, or an optional Amazon S3 mirror into Amazon SageMaker HyperPod Inference, with the Inference Operator managing local model and image caching and the Inference Gateway and Endpoint Picker routing requests to distributed JumpStart, SGLang, or vLLM workers monitored by Amazon CloudWatch.

图 1:使用 Amazon SageMaker HyperPod Inference 的分布式 Beam 部署

前提条件

你需要:

  • 一个 AWS 账户,并具有你所选 SageMaker 部署路径及其配套的 AWS Identity and Access Management (IAM)、网络和存储资源的权限。
  • 可通过 SageMaker JumpStart 或 Hugging Face 上的 Beam 1.0 检查点仓库之一访问 Beam。
  • 接受模型条款、安装 AWS Command Line Interface (AWS CLI) 以及 Python 3.11 或更高版本。
  • 支持 Beam 配置的 GPU 配额与容量。

规划并获取 GPU 容量

Beam 总参数量达 5010 亿,需要多 GPU 部署。BF16 对权重内存的需求最大,因此请规划一个多节点配置,具备足够的聚合 GPU 内存以容纳权重和运行时开销。对于 FP8,在 NVIDIA H100 GPU 上使用 ml.p5.48xlarge,或在 H200 GPU 上使用 ml.p5e.48xlarge 和 ml.p5en.48xlarge。对于 NVFP4,在 NVIDIA B200 GPU 上使用 ml.p6-b200.48xlarge。请确认已发布的检查点、运行时和并行布局支持所选实例类型。

  1. 为一个副本计算权重、KV 缓存和运行时开销所需的内存,然后通过负载测试确认估算值。
  2. 选择一个支持所需加速实例的 AWS 区域。
  3. 检查所选实例类型的服务配额和可用容量。在可用时使用按需容量,或使用 SageMaker 训练计划 作为计划工作的短期预留。
  4. 为镜像传输、权重下载、分片加载和运行时初始化预留时间。

路径 1:开始使用 SageMaker JumpStart 实时端点

当你想要从模型目录到托管 HTTPS 端点的最短路径时,请首先使用 JumpStart 实时端点。该示例通过一个感知变体的命令支持 BF16、FP8 和 NVFP4 模型 ID。其 README 和 Python 文件是支持的实例类型、请求模式、部署命令和清理命令的权威来源。

  1. Clone the sample repository.
    git clone https://github.com/aws-samples/sagemaker-genai-hosting-examples.git
  2. Enter the SageMaker JumpStart deployment sample directory.
    cd sagemaker-genai-hosting-examples/01-models/ReflectionAI/Beam-1.0-501B-A23B-NVFP4/
  3. Create and activate a Python virtual environment.
    python3 -m venv .venv
    source .venv/bin/activate
  4. Install the sample dependency.
    python -m pip install -r requirements.txt
  5. Run the bounded deployment, invocation, and cleanup lifecycle for FP8.
    python jumpstart_real_time.py \
    --variant fp8 \
    --endpoint-name reflection-beam-fp8-smoke

    该命令部署 FP8 端点、发送一个简短请求、打印响应并清理端点。使用 bf16 或 nvfp4 可选择其他检查点变体;省略 --variant 时默认为 NVFP4。如需保持端点持续运行,请使用 README 中的 Python 函数。

路径 2:使用 SageMaker HyperPod Inference 部署

当你需要对分布式 GPU 基础设施进行 Kubernetes 原生控制时,请使用 HyperPod Inference。你可以使用 AWS 托管的 JumpStart 容器配置,也可以使用 SGLang 或 vLLM 部署 Beam。HyperPod Inference 部署示例 README 及其配置文件是已发布清单、模型和镜像标识符、支持的运行时版本以及命令的权威来源。

开始之前,请配置 kubectl 对由 EKS 编排的 HyperPod 集群的访问,该集群需安装 HyperPod Inference Operator 及所需附加组件。你还需要集群的虚拟私有云 (VPC)、子网、安全组、对所选 Beam 和运行时制品的访问权限,以及(如果启用模型缓存)本地 NVMe 容量。如果所选仓库需要身份验证,请使用隔离的 Hugging Face 访问令牌。

部署来自 Hugging Face Hub 的固定版本 Beam 以用于开发与实验。对于生产部署和模型缓存,请将检查点复制到 Amazon S3 或 Amazon FSx。HyperPod 模型与镜像缓存可将权重预加载到节点本地 NVMe 存储并预先拉取服务镜像。

HyperPod Inference Gateway 提供兼容 OpenAI 的接口,并在多个副本之间路由请求。HyperPod Inference 还支持托管式分层 KV 缓存与智能路由。这些是2026 年推出的 Amazon SageMaker Inference 能力中的一部分。

下图展开展示了模型准备和运行时请求流程。启用模型缓存后,Inference Operator 会用选定的权重和服务镜像预热符合条件的节点。运行时,Inference Gateway 和 Endpoint Picker 可以将每个请求定向到合适的 JumpStart 托管、SGLang 或 vLLM 副本。

Detailed HyperPod flow showing the Inference Gateway, Endpoint Picker, routing signals, Inference Operator, host-local model cache, and JumpStart-managed, SGLang, or vLLM replicas.

图 2:HyperPod 模型缓存与请求路由

准备部署工件

使用不可变输入,以便能够复现部署和性能结果。

  1. 使用部署示例中记录的 JumpStart 模型发布版本。
  2. 对于自定义运行时,选择 BF16、FP8 或 NVFP4 检查点。
  3. 对于自定义运行时,在示例发布配置中保留 Beam 的公开 commit SHA 和镜像摘要。
  4. 仅当您的集群无法拉取上游镜像,或您的组织要求使用经审批的镜像仓库时,才将已发布的镜像镜像到私有 Amazon Elastic Container Registry (Amazon ECR) 仓库中。
  5. 不要将令牌、生成的密钥、私有模型 ID、镜像仓库凭证以及未发布的结果放入代码仓库。

选择服务路径

除非您的工作负载需要特定的推理运行时或配置,否则请从 SageMaker JumpStart 开始。

服务路径 适用场景 您需要管理的内容
SageMaker JumpStart 您希望使用 AWS 托管的容器和模型配置,减少运行时维护工作。 选择 Beam 模型版本、支持的实例类型、端点配置和扩缩策略。
SGLang 或 vLLM 您需要特定的推理运行时或配置,例如自定义运行时参数、解析器、量化或并行方式。 固定受支持的运行时镜像、模型版本、解析器配置和分布式执行设置。

使用 SageMaker JumpStart 部署

SageMaker JumpStart 减少了容器集成工作,同时 HyperPod 保留对集群容量、扩缩和可观测性的控制。

  1. 在 SageMaker Studio 中,打开JumpStart 模型目录。
  2. 在All public models 下,选择 Beam。
  3. 选择 SageMaker HyperPod 作为部署目标。
  4. 选择集群和 Kubernetes 命名空间。
  5. 输入端点名称,然后选择 Deploy。
  6. 在调用端点之前,先确认部署状态,并使用已发布的 JumpStart 请求模式。

对于基础设施即代码工作流,请使用 HyperPod 示例中已发布的 JumpStart 配置。您可以在配置部署之前查看reflection-beam-jumpstart.yaml 清单模板。

  1. Clone the sample repository, and enter the HyperPod Beam directory.
    git clone https://github.com/aws-samples/sagemaker-genai-hosting-examples.git
    cd sagemaker-genai-hosting-examples/SageMakerHyperpod/reflection-beam/
  2. Create the local configuration files described in the README.
    cp config/deployment.env.example config/deployment.env
    cp config/release.env.example config/release.env
  3. Validate the JumpStart configuration before changing the cluster.
    python hyperpod_tool.py \
      --config config/deployment.env \
      --config config/release.env \
      validate jumpstart
  4. Deploy the JumpStart configuration.
    python hyperpod_tool.py \
      --config config/deployment.env \
      --config config/release.env \
      deploy jumpstart \
      --timeout-seconds 1800

该辅助工具会渲染并应用已发布的 JumpStartModel 资源,而不会将已填充的发布值写入磁盘。

使用 SGLang 或 vLLM 部署

当您需要直接控制推理运行时(serving runtime)时,请选择 SGLang 或 vLLM。在配置部署之前,请先查看reflection-beam-sglang.yaml 清单模板或reflection-beam-vllm.yaml 清单模板。示例 README 仍然是已发布版本值和命令的权威来源。

  1. Clone the sample repository.
    git clone https://github.com/aws-samples/sagemaker-genai-hosting-examples.git
  2. Enter the HyperPod Beam directory.
    cd sagemaker-genai-hosting-examples/SageMakerHyperpod/reflection-beam/
  3. Create the local configuration files described in the README.
    cp config/deployment.env.example config/deployment.env
    cp config/release.env.example config/release.env
  4. Validate the selected configuration before changing the cluster.
    python hyperpod_tool.py \
      --config config/deployment.env \
      --config config/release.env \
      validate sglang
  5. Deploy Beam, and wait for a terminal deployment state.
    python hyperpod_tool.py \
      --config config/deployment.env \
      --config config/release.env \
      deploy sglang \
      --timeout-seconds 1800

    将 sglang 替换为 vllm 以使用 vLLM。该辅助脚本会验证所选配置,应用渲染后的清单而不将发布值写入磁盘,以固定的超时时间等待,并在部署失败时打印诊断信息。

调用 Beam

使用已发布模型的请求模式(schema)来调用 JumpStart 端点。对于 SGLang 或 vLLM,请使用 HyperPod 示例中包含的有界冒烟测试。

调用已部署的端点

  1. Install the sample client dependency.
    python3 -m venv .venv
    source .venv/bin/activate
    python -m pip install -r requirements.txt
  2. Run a private health check and short request with the recommended starting sampling settings.
    python hyperpod_tool.py \
    --config config/deployment.env \
    smoke sglang \
    --prompt "List three checks for a healthy model deployment." \
    --temperature 1.0 \
    --top-p 0.7

    对于 vLLM 部署,将 sglang 替换为 vllm。该辅助脚本会选择一个就绪的工作节点,开启临时的端口转发,检查端点健康状况,发送请求,然后关闭端口转发。

响应类似于以下内容:

1. Confirm that the endpoint reports ready.
2. Send a short inference request.
3. Review the service logs for startup errors.

对于经过身份验证的 Inference Gateway,请使用 HyperPod 示例 README 中的 bearer-token 流程。请勿将凭证放入源代码、清单文件和命令历史记录中。

测量并调优性能

  1. 在预期的并发量下,使用重复的、具有代表性的编码和工具使用请求来测试每条推理路径。
  2. 记录 Beam 模型版本、镜像摘要(digest)、实例类型、精度、上下文长度、并行度、推理参数、缓存状态和测试重复次数。
  3. 测量请求成功率、p50 和 p95 首 token 时间、每个输出 token 的时间、端到端延迟以及每秒聚合输出 token 数。
  4. 根据这些结果调优批处理大小、KV cache 分配、副本数量、自动扩缩容以及模型和镜像缓存。
  5. 在更改精度或量化之后,重新检查输出质量。

清理

完成测试后删除资源,以避免持续产生费用。

  1. 对于 SageMaker JumpStart 实时端点,请按照 SageMaker JumpStart 部署示例 README 中的清理说明操作。
  2. 对于 Amazon SageMaker HyperPod Inference 上的 JumpStart、SGLang 或 vLLM,请按照 HyperPod Inference 部署示例 README 中的清理说明操作。
  3. 删除为本次演练专门创建的 HyperPod 或 Amazon EKS 集群。
  4. 删除未使用的缓存权重、镜像制品、负载均衡器、日志组、临时 IAM 角色以及捕获的推理数据。

结论

Reflection Beam 为开发者提供了一个专为智能体编程和多步骤任务而设计的开放权重模型。如果需要完全托管的部署,可从 SageMaker JumpStart 实时端点开始;当您需要 Kubernetes 原生基础设施控制而无需管理推理容器时,可将 SageMaker HyperPod Inference 与 JumpStart 结合使用;而当您需要自定义运行时时,则可选择 SGLang 或 vLLM。

使用SageMaker JumpStart 部署示例或HyperPod Inference 部署示例,然后按照其中的说明操作。

要了解有关 Reflection AI 及其对开放智能的愿景的更多信息,请访问 Reflection AI 并阅读Introducing Beam。

资源


关于作者

来源:AWS Machine Learning Blog · aws.amazon.com