Turn your data into a state-of-the-art AI model

Penstock lets you train your own LLM or generative model for a fraction of the usual cost. No infrastructure setup and no compute sourcing; the pipeline does it automatically.

How Penstock turns documents into a trained model An isometric diagram: stacks of your documents flow as tokenised data into a neural network, which produces a trained model artefact. SOURCE CORPUS 0247 12BE 9F1E 2FA2 TOKENISED STREAM TRANSFORMER CLUSTER · 128 GPU L YOUR MODEL
Ingest PDF · HTML · JSONL · Parquet Train LoRA · full fine-tune · continued pre-train Ship hosted endpoint or GGUF weights

Four steps between a folder and a model that answers.

The pipeline handles scheduling, checkpointing and failure recovery. You handle the data and the eval.

01 / INGEST

Point it at your data

Upload a folder or connect a bucket. Penstock parses, deduplicates and tokenises, then shows you what it threw away and why.

02 / CONFIGURE

Pick a base and a budget

Choose an open base model and a ceiling in dollars or hours. The planner returns the largest run that fits, before you commit.

03 / TRAIN

The cluster schedules itself

Capacity is bid for across regions and preemptions are resumed from the last checkpoint. You watch loss curves, not a queue.

04 / SHIP

Evaluate, then serve

Run your eval set against every checkpoint, promote the one that wins, and serve it from a hosted endpoint or export the weights.

Bases that are actually yours to keep.

Every base is open-weight. Train it, export it, run it on your own hardware. No licence that expires when the invoice does.

PS-BASE-08B

Penstock 8B

The default. Fast to fine-tune, cheap to serve, and strong enough for retrieval, classification and structured extraction.

Context
128K
Tune time
~4h
From
$180 / run
PS-BASE-34B

Penstock 34B

For reasoning-heavy work and long documents. Sits in the range where a fine-tune usually beats a bigger general model.

Context
256K
Tune time
~14h
From
$740 / run
PS-DIFF-XL

Diffusion XL

Image generation on your own catalogue. Trains on as few as 800 labelled assets and keeps a consistent house style.

Res
1024²
Tune time
~6h
From
$310 / run
PS-EMB-01

Embed 1B

A small embedding model tuned on your vocabulary. Usually the cheapest way to make retrieval stop returning nonsense.

Dims
1536
Tune time
~50m
From
$40 / run
PS-ASR-M

Speech M

Transcription tuned to your domain vocabulary and accents. Handles the jargon that generic models spell three different ways.

Langs
42
Tune time
~3h
From
$120 / run
PS-CUSTOM

Bring your own

Any open-weight checkpoint from the usual hubs. If it loads in transformers, the scheduler will pick it up.

Format
Safetensors
Tune time
Varies
From
Metered

One command, then go home.

The CLI mirrors the API exactly. Everything the dashboard can do is a flag, and every run is reproducible from its manifest.

zsh — penstock
# tokenise a folder and start a run
$ zf train ./handbook \
    --base penstock-8b --method lora \
    --budget 200usd --eval ./evals/support.jsonl

   parsed      12,408 docs · 41.2M tokens · 316 dropped
   planned     3 epochs on 16×H100 · est. 3h52m · $184
   scheduled   run_9f2ac1 · eu-west · spot

  epoch 1/3  ████████████████████  loss 1.94 → 1.12
  epoch 2/3  ████████████████████  loss 1.12 → 0.86
  epoch 3/3  ██████████████·······  loss 0.86 → 0.71

   checkpoint  zf://models/handbook-8b@3
# score every checkpoint against your eval set
$ zf eval handbook-8b --set ./evals/support.jsonl --all

  ckpt    exact   helpful   refusal   latency
  ──────────────────────────────────────────
  @1      0.612   0.704     0.031     412ms
  @2      0.688   0.771     0.024     409ms
  @3      0.741   0.802     0.019     411ms  ← best

   promoted    handbook-8b@3 → production
# serve it, or export the weights and self-host
$ zf serve handbook-8b --replicas 2 --scale-to-zero

   endpoint    https://api.penstock.dev/v1/handbook-8b
   cold start  1.8s · $0.42/hr while warm

$ zf export handbook-8b --format gguf --quant q5_k_m

   written     handbook-8b.q5_k_m.gguf · 5.4 GB

You pay for the run, not the cluster.

Compute is billed per GPU-hour at the rate the scheduler actually won it for. No reserved capacity, no minimum, no seat licence.

Sandbox $0 / month

Enough to prove the idea on a small corpus before anyone signs anything.

  • $40 of compute credit
  • Models up to 8B
  • Community support
Start free
Flow $1.90 / GPU-hour

Metered training on shared capacity. The plan almost everyone runs on.

  • Every base, every method
  • Spot recovery and checkpointing
  • Hosted endpoints, scale to zero
  • Weight export, always
Start training
Reserved Custom

Dedicated capacity in your region, with a contract that names the hardware.

  • Guaranteed GPU pool
  • VPC peering, data residency
  • Named research engineer
Talk to us

Your data is already the differentiator.

Stop renting someone else's general model. Train the one that knows your domain, and keep the weights.