SteptronOss
A lightweight, AI-native training framework for large language models. Designed for fast iteration, reproducible experiments, and modular configuration across SFT, RLVR, and evaluation workflows.
Install / Use
/learn @stepfun-ai/SteptronOssREADME
StepTronOSS is a lightweight training framework for large-scale language models with a focus on modular configs, reproducible experiments, and fast iteration across SFT, RLVR, and evaluation workflows. It can run with only PyTorch as a dependency, while also supporting operator-level replacements for acceleration.
Key capabilities:
- Config-driven experiments with dynamic validation (
cfshow,sanity_check) - Multi-task orchestration with flexible launch tooling
- Extensible data/optimizer/model stacks for rapid research iteration
Docs
- Launch guide (EN):
docs/LAUNCH_EXPERIMENTS.md - Launch guide (ZH):
docs/LAUNCH_EXPERIMENTS_ZH.md - SFT data prep (ZH):
docs/SFT_DATA_PREPARATION.md - SFT data prep (EN):
docs/SFT_DATA_PREPARATION_EN.md - API modules:
docs/MODULES.md
Installation
# from repo root
uv sync
# install redis-server
apt install -y redis-server
Getting Started
uv virtual environment is recommanded. If not, prefix with uv run.
Experiment Overview & Sanity Check
# Overview the experiment config and run sanity_check
uv run cfshow playground/rlvr/qwen3_1p5b_rlvr_math.py
# Inspect a specific subtree (e.g., actor config)
uv run cfshow playground/rlvr/qwen3_1p5b_rlvr_math.py -k actor_model_cfg
Run Experiments
# Single-task experiments (e.g., SFT)
uv run torchrun playground/sft/your_exp.py
# Multi-task experiments (e.g., RL)
export STEPTRON_MEET_DIR=/path/to/shared
uv run tools/mp_run.py playground/rlvr/qwen3_1p5b_rlvr_math.py
# mp_run is also compatible with single-task experiments
uv run tools/mp_run.py playground/sft/your_exp.py
# Override experiment params (example: enable timer logging)
uv run tools/mp_run.py playground/rlvr/qwen3_1p5b_rlvr_math.py profiler_cfg.timing_log_level=1
See the docs section above for detailed launch guides.
Generate Multi-Node Launch Scripts
Use tools/build_scripts.py to generate per-replica shell scripts based on resource_cfg.task_specs.
# Example: generate scripts under /mnt/entrypoints/<exp_name>/<exp_id>/
uv run tools/build_scripts.py playground/rlvr/qwen3_1p5b_rlvr_math.py /mnt/entrypoints/
Output layout:
/mnt/entrypoints/<exp_name>/<exp_id>/
cpu/
0.sh
gpu/
0.sh
1.sh
...
Notes:
- Script indices are cumulative within each node type (e.g., all GPU tasks share a single 0..N index range).
- Each script exports task envs (including task-scoped
EXP_IDandNNODES) and invokes the command assembled bymp_run. - Extra CLI args are passed through to the experiment, just like
mp_run.py.
Runtime Environment
Distributed rendezvous spins up a per-experiment Redis server using a shared filesystem directory.
STEPTRON_MEET_DIR: shared directory visible and writable by all nodes. It stores the rendezvous file that publishes the Redis server port.CANNOT_BE_REDIS_SERVER=1: set on ranks that must not start Redis (they will wait for another rank to start it). If every rank sets this, rendezvous will eventually time out.
Zen
Core principles:
- Keep configs stateless; runtime objects carry state.
- Declare config structure at class level, fill values in
__init__. - Use
Ref("..path")for cross-node linkage. - Call
sanity_check()andto_dict()for validation/serialization.
Configurize example:
# Before
class A:
def __init__(self, param_a: int, param_b: float = 1.0):
pass
# After
from configurize import Config
class AConfig(Config):
param_a: int
param_b: float = 1.0
def build(self):
return A(cfg=self)
def sanity_check(self):
super().sanity_check()
assert self.param_b > 0
class A:
def __init__(self, cfg: AConfig):
pass
AI Native
StepTronOSS enables an AI-native workflow: its modular architecture supports easy verification and iterative development, while tools like cfshow provide dynamic config inspection and validation. The repo also ships with AGENTS.md to guide agents in contributing to code changes.
Try asking your agent:
write an exp of qwen3 8B sft, optimizer use muon
Optimization Kernels
Only needed when you want maximum GPU performance and kernel-level speedups.
flash-attn
Install manually:
uv pip install flash-attn --no-build-isolation
grouped_gemm
Install manually:
uv pip install --verbose git+https://github.com/fanshiqing/grouped_gemm@main
Enable in code (set all optimizations at once)
from steptronoss.utils.optimizable import set_optimization
set_optimization(
default="torch_compile",
AttentionCore="flash-attn",
grouped_gemm="nv_grouped_gemm",
)
Project Status
- [x] SFT exps
- [x] Reference configs: Qwen3 8B
playground/pretrain/qwen3/qwen3_8.py, Step3.5 Flashplayground/pretrain/step3p5/step3p5_flash.py - [x] Eval
- [ ] RLVR implementation
- [x] Triton kernel implementation
Related Skills
clearshot
Structured screenshot analysis for UI implementation and critique. Analyzes every UI screenshot with a 5×5 spatial grid, full element inventory, and design system extraction — facts and taste together, every time. Escalates to full implementation blueprint when building. Trigger on any digital interface image file (png, jpg, gif, webp — websites, apps, dashboards, mockups, wireframes) or commands like 'analyse this screenshot,' 'rebuild this,' 'match this design,' 'clone this.' Skip for non-UI images (photos, memes, charts) unless the user explicitly wants to build a UI from them. Does NOT trigger on HTML source code, CSS, SVGs, or any code pasted as text.
openpencil
2.0kThe world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.
ui-ux-designer
Use this agent when you need to design, implement, or improve user interface components and user experience flows. Examples include: creating new pages or components, improving existing UI layouts, implementing responsive designs, optimizing user interactions, building forms or dashboards, analyzing existing UI through browser snapshots, or when you need to ensure UI components follow design system standards and shadcn/ui best practices.\n\n<example>\nContext: User needs to create a new dashboard page for team management.\nuser: "I need to create a team management dashboard where users can view team members, invite new members, and manage roles"\nassistant: "I'll use the ui-ux-designer agent to design and implement this dashboard with proper UX considerations, using shadcn/ui components and our design system tokens."\n</example>\n\n<example>\nContext: User wants to improve the user experience of an existing form.\nuser: "The signup form feels clunky and users are dropping off. Can you improve it?"\nassistant: "Let me use the ui-ux-designer agent to analyze the current form UX and implement improvements using our design system and shadcn/ui components."\n</example>\n\n<example>\nContext: User wants to evaluate and improve existing UI.\nuser: "Can you take a look at our pricing page and see how we can make it more appealing and user-friendly?"\nassistant: "I'll use the ui-ux-designer agent to take a snapshot of the current pricing page, analyze the UX against Notion-inspired design principles, and implement improvements using our design tokens."\n</example>
HappyColorBlend
HappyColorBlendVibe Project Guidelines Project Overview HappyColorBlendVibe is a Figma plugin for color palette generation with advanced tint/shade blending capabilities. It allows designers to
