Step3 是怎么把 3210 亿参数的大模型跑得比 370 亿的还便宜?
通俗版技术博客:读完你就知道 Step3 为什么「大却省钱」,以及它的代码和模型该怎么用。
1. 先讲结论:为什么值得花时间看 Step3?
场景 | 传统大模型 | Step3 做到的事 |
---|---|---|
每 100 万个 token 的推理账单 | 0.21 USD(DeepSeek-V3,32 K 上下文) | 0.13 USD |
1 张 H800 GPU 的生成速度 | 2 324 token/s | 4 039 token/s |
启动一次推理最少要几块 GPU | 128~320 块 | 32 块 |
省钱、省卡、速度还更快,这就是 Step3 想解决的问题。
2. Step3 到底是什么?
一句话:
Step3 是一个 3210 亿总参数、每次推理只激活 380 亿参数的「视觉-语言」大模型,通过两项关键设计把推理成本打到新低。
关键数字 | 说明 |
---|---|
321 B | 总参数,含视觉编码器 |
38 B | 每 token 激活参数,略高于 DeepSeek-V3 的 37 B |
61 层 | Transformer 层数 |
7168 | 隐藏层维度 |
65536 | 最长上下文长度 |
FP8 / BF16 | 官方权重格式 |
3. 技术拆解:Step3 如何把成本做低?
3.1 Multi-Matrix Factorization Attention(MFA)
问题背景
传统 Attention 需要把 Key-Value(KV)缓存全部塞进显存,上下文越长,显存爆炸。
Step3 的 MFA 用「低秩分解」把 Query 做降维,带来两个好处:
-
KV 缓存体积直接降到 DeepSeek-V3 的 90 %(表 2)。 -
计算量只有传统 GQA 的 1/4,但表达能力不变(有效秩 16 384)。
一句话总结:
KV 更小、算得更快,还保持了模型效果。
3.2 Attention-FFN Disaggregation(AFD)
问题背景
在 GPU 上做推理时,Attention 和 FFN(Feed-Forward Network)像两个性格迥异的人:
-
Attention 需要大量显存带宽,计算相对轻。 -
FFN 需要大量计算,显存带宽需求小。
传统做法把它们绑在同一批 GPU 上,结果谁都跑不满。
Step3 的做法简单粗暴:拆开,各跑各的。
原架构 | AFD 架构 |
---|---|
Attention + FFN 同一批 GPU | Attention 一批 GPU,FFN 另一批 GPU |
128~320 块 GPU 起步 | 32 块 GPU 起步 |
固定专家并行,难扩展 | 可独立扩展 Attention 或 FFN |
拆开以后,再配一条高速网络管线,让两部分像工厂流水线一样协作,通信延迟被计算完美盖住。
4. 动手实践:如何运行 Step3?
4.1 获取模型
-
Hugging Face:
https://huggingface.co/collections/stepfun-ai/step3-688a3d652dbb45d868f9d42d -
ModelScope:
https://www.modelscope.cn/models/stepfun-ai/step3
权重提供两种精度:
-
BF16(通用,兼容所有 GPU) -
分块 FP8(节省显存,需要 Hopper 或 Ada 架构)
4.2 推荐引擎
官方已验证:
-
vLLM -
SGLang
部署文档见项目内 docs/deploy_guidance.md
,包含:
-
Docker 镜像 -
启动脚本 -
与 OpenAI 完全兼容的 RESTful API
最小硬件示例(32 K 上下文):
角色 | 推荐 GPU | 数量 | 说明 |
---|---|---|---|
Attention 实例 | NVIDIA H800 80 GB | 2 台 × 8 卡 | 负责 KV 缓存 |
FFN 实例 | NVIDIA H800 80 GB | 2 台 × 8 卡 | 负责 MoE 计算 |
网络 | 400 Gbps RoCE | 每节点 8×NIC | 满足 50 ms TPOT |
4.3 一键调用示例(vLLM)
# 下载权重
git lfs install
git clone https://huggingface.co/stepfun-ai/step3
# 启动服务
docker run --gpus all -p 8000:8000 \
-v $(pwd)/step3:/model \
vllm/vllm:latest \
python -m vllm.entrypoints.openai.api_server \
--model /model \
--tensor-parallel-size 8 \
--pipeline-parallel-size 4 \
--max-model-len 32768
客户端调用(与 OpenAI 完全一致):
import openai
openai.api_base = "http://localhost:8000/v1"
openai.ChatCompletion.create(
model="step3",
messages=[{"role": "user", "content": "为什么天空是蓝色的?"}]
)
5. 成本到底省在哪里?真实数据说话
5.1 理论账单(每 100 万 token,32 K 上下文)
模型 | 硬件组合 | 成本 |
---|---|---|
DeepSeek-V3 | H800 + EP | 0.211 USD |
Qwen3-MoE | H800 + AFD | 0.193 USD |
Step3 | H800 + H20 + AFD | 0.129 USD |
注:AFD 允许给 Attention 和 FFN 各选最便宜的硬件,成本再砍一刀。
5.2 实际吞吐(官方复现,20 token/s SLA)
模型 | GPU 数 | 平均吞吐 |
---|---|---|
DeepSeek-V3 官方 | 128 | 2 324 token/s/GPU |
Step3 FP8 | 32 | 4 039 token/s/GPU |
6. 常见疑问 FAQ
Q1:我只有 A800 或 910B,能跑吗?
可以。Step3 的 MFA 对硬件算力/带宽比更友好:
-
在 A800 上,Step3 的 Attention 成本只比 H800 贵 0.01 USD/1 M token。 -
DeepSeek-V3 在 A800 上成本直接翻 2~3 倍。
Q2:模型真的完全开源吗?
-
代码:Apache 2.0 许可证,GitHub 公开。 -
权重:Apache 2.0 许可证,可商用。 -
限制:无,官方声明“可自由使用、修改、分发”。
Q3:为什么 321 B 参数反而比 235 B 的 Qwen3-MoE 便宜?
核心原因是 Attention 设计 + AFD 架构:
-
参数多少 ≠ 成本高低。 -
Attention 成本在长上下文场景占大头,Step3 把这部分压缩到极致。 -
FFN 用 MoE 稀疏激活,再加上 AFD 把计算/通信拆到最合适的硬件,整体反而更省。
Q4:需要多少 GPU 显存?
场景 | 显存需求(FP8) | 说明 |
---|---|---|
单个 Attention GPU | 80 GB | 32 K 上下文,batch=64 |
单个 FFN GPU | 80 GB | 存储 1/N 专家权重 |
最小部署 | 32 张 80 GB | 2A2F 配置 |
Q5:和 DeepSpeed、Megatron 有什么区别?
-
DeepSpeed/Megatron 侧重训练并行;Step3 的 AFD 专为「推理」设计。 -
AFD 把 Attention 和 FFN 拆成两条独立流水线,硬件利用率更高。 -
官方提供了可落地的通信库 StepMesh,直接可用。
7. 未来路线:官方下一步做什么?
-
多 token 预测(MTP):已在实验,预计再提 50 % 吞吐。 -
更激进的 KV 量化:4 bit 存储 + 8 bit 计算,Attention 成本再降一半。 -
新互联:与硬件厂商合作,800 Gbps 域网络,进一步解锁稀疏 MoE。
8. 小结:什么时候该选 Step3?
你的需求 | 建议 |
---|---|
预算有限,又要长上下文 | 直接选 Step3,32 张卡起步 |
已有 H800 / H20 / A800 | AFD 架构能把不同卡混着用,省钱 |
需要开源可商用 | Apache 2.0 许可证,无商业限制 |
想快速上线 | 提供 vLLM/SGLang 一键部署脚本 |
参考链接
-
技术报告(arXiv):https://arxiv.org/abs/2507.19427 -
官方博客:https://stepfun.ai/research/step3 -
开源仓库与权重:https://huggingface.co/collections/stepfun-ai/step3