15 KiB
Note
本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
Step 3.7 Flash
- [ModelPage]: https://static.stepfun.com/blog/step-3.7-flash/
- [HuggingFace]:
1. 简介
Step 3.7 Flash 是一款参数量为 198B 的稀疏混合专家(Mixture-of-Experts,MoE)视觉语言模型,它将 196B 参数的语言主干与 1.8B 参数的视觉编码器相结合,以实现原生图像理解。该模型面向高频生产工作负载进行工程化设计,每个 token 约激活 11B 参数,吞吐量最高可达每秒 400 个 token。Step 3.7 Flash 支持 256k 上下文窗口,并提供三种可选的推理等级(低、中、高),便于开发者在速度、成本与认知深度之间轻松权衡。
我们打造 Step 3.7 Flash,旨在满足需要扩展结合感知、搜索与推理的智能体(agentic)工作流的开发者。它专为处理高强度任务而设计,例如一次性解析海量财务报告、运行带跨源验证的多步搜索循环,或在高通量流水线中运行并发的编程智能体。
2. 能力与性能
多模态感知与验证
该模型提供顶尖的视觉智能,在 SimpleVQA (Search) 上以 79.2 的成绩夺得第一,并在 V* (Python) 上以 95.3 达到前沿同级水平。这些指标反映了强大的视觉 grounding 与超越基础图像描述的检索增强推理能力。该模型能准确处理密集视觉界面,例如 UI 线框图、应用 GUI 和数据图表,并将其映射为结构化代码。当遇到不完整的视觉素材时,它能独立识别缺失数据,并执行查询以在返回经事实核验的结论之前验证上下文。
工作流完整性与工具编排
执行可靠性对自主智能体至关重要。Step 3.7 Flash 以 67.1 分领跑 ClawEval-1.1 基准测试,显著优于最接近的竞争对手(59.8 分)。这一表现体现了其在多轮编排中对对抗性陷阱的高抵抗力,以及对系统策略的严格遵守。在 Toolathlon 上得分 49.5、在 HLE w. Tool 上得分 48.1 的支撑下,这一能力画像确保了较高的轨迹完整性。Step 3.7 Flash 能可靠地与外部 API 交互,并执行长程工作流,而不会偏离指令或违反系统约束。
代码工程与专业基线
Step 3.7 Flash 面向实时工程任务构建,在 SWE-Bench PRO 上以 56.3 分稳居第二。它能独立追踪多文件代码仓库,从原始问题报告中定位 bug,并生成能通过自动化单元测试的功能性补丁。尽管 Terminal-Bench 2.1(59.5)和 GDPVal-AA(45.8)等评测与 cohort 中的绝对峰值相比,仍显示出未来可优化的明确空间,但它们为系统交互与结构化专业交付物建立了可靠的基线。
NVFP4 + MTP
Step 3.7 Flash 还提供 NVFP4 量化变体,便于在 NVIDIA GPU 上高效部署。最新 NVFP4 checkpoint 包含 MTP draft 层,并支持 vLLM 推测解码(speculative decoding),具备以下特性:
--speculative-config '{"method": "mtp", "num_speculative_tokens": 3}'
在 GPQA Diamond avg@16 上,NVFP4 + MTP checkpoint 与不含 MTP 的同款 NVFP4 checkpoint 相比,质量在统计噪声范围内持平:77.81% 对比 78.41% 的项目准确率,基于 3168 条记录。
在 GB200 TP=4 vLLM 配置下,使用 GPQA 风格的长推理流式提示(约 250 token 提示、约 1.6K token 补全),NVFP4 + MTP 提升了整体解码吞吐量:
| 并发数 | NVFP4 + MTP | NVFP4 无 MTP | 加速比 |
|---|---|---|---|
| 8 | 1309 tok/s | 1155 tok/s | 1.13x |
| 32 | 4391 tok/s | 3480 tok/s | 1.26x |
| 64 | 8229 tok/s | 5667 tok/s | 1.45x |
这使得 NVFP4 checkpoint 成为高通量长推理工作负载的实用选择。该基准测试刻画的是短提示、解码密集型推理,而非长上下文 prefill 性能。
3. 定价
| Token 类型 | 价格 |
|---|---|
| 输入(缓存未命中) | $0.20 / M tokens |
| 输入(缓存命中) | $0.04 / M tokens |
| 输出 | $1.15 / M tokens |
4. 可用性、部署与生态
- 可用性:Step 3.7 Flash 已在 StepFun 开放平台上线 — platform.stepfun.ai(Global)与 platform.stepfun.com(China),亦可通过 OpenRouter 和 NVIDIA NIM 使用。StepFun 还与 DeepInfra、Fireworks AI 和 Modal 达成合作,即将进一步扩大可用性。
- 部署:Step 3.7 Flash 支持在云端、数据中心和本地环境中灵活部署。针对大规模生产与企业用例,Step 3.7 Flash 可部署在现代数据中心基础设施上。针对本地与工作站场景,它也可在高内存设备上运行,例如 NVIDIA DGX Station、基于 AMD Ryzen AI Max+ 395 的系统,以及配备至少 128GB 统一内存的 Mac Studio / Macbook Pro 设备。
- 生态:Step 3.7 Flash 得到流行开源基础设施的广泛支持,涵盖推理与模型开发。在推理与服务方面,开发者可使用 vLLM、SGLang、Hugging Face Transformers 和 llama.cpp。在模型开发与定制工作流方面,StepFun 模型支持已落地 NVIDIA Nemo 生态,包括 AutoModel、Megatron Core 和 Megatron Bridge。Step 3.7 Flash 还以 NVIDIA NIM 推理微服务的形式提供,支持本地、云端或混合部署。
5. 示例
您可通过 StepFun API 或其他推理服务商,在几分钟内上手 Step 3.7 Flash。
请根据所在地区选择正确的
base_url。StepFun 运营两个区域性平台,各自拥有独立的 API 主机。您传给 OpenAI 客户端的base_url必须与签发 API 密钥的平台一致,否则请求将被拒绝为未授权。
- Global: platform.stepfun.ai —
base_url=https://api.stepfun.ai/v1- China: platform.stepfun.com —
base_url=https://api.stepfun.com/v1为避免硬编码错误的地区,以下示例从环境变量读取 API 密钥和 base URL。运行前请先导出:
export STEP_API_KEY="sk-..." export STEP_BASE_URL="https://api.stepfun.ai/v1" # 中国区平台请使用 https://api.stepfun.com/v1
5.1 对话示例
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["STEP_API_KEY"],
base_url=os.environ["STEP_BASE_URL"],
)
completion = client.chat.completions.create(
model="step-3.7-flash",
messages=[
{
"role": "system",
"content": "You are an AI assistant provided by StepFun. You are good at Chinese, English, and many other languages, and you can see, think, and act to help users get things done.",
},
{
"role": "user",
"content": "Introduce StepFun's artificial intelligence capabilities."
},
],
)
print(completion)
5.2 文本与图像输入示例
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["STEP_API_KEY"],
base_url=os.environ["STEP_BASE_URL"],
)
completion = client.chat.completions.create(
model="step-3.7-flash",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What is in this picture?"},
{
"type": "image_url",
"image_url": {"url": "https://example.com/photo.jpg"},
},
],
},
],
)
print(completion)
6. 本地部署
Step 3.7 Flash 针对本地推理进行了优化,并支持包括 vLLM、SGLang、Hugging Face Transformers 和 llama.cpp 在内的行业标准后端。
6.1 vLLM
我们建议使用 StepFun 预构建的、支持 Step 3.7 的 vLLM Docker 镜像。
- 安装 vLLM。
# via Docker
docker pull vllm/vllm-openai:stepfun37
- 启动服务。
- 对于 FP8 模型
vllm serve <MODEL_PATH_OR_HF_ID> \
--served-model-name step3p7-flash \
--tensor-parallel-size 8 \
--enable-expert-parallel \
--disable-cascade-attn \
--reasoning-parser step3p5 \
--enable-auto-tool-choice \
--tool-call-parser step3p5 \
--speculative-config '{"method": "mtp", "num_speculative_tokens": 3}' \
--trust-remote-code
- 对于 BF16 模型
vllm serve <MODEL_PATH_OR_HF_ID> \
--served-model-name step3p7-flash-bf16 \
--tensor-parallel-size 8 \
--enable-expert-parallel \
--disable-cascade-attn \
--reasoning-parser step3p5 \
--enable-auto-tool-choice \
--tool-call-parser step3p5 \
--speculative-config '{"method": "mtp", "num_speculative_tokens": 3}' \
--trust-remote-code
- 对于 NVFP4 模型 与标准精度相比,运行 FP4 量化版本需要启用 modelopt 激活,并对齐 FP8 KV Cache。
python3 -m vllm.entrypoints.openai.api_server \
--host 0.0.0.0 \
--port ${PORT} \
--model stepfun-ai/Step-3.7-Flash-NVFP4 \
--served-model-name step3p7 \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.9 \
--enable-expert-parallel \
--trust-remote-code \
--quantization modelopt \
--kv-cache-dtype fp8 \
--max-model-len 8192 \
--reasoning-parser step3p5 \
--enable-auto-tool-choice \
--tool-call-parser step3p5 \
--async-scheduling \
--speculative-config '{"method": "mtp", "num_speculative_tokens": 3}'
6.2 SGLang
- 安装 SGLang。
# via Docker
docker pull lmsysorg/sglang:dev-step-3.7-flash
# or from source (pip)
pip install "sglang[all] @ git+https://github.com/sgl-project/sglang.git"
- 启动服务。
注意: 对于 Blackwell GPU,可使用
--mm-attention-backend fa4。
- 对于 BF16 模型
sglang serve --model-path stepfun-ai/Step-3.7-Flash \
--tp 8 \
--reasoning-parser step3p5 \
--tool-call-parser step3p5 \
--enable-multimodal \
--speculative-algorithm EAGLE \
--speculative-num-steps 3 \
--speculative-eagle-topk 1 \
--speculative-num-draft-tokens 4 \
--enable-multi-layer-eagle \
--trust-remote-code \
--host 0.0.0.0 \
--port 8000
- 对于 FP8 模型
sglang serve --model-path stepfun-ai/Step-3.7-Flash-FP8 \
--tp 8 \
--ep 4 \
--reasoning-parser step3p5 \
--tool-call-parser step3p5 \
--enable-multimodal \
--speculative-algorithm EAGLE \
--speculative-num-steps 3 \
--speculative-eagle-topk 1 \
--speculative-num-draft-tokens 4 \
--enable-multi-layer-eagle \
--trust-remote-code \
--host 0.0.0.0 \
--port 8000
- 对于 NVFP4 模型
sglang serve --model-path stepfun-ai/Step-3.7-Flash-NVFP4 \
--tp 4 --ep 4 \
--moe-runner-backend flashinfer_trtllm \
--kv-cache-dtype fp8_e4m3 \
--quantization modelopt_fp4 \
--trust-remote-code \
--reasoning-parser step3p5 \
--tool-call-parser step3p5 \
--attention-backend trtllm_mha
6.3 Transformers(调试 / 验证)
使用以下代码片段进行快速功能验证。如需高吞吐量服务,请使用 vLLM 或 SGLang。
注意: 部署此模型需要
transformers5.0 或更高版本。
from transformers import AutoProcessor, AutoModelForCausalLM
MODEL_PATH = "<MODEL_PATH_OR_HF_ID>"
# 1. Setup
processor = AutoProcessor.from_pretrained(MODEL_PATH, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
MODEL_PATH,
device_map="auto",
dtype="auto",
trust_remote_code=True
)
# 2. Prepare Input
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://example.com/photo.jpg"},
{"type": "text", "text": "What is in this picture?"}
]
},
]
inputs = processor.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
# 3. Generate
generated_ids = model.generate(**inputs, max_new_tokens=128, do_sample=False)
output_text = processor.decode(generated_ids[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(output_text)
6.4 llama.cpp
系统要求
GGUF 模型权重:
| 组件 | 量化 | 文件大小 |
|---|---|---|
| Language Model | Q4_K_S | 111.5 GB |
| Language Model | IQ4_XS | 104.99 GB |
| Language Model | Q3_K_L | 102.5 GB |
| Multimodal Projector | FP16 | 3.97 GB |
- 运行时开销: 约 7 GB
- 最低统一内存 / VRAM: 120 GB(例如 Mac Studio、NVIDIA DGX Station、AMD Ryzen AI Max+ 395)
- 推荐配置: 128 GB 统一内存
步骤
- 使用 llama.cpp:
git clone https://github.com/stepfun-ai/llama.cpp.git
cd llama.cpp
git checkout -b step3.7 origin/step3.7
- 在 Mac 上构建 llama.cpp:
cmake -B build-macos -S . \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON \
-DLLAMA_BUILD_SERVER=ON \
-DLLAMA_BUILD_TESTS=ON \
-DGGML_METAL=ON \
-DGGML_METAL_EMBED_LIBRARY=ON \
-DGGML_BLAS=ON \
-DGGML_BLAS_VENDOR=Apple \
-DGGML_ACCELERATE=ON \
-DGGML_NATIVE=ON
cmake --build build-macos -j8
- 在 DGX-Spark 上构建 llama.cpp:
cmake -S . -B build-cuda \
-DCMAKE_BUILD_TYPE=Release \
-DGGML_CUDA=ON \
-DGGML_CUDA_GRAPHS=ON \
-DGGML_CUDA_FORCE_MMQ=ON \
-DLLAMA_OPENSSL=OFF \
-DLLAMA_BUILD_COMMON=ON \
-DLLAMA_BUILD_TOOLS=ON \
-DLLAMA_BUILD_SERVER=ON \
-DLLAMA_BUILD_EXAMPLES=OFF \
-DLLAMA_BUILD_TESTS=OFF
cmake --build build-cuda -j8
- 在 AMD Windows 上构建 llama.cpp:
cmake -S . -B build-vulkan \
-DCMAKE_BUILD_TYPE=Release \
-DGGML_VULKAN=ON \
-DGGML_NATIVE=ON \
-DLLAMA_BUILD_SERVER=ON \
-DLLAMA_BUILD_UI=OFF \
-DLLAMA_BUILD_TOOLS=ON
cmake --build build-vulkan -j8
- 使用
llama-cli运行:
./llama-cli -m Step3.7_Q4_K_S.gguf -b 2048 -ub 2048 -fa on --temp 1.0 -p "What's your name?"
- 使用
llama-batched-bench测试性能:
./llama-batched-bench -m step3.7_Q4_K_S.gguf -c 32768 -b 2048 -ub 2048 -npp 0,2048,8192,16384,32768 -ntg 128 -npl 1
7. 在 Agent 平台上使用 Step 3.7 Flash
你可以在 Hermes Agent、OpenClaw、Kilo Code 等 Agent 平台上使用 Step 3.7 Flash。
8. 联系我们
随着我们不断扩展广泛的模型能力以塑造 AGI 的未来,我们希望确保正在解决正确的问题。我们邀请你参与这一持续的反馈循环——你的见解将直接影响我们的优先级。
- 加入讨论: 我们的 Discord 社区是讨论未来架构、提出能力建议以及获取抢先体验更新的主要枢纽 🚀
- 反馈使用障碍: 遇到限制?你可以在 GitHub / HuggingFace 上提交 issue 或发起讨论,也可以直接在我们的 Discord 支持频道中反馈。
📄 许可证
本项目在 Apache 2.0 License. 下开源。
