Text Generation
GGUF
English
llama.cpp
stepfun
step3p7
step-3.7
step-3.7-flash
mtp
speculative-decoding
rocm
vulkan
rocmfpx
fpx3
q3
q3_0_rocmfpx
qualityplus
amd
ryzen-ai-max-395
strix-halo
agentic
tool-calling
long-context
imatrix
conversational
Instructions to use jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus", filename="Step-3.7-Flash-ROCmFPX-Q3-QualityPlus-00001-of-00009.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus # Run inference directly in the terminal: llama cli -hf jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus # Run inference directly in the terminal: llama cli -hf jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus # Run inference directly in the terminal: ./llama-cli -hf jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus # Run inference directly in the terminal: ./build/bin/llama-cli -hf jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
Use Docker
docker model run hf.co/jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
- LM Studio
- Jan
- vLLM
How to use jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
- Ollama
How to use jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus with Ollama:
ollama run hf.co/jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
- Unsloth Studio
How to use jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus to start chatting
- Pi
How to use jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus with Docker Model Runner:
docker model run hf.co/jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
- Lemonade
How to use jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull jcbtc/Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
Run and chat with the model
lemonade run user.Step-3.7-Flash-ROCmFPX-Q3-QualityPlus-{{QUANT_TAG}}List all available models
lemonade list
Add Step 3.7 ROCmFPX Q3 QualityPlus card
Browse files- .gitattributes +2 -35
- README.md +231 -0
- assets/stepfun.png +3 -0
- evals/tool-eval-q3-qualityplus.json +42 -0
.gitattributes
CHANGED
|
@@ -1,35 +1,2 @@
|
|
| 1 |
-
*.
|
| 2 |
-
*.
|
| 3 |
-
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
-
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
-
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
-
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
-
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
-
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
-
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
-
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
-
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
-
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
-
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
-
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
-
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
-
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
-
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
| 1 |
+
*.gguf filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.png filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
README.md
ADDED
|
@@ -0,0 +1,231 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
base_model:
|
| 4 |
+
- stepfun-ai/Step-3.7-Flash
|
| 5 |
+
- notSnix/Step-3.7-Flash-MTP-Draft-GGUF
|
| 6 |
+
base_model_relation: quantized
|
| 7 |
+
language:
|
| 8 |
+
- en
|
| 9 |
+
library_name: llama.cpp
|
| 10 |
+
pipeline_tag: text-generation
|
| 11 |
+
tags:
|
| 12 |
+
- stepfun
|
| 13 |
+
- step3p7
|
| 14 |
+
- step-3.7
|
| 15 |
+
- step-3.7-flash
|
| 16 |
+
- gguf
|
| 17 |
+
- mtp
|
| 18 |
+
- speculative-decoding
|
| 19 |
+
- rocm
|
| 20 |
+
- vulkan
|
| 21 |
+
- rocmfpx
|
| 22 |
+
- fpx3
|
| 23 |
+
- q3
|
| 24 |
+
- q3_0_rocmfpx
|
| 25 |
+
- qualityplus
|
| 26 |
+
- amd
|
| 27 |
+
- ryzen-ai-max-395
|
| 28 |
+
- strix-halo
|
| 29 |
+
- agentic
|
| 30 |
+
- tool-calling
|
| 31 |
+
- long-context
|
| 32 |
+
---
|
| 33 |
+
|
| 34 |
+

|
| 35 |
+
|
| 36 |
+
# Step-3.7-Flash-ROCmFPX-Q3-QualityPlus
|
| 37 |
+
|
| 38 |
+
This is an extremely high quality FPX3 / ROCmFPX Q3 GGUF build of `stepfun-ai/Step-3.7-Flash`, tuned for AMD Strix Halo local serving with Step MTP.
|
| 39 |
+
|
| 40 |
+
The goal is simple: keep Step 3.7 Flash useful at 64K+ context on a 128 GB unified-memory machine without falling back to a nearly-FP4-sized "Q3" file. This release is a true tight Q3-weight build: `3.57 BPW`, `81.77 GiB` of language-model shards, and strong agent/tool behavior in local evals.
|
| 41 |
+
|
| 42 |
+
Use this if you want the Step 3.7 behavior profile, MTP support, and a much smaller local footprint than the stock GGUF Q3_K_L or ROCmFP4 STRIX_LEAN builds.
|
| 43 |
+
|
| 44 |
+
> Runtime note: these GGUFs use ROCmFPX tensor types. They are intended for the Chadrock / ROCmFPX llama.cpp runner family, not stock upstream llama.cpp.
|
| 45 |
+
|
| 46 |
+
## Why This One
|
| 47 |
+
|
| 48 |
+
Step 3.7 is huge. The practical local problem is not only speed; it is fitting enough context, KV, and agent workload into memory.
|
| 49 |
+
|
| 50 |
+
This FPX3/Q3 QualityPlus recipe was built for that constraint:
|
| 51 |
+
|
| 52 |
+
- `3.57 BPW` effective language-model size
|
| 53 |
+
- `81.77 GiB` total language GGUF shards
|
| 54 |
+
- `16.31%` smaller than the local ROCmFP4 STRIX_LEAN build
|
| 55 |
+
- `14.35%` smaller than StepFun's original `Q3_K_L` GGUF split
|
| 56 |
+
- 64K one-slot serving profile with q8_0 target KV and q8_0 draft KV
|
| 57 |
+
- Step MTP Q8 draft support through `draft-mtp`
|
| 58 |
+
- fixed Step tool/chat template using native `tool_response` observations and protocol-boundary escaping
|
| 59 |
+
|
| 60 |
+
In practice, the original StepFun `Q3_K_L` local split was not a compact 3-bit-feeling model: it measured about `95.46 GiB`, or roughly `4.17 BPW` by effective size. This QualityPlus build is the one I would publish/use as the FPX3 lane.
|
| 61 |
+
|
| 62 |
+
## Size Comparison
|
| 63 |
+
|
| 64 |
+
Measured from local GGUF shards:
|
| 65 |
+
|
| 66 |
+
| Build | Effective BPW | Shard total | Difference vs this release |
|
| 67 |
+
| --- | ---: | ---: | ---: |
|
| 68 |
+
| **ROCmFPX Q3 QualityPlus** | `3.57 BPW` | `81.77 GiB` | baseline |
|
| 69 |
+
| StepFun original `Q3_K_L` | `~4.17 BPW` | `95.46 GiB` | `+13.70 GiB` larger |
|
| 70 |
+
| ROCmFP4 STRIX_LEAN | `~4.27 BPW` | `97.70 GiB` | `+15.93 GiB` larger |
|
| 71 |
+
|
| 72 |
+
That size gap matters because Step 3.7 needs memory for long context, q8 KV, and MTP draft state. On the tested Strix Halo host, the Q3 QualityPlus 64K MTP profile used about `96.3 GiB` peak pooled GPU memory during long tool/Hermes runs, leaving enough RAM headroom to run the evals cleanly.
|
| 73 |
+
|
| 74 |
+
## Quality Highlights
|
| 75 |
+
|
| 76 |
+
This is not a throwaway low-bit build. The recipe protects the tensors that were most important for behavior while pushing the giant expert FFN tensors into `q3_0_rocmfpx`.
|
| 77 |
+
|
| 78 |
+
Local quality results on AMD Ryzen AI Max+ 395 / Strix Halo:
|
| 79 |
+
|
| 80 |
+
| Benchmark | Result | Notes |
|
| 81 |
+
| --- | ---: | --- |
|
| 82 |
+
| Tool-Eval full, 69 scenarios | [`88/100`, `122/138` raw points](evals/tool-eval-q3-qualityplus.json) | Same headline score as the recorded Step ROCmFP4 tool-eval row |
|
| 83 |
+
| HermesAgent-20, best Q3 template run | `85/100` | `13.40 min`, `35.31 tok/s` decode, `96.37 GiB` peak pooled GPU |
|
| 84 |
+
| HermesAgent-20, native tool-response template run | `82/100` | `12.82 min`, `35.76 tok/s` decode, `96.30 GiB` peak pooled GPU |
|
| 85 |
+
|
| 86 |
+
The best recorded Q3 HermesAgent-20 run was very close to the local BF16 Qwen3.6 27B MTP reference row:
|
| 87 |
+
|
| 88 |
+
| Model / row | HermesAgent-20 score | Wall time |
|
| 89 |
+
| --- | ---: | ---: |
|
| 90 |
+
| BF16 Qwen3.6 27B MTP GGUF | `87/100` | `42.4 min` |
|
| 91 |
+
| **Step 3.7 ROCmFPX Q3 QualityPlus** | `85/100` | `13.4 min` |
|
| 92 |
+
|
| 93 |
+
That is within two points of the BF16 Qwen3.6 27B row on the local HermesAgent-20 suite, while running in a much more compact Step 3.7 Q3 package.
|
| 94 |
+
|
| 95 |
+
Exact Q3 QualityPlus tool-eval score summary: [`evals/tool-eval-q3-qualityplus.json`](evals/tool-eval-q3-qualityplus.json). Public reference page for the Step 3.7 tool-calling work: [StepFun Step 3.7 Tool Eval on llm.ciru.ai](https://llm.ciru.ai/tooleval/stepfun-step37-rocmfp4-mtp-vulkan-64k/). The Q3 QualityPlus full run used the same 69-scenario tool-eval harness and scored `88/100` locally.
|
| 96 |
+
|
| 97 |
+
## Speed
|
| 98 |
+
|
| 99 |
+
Q3 QualityPlus speed was effectively tied with the local ROCmFP4 Step build while using much less disk space.
|
| 100 |
+
|
| 101 |
+
Short-context MTP speed, Vulkan0, q8_0/q8_0 target KV, q8_0/q8_0 draft KV, one slot, `n_max=2`, `p_min=0.75`, `b8192/u2048`, 128 generated tokens:
|
| 102 |
+
|
| 103 |
+
| Prompt | PP tok/s | TG tok/s |
|
| 104 |
+
| ---: | ---: | ---: |
|
| 105 |
+
| `2k` | `309.44` | `29.97` |
|
| 106 |
+
| `4k` | `325.18` | `29.39` |
|
| 107 |
+
| `8k` | `311.15` | `28.58` |
|
| 108 |
+
| `16k` | `306.37` | `26.26` |
|
| 109 |
+
|
| 110 |
+
Compared with the local ROCmFP4 Step build:
|
| 111 |
+
|
| 112 |
+
| Prompt | Q3 QualityPlus TG | ROCmFP4 TG | Takeaway |
|
| 113 |
+
| ---: | ---: | ---: | --- |
|
| 114 |
+
| `2k` | `29.97` | `26.52` | Q3 faster |
|
| 115 |
+
| `4k` | `29.39` | `29.37` | tied |
|
| 116 |
+
| `8k` | `28.58` | `28.02` | tied/slightly Q3 |
|
| 117 |
+
| `16k` | `26.26` | `26.42` | tied |
|
| 118 |
+
|
| 119 |
+
128K stress row:
|
| 120 |
+
|
| 121 |
+
| Context | PP tok/s | TG tok/s | Peak pooled GPU |
|
| 122 |
+
| ---: | ---: | ---: | ---: |
|
| 123 |
+
| `~130k prompt` | `146.67` | `14.52` | `~95.36 GiB` |
|
| 124 |
+
|
| 125 |
+
At 128K, MTP initialized but produced no accepted drafts in that particular row, so treat the 128K decode number as an effective no-draft long-context decode reference.
|
| 126 |
+
|
| 127 |
+
## Files
|
| 128 |
+
|
| 129 |
+
Published shard names intentionally match the model name:
|
| 130 |
+
|
| 131 |
+
```text
|
| 132 |
+
Step-3.7-Flash-ROCmFPX-Q3-QualityPlus-00001-of-00009.gguf
|
| 133 |
+
Step-3.7-Flash-ROCmFPX-Q3-QualityPlus-00002-of-00009.gguf
|
| 134 |
+
Step-3.7-Flash-ROCmFPX-Q3-QualityPlus-00003-of-00009.gguf
|
| 135 |
+
Step-3.7-Flash-ROCmFPX-Q3-QualityPlus-00004-of-00009.gguf
|
| 136 |
+
Step-3.7-Flash-ROCmFPX-Q3-QualityPlus-00005-of-00009.gguf
|
| 137 |
+
Step-3.7-Flash-ROCmFPX-Q3-QualityPlus-00006-of-00009.gguf
|
| 138 |
+
Step-3.7-Flash-ROCmFPX-Q3-QualityPlus-00007-of-00009.gguf
|
| 139 |
+
Step-3.7-Flash-ROCmFPX-Q3-QualityPlus-00008-of-00009.gguf
|
| 140 |
+
Step-3.7-Flash-ROCmFPX-Q3-QualityPlus-00009-of-00009.gguf
|
| 141 |
+
```
|
| 142 |
+
|
| 143 |
+
The Step MTP draft model is not duplicated here. Use the Q8 draft from [`notSnix/Step-3.7-Flash-MTP-Draft-GGUF`](https://huggingface.co/notSnix/Step-3.7-Flash-MTP-Draft-GGUF), for example `Step-3.7-Flash-MTP-Q8_0.gguf`.
|
| 144 |
+
|
| 145 |
+
## Recommended Serving Profile
|
| 146 |
+
|
| 147 |
+
The locally tested 64K profile:
|
| 148 |
+
|
| 149 |
+
```text
|
| 150 |
+
context: 65536
|
| 151 |
+
slots: 1
|
| 152 |
+
backend: Vulkan0 target + Vulkan0 draft
|
| 153 |
+
MTP: --spec-type draft-mtp
|
| 154 |
+
speculative.n_max: 2
|
| 155 |
+
speculative.n_min: 0
|
| 156 |
+
speculative.p_min: 0.75
|
| 157 |
+
speculative.p_split: 0.10
|
| 158 |
+
batch / ubatch: 8192 / 2048
|
| 159 |
+
target KV: q8_0 / q8_0
|
| 160 |
+
draft KV: q8_0 / q8_0
|
| 161 |
+
sampler: temperature 1.0, top_p 0.95, min_p 0.0, repeat_penalty 1.0
|
| 162 |
+
reasoning: on, DeepSeek format
|
| 163 |
+
chat template: Step native tool_response template with protocol-boundary escaping
|
| 164 |
+
```
|
| 165 |
+
|
| 166 |
+
Example shape:
|
| 167 |
+
|
| 168 |
+
```bash
|
| 169 |
+
/path/to/ROCmFPX/build/bin/llama-server \
|
| 170 |
+
-m Step-3.7-Flash-ROCmFPX-Q3-QualityPlus-00001-of-00009.gguf \
|
| 171 |
+
--alias step-3.7-flash-rocmfpx-q3-qualityplus \
|
| 172 |
+
--host 127.0.0.1 \
|
| 173 |
+
--port 8080 \
|
| 174 |
+
--jinja \
|
| 175 |
+
-c 65536 \
|
| 176 |
+
--reasoning on \
|
| 177 |
+
--reasoning-format deepseek \
|
| 178 |
+
--reasoning-budget -1 \
|
| 179 |
+
-dev Vulkan0 \
|
| 180 |
+
-ngl 999 \
|
| 181 |
+
-fa on \
|
| 182 |
+
-b 8192 \
|
| 183 |
+
-ub 2048 \
|
| 184 |
+
--parallel 1 \
|
| 185 |
+
--no-mmap \
|
| 186 |
+
--ctk q8_0 \
|
| 187 |
+
--ctv q8_0 \
|
| 188 |
+
--spec-draft-model Step-3.7-Flash-MTP-Q8_0.gguf \
|
| 189 |
+
--spec-draft-device Vulkan0 \
|
| 190 |
+
--spec-type draft-mtp \
|
| 191 |
+
--spec-draft-ngl all \
|
| 192 |
+
--spec-draft-type-k q8_0 \
|
| 193 |
+
--spec-draft-type-v q8_0 \
|
| 194 |
+
--spec-draft-n-max 2 \
|
| 195 |
+
--spec-draft-n-min 0 \
|
| 196 |
+
--spec-draft-p-min 0.75 \
|
| 197 |
+
--spec-draft-p-split 0.10 \
|
| 198 |
+
--chat-template-file step37-native-tool-response-template.jinja \
|
| 199 |
+
--metrics
|
| 200 |
+
```
|
| 201 |
+
|
| 202 |
+
## Template Note
|
| 203 |
+
|
| 204 |
+
The best local Step setup uses a Step-native tool/chat template that renders tool outputs as `tool_response` turns and escapes protocol-boundary tokens inside tool output. This is a general protocol-adapter fix: tool/file/search results stay observations instead of being flattened into user text.
|
| 205 |
+
|
| 206 |
+
That matters for real agents because Step 3.7 can otherwise confuse tool output with conversation authority, especially in file/search-result injection cases.
|
| 207 |
+
|
| 208 |
+
## Build Notes
|
| 209 |
+
|
| 210 |
+
The QualityPlus policy used here:
|
| 211 |
+
|
| 212 |
+
- huge `ffn_*_exps` tensors: `q3_0_rocmfpx`
|
| 213 |
+
- attention q/output protected at `q5_K`
|
| 214 |
+
- attention k/v protected at `q4_K`
|
| 215 |
+
- shared/dense FFN protected at `q5_K`
|
| 216 |
+
- output/token embeddings at `q4_0_rocmfp4_fast`
|
| 217 |
+
|
| 218 |
+
Converter-reported size: `83726.08 MiB / 3.57 BPW`, 9 shards.
|
| 219 |
+
|
| 220 |
+
## Credits
|
| 221 |
+
|
| 222 |
+
- Base model: [`stepfun-ai/Step-3.7-Flash`](https://huggingface.co/stepfun-ai/Step-3.7-Flash)
|
| 223 |
+
- MTP draft GGUF source: [`notSnix/Step-3.7-Flash-MTP-Draft-GGUF`](https://huggingface.co/notSnix/Step-3.7-Flash-MTP-Draft-GGUF)
|
| 224 |
+
- Runtime family: [`ciru-ai/ROCmFPX`](https://github.com/ciru-ai/ROCmFPX)
|
| 225 |
+
- Quantization, Strix Halo profile, and local benchmark work: Crown / Ciru
|
| 226 |
+
|
| 227 |
+
## Caveats
|
| 228 |
+
|
| 229 |
+
- This is a custom ROCmFPX GGUF release. Use a compatible ROCmFPX/Chadrock llama.cpp runner.
|
| 230 |
+
- Quality numbers are local Strix Halo measurements and depend on runtime, chat template, KV type, and MTP settings.
|
| 231 |
+
- The model is strong but not perfect at autonomous email/message side effects; it can be cautious and ask for subject/body/recipient details instead of sending with inferred defaults.
|
assets/stepfun.png
ADDED
|
Git LFS Details
|
evals/tool-eval-q3-qualityplus.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model": "Step-3.7-Flash-ROCmFPX-Q3-QualityPlus",
|
| 3 |
+
"benchmark": "Tool-Eval full",
|
| 4 |
+
"harness_version": "2.0.7",
|
| 5 |
+
"run_id": "2026-07-05T06-07-28.330900Z_405f5a32",
|
| 6 |
+
"scenario_count": 69,
|
| 7 |
+
"final_score": 88,
|
| 8 |
+
"deployability": 70,
|
| 9 |
+
"responsiveness": 27,
|
| 10 |
+
"total_points": 122,
|
| 11 |
+
"max_points": 138,
|
| 12 |
+
"status_counts": {
|
| 13 |
+
"pass": 57,
|
| 14 |
+
"partial": 8,
|
| 15 |
+
"fail": 4
|
| 16 |
+
},
|
| 17 |
+
"runtime": {
|
| 18 |
+
"backend": "llama.cpp ROCmFPX / Vulkan",
|
| 19 |
+
"context": 65536,
|
| 20 |
+
"mtp": true,
|
| 21 |
+
"speculative_n_max": 2,
|
| 22 |
+
"speculative_p_min": 0.75,
|
| 23 |
+
"target_kv": "q8_0/q8_0",
|
| 24 |
+
"draft_kv": "q8_0/q8_0",
|
| 25 |
+
"batch": 8192,
|
| 26 |
+
"ubatch": 2048
|
| 27 |
+
},
|
| 28 |
+
"speed_and_memory": {
|
| 29 |
+
"pp_tps": 145.65656394243823,
|
| 30 |
+
"tg_tps": 32.338072639262656,
|
| 31 |
+
"prompt_tokens": 34333,
|
| 32 |
+
"predicted_tokens": 33430,
|
| 33 |
+
"peak_pooled_gpu_gib": 96.34914779663086,
|
| 34 |
+
"peak_ram_used_gib": 107.00336074829102,
|
| 35 |
+
"wall_time": "21:21.23"
|
| 36 |
+
},
|
| 37 |
+
"notes": [
|
| 38 |
+
"Local AMD Ryzen AI Max+ 395 / Strix Halo measurement.",
|
| 39 |
+
"Uses the Step native tool_response chat template with protocol-boundary escaping.",
|
| 40 |
+
"The public llm.ciru.ai StepFun tool-eval page currently documents the Step tool-calling methodology and matching FP4 score row; this JSON records the exact Q3 QualityPlus run summary."
|
| 41 |
+
]
|
| 42 |
+
}
|