Image-Text-to-Text
MLX
Safetensors
English
Chinese
step3p7
jang
jang-2l
stepfun
vision-language
conversational
custom_code
modelopt
Instructions to use OsaurusAI/Step-3.7-Flash-JANG_2L with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use OsaurusAI/Step-3.7-Flash-JANG_2L with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("OsaurusAI/Step-3.7-Flash-JANG_2L") config = load_config("OsaurusAI/Step-3.7-Flash-JANG_2L") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use OsaurusAI/Step-3.7-Flash-JANG_2L with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "OsaurusAI/Step-3.7-Flash-JANG_2L"
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "OsaurusAI/Step-3.7-Flash-JANG_2L" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use OsaurusAI/Step-3.7-Flash-JANG_2L with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "OsaurusAI/Step-3.7-Flash-JANG_2L"
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 OsaurusAI/Step-3.7-Flash-JANG_2L
Run Hermes
hermes
File size: 3,934 Bytes
660e38c 325c336 660e38c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | ---
language:
- en
- zh
license: apache-2.0
base_model: stepfun-ai/Step-3.7-Flash-NVFP4
pipeline_tag: image-text-to-text
library_name: mlx
tags:
- mlx
- jang
- jang-2l
- stepfun
- vision-language
---
# Step-3.7-Flash-JANG_2L
JANG_2L conversion of [stepfun-ai/Step-3.7-Flash-NVFP4](https://huggingface.co/stepfun-ai/Step-3.7-Flash-NVFP4).
This bundle was built from the public NVFP4 checkpoint. Routed MoE tensors were decoded from ModelOpt NVFP4 (`uint8` payload, `float8_e4m3fn` block scales, fp32 side scales) and then re-quantized into JANG affine `weight/scales/biases` tensors. BF16 attention, shared expert, dense, vision, and projector tensors were handled according to the JANG plan.
## Status
This artifact has a text-only local coherence proof through the bundled `step3p7_mlx.py` bridge, which loads the nested Step3p5 text model using MLX and drops vision tensors for text generation.
Verified locally:
- 67 safetensors shards
- 2,570 tensors in `model.safetensors.index.json`
- No missing shard references
- No raw NVFP4 `weight_scale`, `weight_scale_2`, or `input_scale` sidecars are present in the output index
- `jang_config.json` capability verification passes
- Text generation proof passes on a math prompt
Text proof:
```json
{
"prompt": "What is 2+2? Answer with only the number.",
"output": "The user asks \"What is 2+2? Answer with only the number.\" So the answer is 4. The user wants only the number. So we should output \"4\". There's no disallowed content. It's a simple arithmetic. So we comply.\\n</think>\\n4",
"prompt_tokens": 26,
"generated_tokens": 58,
"prefill_s": 9.161997079849243,
"contains_final_4": true
}
```
Speed note: short cold measurements include MLX graph/kernel compile and are not representative of steady decode. A no-wrapper warmed decode run over 32 measured tokens produced:
```json
{
"prefill_s": 9.369971990585327,
"warm_tokens": 4,
"measured_tokens": 32,
"decode_s": 0.7534263134002686,
"tok_s": 42.47263392697507
}
```
Still required before full VLM runtime claims:
- Step3p7 VLM wrapper in the target MLX/vMLX runtime
- image patch token expansion and vision projector path
## Format
- Format: JANG affine
- Profile: `JANG_2L`
- Quantization backend: `mx.quantize`
- Default group size: `128`
- Bit widths used: `2`, `3`, `4`, `6`, `8`
- Vision/projector: BF16 source converted to F16 passthrough for this first artifact
- Output size: about `82G`
- Runtime bridge: `step3p7_mlx.py` wraps `mlx_lm.models.step3p5` for text-only proof
Important allocation choices:
- `self_attn.{q,k,v,o,g}_proj`: 8-bit
- `embed_tokens`: 6-bit
- routed experts: `gate_proj=4`, `down_proj=3`, `up_proj=2`
- true router/gate tensors: passthrough where present
## Runtime Metadata
`jang_config.json` stamps:
```json
{
"reasoning_parser": "qwen3",
"tool_parser": "step3p5",
"think_in_template": true,
"supports_tools": true,
"supports_thinking": true,
"family": "step3p7",
"modality": "vision",
"cache_type": "kv"
}
```
The source chat template opens the assistant generation prompt inside `<think>`. Runtimes should not add a second synthetic reasoning prefix.
## Vision And Audio
The source checkpoint contains the Step vision encoder and `vit_large_projector`. No audio tensors or audio tokenizer files were present in the downloaded checkpoint.
The source config mentions next-token prediction layers, but no MTP/nextn tensors were present in the NVFP4 source. This bundle does not synthesize MTP tensors from config fields.
## Korean
이 번들은 stepfun-ai/Step-3.7-Flash-NVFP4를 JANG_2L 형식으로 변환한 산출물입니다. 텍스트 경로는 `step3p7_mlx.py` 브리지를 통해 로컬 생성 검증을 통과했습니다. 비전 가중치는 포함되어 있지만, 이미지 입력 경로는 아직 별도 런타임 구현과 검증이 필요합니다. 오디오 텐서는 원본 체크포인트에 없었습니다.
|