Train RL policies on cloud GPUs
Pick an environment — gymnasium classic control, Atari, MuJoCo, LLM RLHF, or robotics sim — a baseline repo, and a GPU. Metrics stream live. When the reward curve flattens, deploy the policy as a scale-to-zero cog or serverless endpoint.
CLI
app api POST /api/rl/jobs '{
"envId": "cartpole-v1",
"algoId": "ppo",
"hardware": "gpu-rtx4090"
}'
app api GET /api/rl/jobs/<job-id> # poll metrics
app api POST /api/rl/jobs/<job-id>/deploy \
'{"target": "serverless"}' # policy endpointPer-second GPU billing from the shared credit balance; jobs scale to zero when training finishes.
1 · environment
Pick an environment
2 · algorithm repo
Pick a baseline
3 · gpu tier
Pick a GPU
Per-second billing with the platform margin included, the same catalog as Cog Studio and pricing.
live training metrics
Reward, loss, entropy, and throughput
Launch a run above to stream reward, loss, entropy, and throughput here, polled from /api/rl/jobs/{id}. Signed-out visitors get a simulated run.
open source
Starter repos
Every baseline here is an MIT-licensed repo. Each ships a single-file training loop, a cog.yaml, an app.nz policy server, and a serverless deploy manifest per docs/BUILDING_COGS.md.
appnz-rl-ppo-starter
Single-file PPO on gymnasium (classic control, Atari, MuJoCo) with cog.yaml, an app.nz policy server, and a serverless deploy manifest.
github.com/lee101/appnz-rl-ppo-starterappnz-rl-rlhf-lite
Minimal GRPO-style RLHF loop on a tiny LLM with programmable rewards, packaged for cog + serverless deploy on app.nz.
github.com/lee101/appnz-rl-rlhf-liteappnz-music-rl
Gymnasium-compatible piano composition environment, Q-learning trainer, R2 policy artifact, and Opus Cog inference.
github.com/lee101/app-site/tree/master/training/musicAny container that trains and then serves the cog HTTP contract can run here. Build it with hosted builds, register it on /cogs, and post metrics to the training API.
Train the policy, then serve it
Train on per-second billed GPUs, deploy the policy as a scale-to-zero endpoint, and call it over HTTP.