Skip to main content

Flash — managed LoRA post-training (SFT/GRPO) for verifiers environments, driven by the `flash` CLI

Project description

Flash

Managed LoRA post-training service: SFT and GRPO on managed GPUs across multiple providers — RunPod Flash (serverless queue; RTX 4090/5090 classes) and Vast.ai (rented verified-datacenter instances; L40S / RTX Pro 4000 / A100 classes). The allocator picks the cheapest GPU class that fits the run across both providers.

Scope

  • flash train <cfg.toml> / control-plane POST /runs — submit a training job; one dedicated GPU per run, supervised server-side (stall watchdog, bounded auto-retry resuming from the last streamed checkpoint, endpoint GC).
  • flash deploy (scale-to-zero or always-on), flash chat — serving for trained adapters.
  • Verifiers-only environments. Every run names a Prime Intellect verifiers environment by its published Hub slug ([environment] id = "owner/name"). Scaffold a local env, publish it with flash env push, then reference it by id. The worker wraps it via flash/envs/adapter.py. There are no built-in task environments and no freesolo bridge. Single-turn environments are fully supported (SFT/GRPO/eval).

Layout

  • flash/catalog.py — curated model catalog (Qwen3 dense supported tier; Qwen3.5/3.6 experimental tier) + model_policy = "allow" VRAM-fit check + each model's thinking capability (opt-in reasoning mode thinking = true)
  • flash/schema.py, flash/spec.py — TOML → JobSpec
  • flash/runner.py — server-side run supervisor (durable job handle, retries, cost guard, endpoint GC)
  • flash/providers/ — RunPod Flash + Vast.ai provider subtrees (pricing, gpus, durable submit/poll, preflight) behind one base.Provider protocol, with a cross-provider allocator.py that picks the cheapest fitting class
  • flash/engine/ — the on-GPU worker (TRL + colocated vLLM rollouts) and the shared recipe; SFT targets and RL rewards route through the active environment (task-specific grading lives with its example, not in the engine)
  • flash/envs/ — environment machinery: registry and the adapter that wraps Prime Intellect / Hub verifiers environments onto the worker's interface
  • flash lab setup / flash env init — scaffold a starter local verifiers env and a ready-to-run config to start from
  • flash/serve/, flash/server/ — adapter serving and the FastAPI control plane (run operator-side via the separate flash-server command)
  • flash/mcp/ — stdio MCP bridge for coding agents
  • Dockerfile — the control-plane image (used by the repo docker-compose)
  • tests/ — pytest suite (CPU-only; offline-by-default, no GPU/network)

Local commands

cd flash
uv sync --extra server
uv run pytest                           # CPU tests (offline-by-default, no GPU/network)
uv run ruff check . && uv run ruff format .
uv run flash --help
uv run flash-server                      # control plane (operator-side, run once)

The control plane owns provider credentials: RUNPOD_API_KEY is always required (RunPod is the default substrate), VAST_API_KEY is opt-in (only checked when set), plus the shared HF_TOKEN. The artifact repo is per-run (the run TOML's [train] hf_repo), not an operator-wide env var. Clients authenticate with their freesolo API key (flash login).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freesolo_flash-0.2.9.tar.gz (606.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

freesolo_flash-0.2.9-py3-none-any.whl (280.7 kB view details)

Uploaded Python 3

File details

Details for the file freesolo_flash-0.2.9.tar.gz.

File metadata

  • Download URL: freesolo_flash-0.2.9.tar.gz
  • Upload date:
  • Size: 606.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for freesolo_flash-0.2.9.tar.gz
Algorithm Hash digest
SHA256 d083ced12a3f32c17e3925035982c6177ad089af275b91572882bdc18931ac3e
MD5 61959d0a01e0e9c29b6564368485e66a
BLAKE2b-256 127ff4637edd0c5f06af813a0529f674cf01aa8c41a7b1c9de6ac97cff2db30e

See more details on using hashes here.

File details

Details for the file freesolo_flash-0.2.9-py3-none-any.whl.

File metadata

  • Download URL: freesolo_flash-0.2.9-py3-none-any.whl
  • Upload date:
  • Size: 280.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for freesolo_flash-0.2.9-py3-none-any.whl
Algorithm Hash digest
SHA256 69ad9e05396bcd7231fce0bc7888de499c0e689beb4d9fef6f06db50e31c172f
MD5 656bc269d2d2a29b0b4eace4bfcea37f
BLAKE2b-256 d23d302b5397b87788a60cf2eec4572fad531c083e016248a0ec0155d95d275c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page