阶跃开源Step-5-Preview:智能体旗舰模型,600B 参数 27B 激活,最高支持 1M 上下文
阶跃星辰正式开源 Step 5 Preview,面向真实世界的智能体(Agentic)任务,覆盖 AI 编程、软件工程与专业知识工作。模型采用稀疏 MoE 架构,总参数量 600B,每个 Token 激活 27B 参数,支持 1M Token 上下文窗口和视觉输入。
从公开评测到内部测试,Step 5 Preview 在软件工程、Agent、专业工作和金融等多个方向上都取得了有竞争力的结果。

在 Artificial Analysis Intelligence Index 上,Step 5 Preview 获得 44 分。而在相近智能水平下,它的 Task Cost 明显更低。

开源地址:
模型链接:https://modelscope.cn/models/stepfun-ai/Step-5-Preview
技术博客:https://www.stepfun.com/step-5-preview
技术创新
智能体工作负载对模型设计与训练提出了一套不同的要求。包含大量工具调用的长轨迹,使得模型基于大规模预填充上下文进行推理的能力变得更加重要;长上下文计算也愈发昂贵,同时还给数据构建和强化学习带来了新的挑战。
Step 5 Preview 正是针对这些约束而设计的。在架构上,它采用“窄而深”的设计,共包含 92 个 Transformer 模块。模型将门控滑动窗口注意力(Gated Sliding Window Attention)与稀疏全注意力层交错排列,并在全注意力路径中使用稀疏 GQA(Sparse GQA),以支持高效的长上下文训练与推理。扩大这一设计的规模还暴露出深层网络训练中的稳定性问题,促使我们重新审视数值精度与梯度处理方式。
在训练方面,阶跃研究团队构建了一套智能体原生的数据构建系统:智能体在专家制定的原则与质量控制机制下,协同完成部分数据合成流程。在强化学习方面,重点解决长时程场景中占据主导地位的系统与学习问题,包括训练—推理一致性、轨迹采样效率,以及超长轨迹中的信用分配。
1.1 窄而深:92 层架构支持隐式多跳推理
智能体任务中,多跳依赖无处不在;但频繁调用工具会产生很长的预填充,模型很少有机会执行充分、显式的思维链推理。由于 Transformer 在预填充阶段的信息流沿时间轴和深度轴都是单向的,语义表示必须随着后续 Token 推进,不断移向更深的网络层。如果深度不足,模型就可能在长预填充场景中“用尽”网络层,使潜在的多跳推理无法完成。
Step 5 Preview 因此采用最直接的“窄而深”方案:堆叠 92 个 Transformer Block。其深度与 Qwen 3.8 max、Kimi K3 等超大型开源模型相当,但总参数量和激活参数量分别不到这些模型的 1/4 和 1/3,在维持较低成本的同时,为长时程智能体任务保留足够的推理深度。
注意力层按 3:1 的比例交错排列:高效注意力采用门控滑动窗口注意力(Gated SWA),全注意力部分采用门控 GQA,并进一步加入稀疏索引。官方实验显示,更复杂的线性注意力方案与 Gated SWA 的性能差距有限,而后者更易高效实现,尤其适合推测解码。
1.2 训练稳定性:让深层 FP8 训练保持可控
“窄而深”架构在扩大训练规模时会出现数值爆炸和梯度尖峰,而这些现象在更浅或更宽的网络中较少出现。Step 5 Preview 采用混合精度 FP8 训练,并从隐藏状态、归一化参数和梯度流三个层面处理稳定性问题。
FP32 隐藏状态。 深层网络中的少数巨幅激活值可能在 BF16 隐藏状态中迅速爆炸。将隐藏状态及其对应梯度改为 FP32 后,峰值可再降低近一个数量级,相比常规 BF16 只增加很小的训练开销。
FP32 RMSNorm 缩放因子。 Step 5 Preview 使用以零为中心的 RMSNorm:

巨幅值所在维度的缩放权重通常很小,即 γ_i 接近 -1;但 BF16 在 -1 附近精度不足,可能让 γ_i 偶尔恰好等于 -1,使对应通道反复关闭和重启,造成输出振荡。将 γ_i 改为 FP32 后,RMSNorm 在这一数值区间内更加平滑。
细粒度梯度钳制。 梯度尖峰往往产生于中间层,并在短短数层内放大几个数量级。由于异常梯度非常稀疏,Step 5 Preview 只裁剪梯度流中最极端的向量;每层仅钳制 0.00004% 的梯度值,就能明显抑制尖峰并改善收敛。
使用细粒度梯度钳制之前(蓝色)与之后(橙色)的 LLM Loss 对比:

1.3 Sparse GQA:降低 100 万 Token 上下文的全注意力成本
当上下文长度达到 100 万 Token 时,全注意力层会成为训练和推理的主要效率瓶颈。Step 5 Preview 选择 GQA 以兼顾长上下文精度与多 GPU 并行推理,并在标准 GQA 中加入稀疏索引机制,形成 Sparse GQA,重点解决索引器成本、碎片化计算导致的 GPU 利用率不足,以及选择粒度与数据读取量之间的权衡。
Sparse GQA 的索引器先把共享索引键压缩成块表示,再由每个 KV 组独立选择相关历史信息;主路径只读取选中的历史块,以及当前块内因果可见位置对应的原始 K/V。

在索引阶段,Step 5 Preview 没有让多个 GQA 组共享同一索引器,而是把多个相邻历史位置压缩为一个块表示。块大小设为 8 后,索引器与 top-k 选择成本降低 8 倍。预填充阶段则对相邻 Token 的 top-k 结果取并集,把高度重叠的零散计算合并起来,以提高 GPU 利用率。
最终配置为 B=8、k=4096,即选择 512 个块。增大 B 能降低索引成本,增大 k 则补偿粒度变粗带来的精度影响。其 Token 覆盖率达到 78.06%,接近 B=1、k=2048 配置的 79.09%;随着序列增长,节省的索引开销会超过主路径新增成本。
不同 top-k 与块大小配置下的索引成本、主路径延迟和 Token 覆盖率对比:

模型体验与本地使用
魔搭免费体验
在魔搭社区模型页面 API-Inference 即可免费体验 Step 5 Preview,无需配置环境:

本地部署与推理:
Step 5 Preview 支持通过官方独立 Transformers 实现进行离线生成,也可使用 SGLang、vLLM 部署 OpenAI 兼容 API 服务。
模型提供 FP8 与 BF16 两种权重。 FP8 版本,在单节点 8 张 H200 上运行;BF16 建议使用双节点共 16 张 H200,vLLM 还支持单节点 8 张 B300。
模型下载
pip install modelscope
modelscope download --model stepfun-ai/Step-5-Preview \
--local_dir "$HOME/models/Step-5-Preview"
modelscope download --model stepfun-ai/Step-5-Preview-BF16 \
--local_dir "$HOME/models/Step-5-Preview-BF16"
Transformers 离线推理
权重分片:
export STEP5_FP8_CHECKPOINT="$HOME/models/Step-5-Preview"
export STEP5_FP8_OUT="$HOME/models/Step-5-Preview-shards-fp8"
# 只检查权重键名和分片形状,不加载权重或写入分片
python3 convert.py \
--checkpoint "$STEP5_FP8_CHECKPOINT" \
--tp-size 8 --ep-size 8 --check-only
# 转换为 8 个分片,并复制配套分词器文件
python3 convert.py \
--checkpoint "$STEP5_FP8_CHECKPOINT" \
--out-dir "$STEP5_FP8_OUT" \
--tp-size 8 --ep-size 8
转换完成后,在同一目录启动 8 个进程进行文本生成:
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
torchrun --standalone --nproc-per-node=8 generate.py \
--tp-dir "$STEP5_FP8_OUT/tp8" --ep-size 8 \
--prompt "请介绍一下张量并行。" \
--max-new-tokens 128
SGLang 部署
拉取官方 Step 5 Preview 专用镜像,并进入容器,将模型目录挂载到 /models:
docker pull lmsysorg/sglang:step-5-preview
docker run -it --gpus all --ipc=host --network=host \
--volume "$HOME/models:/models:ro" \
--entrypoint /bin/bash \
lmsysorg/sglang:step-5-preview
在容器内启动服务:
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
python -m sglang.launch_server \
--trust-remote-code \
--model-path /models/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
vLLM 部署
同样使用官方 Step 5 Preview 专用镜像,拉取镜像并进入容器:
docker pull vllm/vllm-openai:step-5-preview
docker run -it --gpus all --ipc=host --network=host \
--volume "$HOME/models:/models:ro" \
--entrypoint /bin/bash \
vllm/vllm-openai:step-5-preview
在容器内启动 OpenAI 兼容服务,监听端口 18000:
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
vllm serve /models/Step-5-Preview \
--host 0.0.0.0 --port 18000 \
--served-model-name step5 \
--tensor-parallel-size 8 \
--enable-expert-parallel \
--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
调用本地服务
SGLang 和 vLLM 服务启动后,即可发送请求。
针对 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
}'
更多推荐




所有评论(0)