跳到正文
阶跃星辰模型发布·· 8 天前精选AI 评分76

阶跃星辰发布 Step 5 Preview:600B 总参数、27B 激活、1M 上下文

stepfun-ai/Step-5-Preview-BF16

AI 导读

阶跃星辰发布面向智能体任务的旗舰模型 Step 5 Preview,采用稀疏 MoE 架构,总参数 600B、激活参数 27B,支持最多 1M tokens 上下文,输入支持文本、图像和视频。

推荐理由

阶跃星辰发布旗舰 MoE 模型,600B 总参数、27B 激活参数与 1M 上下文,并给出 vLLM、SGLang 部署配置。

正文 · AI 翻译

StepFun logo

StepFun 面向智能体工作的旗舰模型

600B 总参数  ·  27B 激活参数  ·  最高 1M 上下文

简介  ·  能力  ·  规格  ·  性能  ·  部署  ·  资源  ·  许可证


简介

Step 5 Preview 是 StepFun 面向智能体工作的旗舰模型。它在软件工程和专业知识工作方面达到前沿水平,在金融领域尤为突出。

Step 5 Preview 是一个稀疏混合专家(MoE)模型,总参数 600B,激活参数 27B。它支持最高 100 万 token 的上下文,可接受文本、图像和视频输入,能够在复杂任务中进行持续推理和工具使用。

核心能力

软件工程

Step 5 Preview 支持仓库级软件工程、前端与可视化开发以及设备编程。它能够浏览大型代码库、协调跨文件修改、运行并验证代码,并根据结果迭代。

长程智能体执行

Step 5 Preview 能够执行需要反复调用工具、执行、验证和修订的任务,并在整个工作流中利用长上下文信息。

专业知识工作

该模型结合研究、多模态理解和工具使用,可分析长文档、图表、截图、图像和视频,并生成结构化报告与分析。

聚焦金融

Step 5 Preview 在结合定量推理与金融数据及辅助文档分析的金融任务中尤为擅长。

模型规格

规格 Step 5 Preview
架构 稀疏混合专家(MoE)
总参数 600B
激活参数 27B
上下文窗口 最高 1M token
最大输出 最高 1M token
输入 文本、图像
输出 文本

性能

以下结果总结了 Step 5 Preview 在编码、智能体任务、专业知识工作和金融方面的表现。

Step 5 Preview benchmark results across coding, agentic tasks, professional knowledge work, and finance

评测说明

  • 推荐推理设置:temperature=1.0、top_p=0.95、top_k=0。
  • 上表所示的 Step 5 Preview 结果使用 High 推理设置。
  • GDPval-AA v2.1 分数基于截至 2026 年 9 月 20 日 Artificial Analysis 的结果。
  • DeepSWE v1.1 评测使用 SWE-agent 测试框架,配置为 temperature=1.0 和 top_p=0.95。

有关评测背景、方法和详细案例研究,请参阅 Step 5 Preview 模型页面。

部署

Step 5 Preview 可通过 vLLM 或 SGLang 以 OpenAI 兼容 API 提供服务,也可使用独立的 Transformers 实现进行离线生成。以下示例涵盖 FP8 和 BF16 检查点。

请使用包含 Step 5 Preview 支持的框架构建版本,其中包括服务命令中使用的推理、工具调用和推测解码功能。

部署配置

框架 精度 硬件 并行方式 接口
vLLM FP8 一个 B300 节点,4 块 GPU TP4、TEP4 或 DEP4 OpenAI 兼容 API
vLLM FP8 一个 H200 节点,8 块 GPU TP8、TEP8 或 DEP8 OpenAI 兼容 API
vLLM BF16 一个 B300 节点,8 块 GPU TP8、TEP8 或 DEP8 OpenAI 兼容 API
vLLM BF16 两个 H200 节点,16 块 GPU TP16、TEP16 或 DEP16 OpenAI 兼容 API
Transformers FP8 一个 H200 节点,8 块 GPU TP8 / EP8 离线生成
Transformers BF16 两个 H200 节点,16 块 GPU TP16 / EP16 离线生成(见下方验证说明)
SGLang FP8 一个 B300 节点,4 块 GPU TP4/EP4 OpenAI 兼容 API
SGLang FP8 一个 H200 节点,8 块 GPU TP8/EP8 OpenAI 兼容 API

DP、TP 和 EP 分别指数据并行、张量并行和专家并行。TEP 结合张量并行与专家并行;DEP 结合数据并行与专家并行。这些示例配置是针对下述部署规模设定的。实际内存需求、可用上下文长度和并发数会随检查点、推理框架和 KV 缓存分配而变化。

部署指南: vLLM · Transformers · SGLang · 发送请求

vLLM

以下示例通过端口 18000 上的 OpenAI 兼容 API 提供 Step 5 Preview,请求中使用的模型名为 step5。

环境设置

拉取 Step 5 Preview 镜像,并启动一个可访问 GPU 的交互式容器:

docker pull vllm/vllm-openai:step-5-preview

docker run --rm -it \
    --gpus all \
    --ipc=host \
    --network=host \
    --volume "$HOME/.cache/huggingface:/root/.cache/huggingface" \
    --entrypoint /bin/bash \
    vllm/vllm-openai:step-5-preview

在容器内运行下面的服务命令。如果检查点需要身份验证,请在启动服务器前使用 hf auth login 登录。

FP8:4 块 B300 GPU 单节点

为四块 B300 GPU 的单节点选择以下并行配置之一:

模式 张量并行 数据并行 专家并行
TP4 4 1 禁用
TEP4 4 1 4
DEP4 1 4 4

使全部四块 GPU 可见,然后运行所选配置对应的命令:

export CUDA_VISIBLE_DEVICES=0,1,2,3

在 B300(Blackwell)上,TEP4 和 DEP4 命令会选择使用 --moe-backend deep_gemm_mega_moe 的 MegaMoE。TP4 命令使用默认 MoE 后端,因为 MegaMoE 需要专家并行。

TP4:张量并行
vllm serve stepfun-ai/Step-5-Preview \
    --host 0.0.0.0 \
    --port 18000 \
    --served-model-name "step5" \
    --tensor-parallel-size 4 \
    --data-parallel-backend mp \
    --distributed-executor-backend mp \
    --disable-custom-all-reduce \
    --max-model-len 1048576 \
    --max-num-batched-tokens 16384 \
    --max-num-seqs 64 \
    --gpu-memory-utilization 0.85 \
    --enable-prefix-caching \
    --spec-method mtp \
    --spec-tokens 3 \
    --reasoning-parser step5 \
    --enable-auto-tool-choice \
    --tool-call-parser step5
TEP4:张量与专家并行
vllm serve stepfun-ai/Step-5-Preview \
    --host 0.0.0.0 \
    --port 18000 \
    --served-model-name "step5" \
    --tensor-parallel-size 4 \
    --enable-expert-parallel \
    --moe-backend deep_gemm_mega_moe \
    --data-parallel-backend mp \
    --distributed-executor-backend mp \
    --disable-custom-all-reduce \
    --max-model-len 1048576 \
    --max-num-batched-tokens 16384 \
    --max-num-seqs 64 \
    --gpu-memory-utilization 0.85 \
    --enable-prefix-caching \
    --spec-method mtp \
    --spec-tokens 3 \
    --reasoning-parser step5 \
    --enable-auto-tool-choice \
    --tool-call-parser step5
DEP4:数据与专家并行
vllm serve stepfun-ai/Step-5-Preview \
    --host 0.0.0.0 \
    --port 18000 \
    --served-model-name "step5" \
    --tensor-parallel-size 1 \
    --data-parallel-size 4 \
    --enable-expert-parallel \
    --moe-backend deep_gemm_mega_moe \
    --data-parallel-backend mp \
    --distributed-executor-backend mp \
    --disable-custom-all-reduce \
    --max-model-len 1048576 \
    --max-num-batched-tokens 16384 \
    --max-num-seqs 64 \
    --gpu-memory-utilization 0.85 \
    --enable-prefix-caching \
    --spec-method mtp \
    --spec-tokens 3 \
    --reasoning-parser step5 \
    --enable-auto-tool-choice \
    --tool-call-parser step5
H200 上的 FP8

对于八块 H200 GPU 的单节点,请调整上述 B300 命令之一:

  1. 设置 CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7。
  2. 对于 TP8 或 TEP8,设置 --tensor-parallel-size 8。对于 DEP8,保留 --tensor-parallel-size 1 并设置 --data-parallel-size 8。
  3. 对于 TEP8 或 DEP8,保留 --enable-expert-parallel 并移除 --moe-backend deep_gemm_mega_moe;H200(Hopper)使用默认 MoE 后端。

TP 和 TEP 使用 DP=1;DEP 使用 TP=1。在所有配置中,--max-num-seqs 按 DP rank 生效。1M token 上下文限制涵盖输入和输出总和。如果 KV 缓存内存不足,请降低 --max-model-len 或并发数。

BF16

BF16 部署需要 BF16 检查点。在 FP8 检查点上设置 --dtype bfloat16 不会将其量化权重转换为 BF16。

将 BF16 检查点目录挂载到容器内的同一路径,然后将 MODEL 设置为该路径:

export MODEL="<STEP5_BF16_MODEL_PATH>"

为你的硬件选择配置:

硬件 BF16 布局 MoE 后端
8 块 B300 GPU TP8、TEP8 或 DEP8 TEP/DEP 使用 MegaMoE;TP 使用默认
2 × 8 块 H200 GPU TP16、TEP16 或 DEP16 默认

这些配置为加载 BF16 权重提供了起点。它们不保证有足够内存处理 1M token 请求;KV 缓存和运行时缓冲区也需要 GPU 内存。

B300:单节点,8 块 GPU

在容器内设置 CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7。从 TP4 命令开始,将 stepfun-ai/Step-5-Preview 替换为 "$MODEL",并将 --tensor-parallel-size 4 替换为以下参数集之一:

模式 并行参数
TP8 --tensor-parallel-size 8
TEP8 --tensor-parallel-size 8 --enable-expert-parallel --moe-backend deep_gemm_mega_moe
DEP8 --tensor-parallel-size 1 --data-parallel-size 8 --enable-expert-parallel --moe-backend deep_gemm_mega_moe

保留其余服务参数,包括 --served-model-name "step5"、--reasoning-parser step5 和 --tool-call-parser step5。

H200:两个节点,16 块 GPU

在两个节点上使用相同的 BF16 检查点路径和容器镜像。将下面的 <NODE_0_IP> 替换为节点 0 的高速网络 IP,该 IP 可从节点 1 访问。H200 使用默认 MoE 后端;省略 --moe-backend deep_gemm_mega_moe。

在每个节点上:

  1. 将 MODEL 设置为已挂载的 BF16 checkpoint 路径,并设置 CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7。
  2. 从 TP4 命令 开始,将 stepfun-ai/Step-5-Preview 替换为 "$MODEL"。
  3. 从该命令中移除 --host、--port 和 --tensor-parallel-size,然后在下方插入适用于你的配置和节点的参数块。这些块包含要追加到 vllm serve 的参数,而不是独立命令。

保留所有其他 serving 参数,包括 --data-parallel-backend mp、--distributed-executor-backend mp、模型名称以及两个解析器。每个节点运行一条完整命令。仅节点 0 在端口 18000 上暴露 API。

TP16 / TEP16

对于 TP16,使用以下参数。对于 TEP16,还需在两个节点上都添加 --enable-expert-parallel。两种配置均使用 DP=1。

节点 0:

--host 0.0.0.0 \
--port 18000 \
--tensor-parallel-size 16 \
--nnodes 2 \
--node-rank 0 \
--master-addr <NODE_0_IP>

节点 1:

--tensor-parallel-size 16 \
--nnodes 2 \
--node-rank 1 \
--master-addr <NODE_0_IP> \
--headless

DEP16

DEP16 使用 TP=1,并将专家分布到 16 个数据并行 rank 上,每个节点八个 rank。在两个节点上使用相同的数据并行地址和 RPC 端口。

节点 0:

--host 0.0.0.0 \
--port 18000 \
--tensor-parallel-size 1 \
--data-parallel-size 16 \
--data-parallel-size-local 8 \
--data-parallel-address <NODE_0_IP> \
--data-parallel-rpc-port 29550 \
--enable-expert-parallel

节点 1:

--tensor-parallel-size 1 \
--data-parallel-size 16 \
--data-parallel-size-local 8 \
--data-parallel-start-rank 8 \
--data-parallel-address <NODE_0_IP> \
--data-parallel-rpc-port 29550 \
--enable-expert-parallel \
--headless

Transformers

独立实现会将 checkpoint 转换为分片,用于离线生成。安装其依赖后,在 inference/ 目录中运行以下命令:

cd inference

为 FP8 和 BF16 使用单独的 checkpoint 和输出目录。转换会保留源 dtype,生成过程离线运行,无需 API 服务器。

FP8:单台 H200 节点,8 块 GPU

转换一次 FP8 checkpoint,然后启动八个本地进程进行 TP8 / EP8 生成:

export STEP5_FP8_CHECKPOINT="<FP8_CHECKPOINT_DIRECTORY>"
export STEP5_FP8_OUT="<FP8_SHARD_OUTPUT_DIRECTORY>"

python3 convert.py \
  --checkpoint "$STEP5_FP8_CHECKPOINT" \
  --tp-size 8 --ep-size 8 --check-only

python3 convert.py \
  --checkpoint "$STEP5_FP8_CHECKPOINT" \
  --out-dir "$STEP5_FP8_OUT" \
  --tp-size 8 --ep-size 8

torchrun --standalone --nproc-per-node=8 generate.py \
  --tp-dir "$STEP5_FP8_OUT/tp8" --ep-size 8 \
  --prompt "Please introduce tensor parallelism." \
  --max-new-tokens 128

BF16:两台 H200 节点,16 块 GPU

对于跨两个节点的 TP16 / EP16 生成,首先将 BF16 checkpoint 转换为 16 个分片。使生成的 tp16/ 和 tokenizer_files/ 目录可供两个节点访问:

export STEP5_BF16_CHECKPOINT="<BF16_CHECKPOINT_DIRECTORY>"
export STEP5_BF16_OUT="<BF16_SHARD_OUTPUT_DIRECTORY>"

python3 convert.py \
  --checkpoint "$STEP5_BF16_CHECKPOINT" \
  --tp-size 16 --ep-size 16 --check-only

python3 convert.py \
  --checkpoint "$STEP5_BF16_CHECKPOINT" \
  --out-dir "$STEP5_BF16_OUT" \
  --tp-size 16 --ep-size 16

然后在每个节点上运行以下命令,使用相同的 MASTER_ADDR、MASTER_PORT 和分片输出路径。在节点 0 上设置 NODE_RANK=0,在节点 1 上设置 NODE_RANK=1:

export STEP5_BF16_OUT="<BF16_SHARD_OUTPUT_DIRECTORY>"
export MASTER_ADDR="<NODE_0_REACHABLE_IP_OR_HOSTNAME>"
export MASTER_PORT=29500
export NODE_RANK=0  # Set to 1 on node 1.

torchrun --nnodes=2 --nproc-per-node=8 \
  --node-rank="$NODE_RANK" \
  --master-addr="$MASTER_ADDR" \
  --master-port="$MASTER_PORT" \
  generate.py \
  --tp-dir "$STEP5_BF16_OUT/tp16" --ep-size 16 \
  --prompt "Please introduce tensor parallelism." \
  --max-new-tokens 128

这会在两个节点上启动 16 个进程,与 16 分片 checkpoint 和 --ep-size 16 相匹配。双节点启动使用共享 rendezvous 地址,而不是 --standalone。

BF16 验证:完整的 BF16 convert.py → generate.py --tp-dir 文件分片工作流尚未经过端到端验证。参考实现已验证 checkpoint 名称和形状、BF16 小模型转换、加载与生成,以及全模型流式权重推理。

SGLang

环境设置

拉取 Step 5 Preview SGLang Docker 镜像:

docker pull lmsysorg/sglang:step-5-preview

然后,使用适用于你的硬件的配置启动服务器。有关更优化的配置,包括 MegaMoE、注意力数据并行和 HiCache,请参阅 Step 5 Preview 的 SGLang Cookbook。

B300:TP4/EP4,4 块 GPU

对 FP8 路由专家使用 MegaMoE。

export CUDA_VISIBLE_DEVICES=0,1,2,3

python -m sglang.launch_server \
  --trust-remote-code \
  --model-path stepfun-ai/Step-5-Preview \
  --served-model-name step5 \
  --tp 4 \
  --ep-size 4 \
  --moe-runner-backend flashinfer_trtllm \
  --moe-a2a-backend megamoe \
  --attention-backend fa4 \
  --page-size 64 \
  --kv-cache-dtype bfloat16 \
  --mem-fraction-static 0.9 \
  --swa-full-tokens-ratio 0.03 \
  --chunked-prefill-size 16384 \
  --max-running-requests 64 \
  --cuda-graph-backend-prefill breakable \
  --flashinfer-allreduce-fusion-backend trtllm \
  --speculative-algorithm EAGLE \
  --speculative-num-steps 3 \
  --speculative-eagle-topk 1 \
  --speculative-num-draft-tokens 4 \
  --enable-multi-layer-eagle \
  --reasoning-parser step5 \
  --tool-call-parser step5 \
  --host 0.0.0.0 \
  --port 30000

H200:TP8/EP8,8 块 GPU

用于使用 Triton MoE 和 FA3 注意力的单节点 H200 serving。

export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7

python -m sglang.launch_server \
  --trust-remote-code \
  --model-path stepfun-ai/Step-5-Preview \
  --served-model-name step5 \
  --tp 8 \
  --ep-size 8 \
  --moe-runner-backend triton \
  --attention-backend fa3 \
  --page-size 64 \
  --kv-cache-dtype bfloat16 \
  --mem-fraction-static 0.9 \
  --swa-full-tokens-ratio 0.03 \
  --chunked-prefill-size 16384 \
  --max-running-requests 64 \
  --cuda-graph-backend-prefill breakable \
  --flashinfer-allreduce-fusion-backend trtllm \
  --speculative-algorithm EAGLE \
  --speculative-num-steps 3 \
  --speculative-eagle-topk 1 \
  --speculative-num-draft-tokens 4 \
  --enable-multi-layer-eagle \
  --reasoning-parser step5 \
  --tool-call-parser step5 \
  --host 0.0.0.0 \
  --port 30000

发送请求

服务器就绪后,使用适用于你的部署的 base URL:

Serving 配置 服务器主机上的 Base URL
vLLM FP8 http://localhost:18000
vLLM BF16 http://localhost:18000(节点 0)
SGLang FP8 http://localhost:30000

以下示例针对 vLLM FP8:

curl http://127.0.0.1:18000/v1/chat/completions \
    --header 'Content-Type: application/json' \
    --data '{
      "model": "step5",
      "messages": [{"role": "user", "content": "Hello!"}],
      "max_tokens": 4096,
      "stream": true
    }'

资源

许可证

本模型,包括其权重、参数、配置、分词器、模型专用代码及文档,均依据 StepFun Model License 1.0 授权。该许可证的完整文本可在本仓库的 LICENSE.txt 文件中查阅。StepFun Model License 1.0 是一种 Apache-2.0 风格的许可证,并针对模型的使用、修改和分发附加了归属声明及商业许可条件。

若本仓库中的随附材料(包括示例代码、数据集、第三方组件及其他文档)被单独标注为适用其他许可证,则该等材料依据该许可证授权。

来源:阶跃星辰模型发布 · hf-mirror.com