Skip to content

Polaris

Kyle Curtis
Kyle Curtis
Founder

Polaris is a language model I tuned to talk like a business advisor. I could not find a training set I liked, so I built one: 40,000 practice questions and answers made from real business talks.

A training service tuned the model on my data. I then ran it on a rented GPU behind my own private API. I never ran formal tests on it, so I make no claims about how good it is. The point was to own every step.

The tune

A LoRA fine-tune (r=8, α=16, targeting attention, MLP, and mixture-of-experts projections across all 24 layers) of OpenAI's open-weights gpt-oss-20b: one epoch over 41,353 sequences and 8.74M tokens of Harmony-format instruction data, run on a managed fine-tuning service, then merged to bf16 on an A100 and served with vLLM on an H100 behind an OpenAI-compatible endpoint with GPU memory snapshots and scale-to-zero.

The data factory

The part that was actually hard is the data factory. 41,667 synthetic reasoning examples were generated from 1,712 business transcripts (6.7 million words) through a structured pipeline: a checksummed SQLite manifest, atomic lease-based work claiming so parallel generators never collide, word-budgeted question targets, and schema-enforced structured output with retry. The final dataset carries 17 exact duplicates out of 41,667.

Naming and serving

Even the name got engineering attention. A ladder like A1, B1, C1 across model sizes implies a quality ordering that does not exist between different classes of model, so genuinely different models get genuinely different names, and the canonical id carries a date stamp so lineage stays unambiguous.

Serving got a real architecture investigation: whether LoRA adapters can be served unmerged, and what per-second GPU pricing does to each option. The answer that shipped was merging the adapter into bf16 weights and serving with vLLM behind an OpenAI-compatible endpoint, with GPU memory snapshots, sleep and wake, and scale-to-zero so the model costs nothing while nobody is talking to it.

The honest part

No formal evals were run and it makes no quality claims. It exists because running the entire loop, from data through tuning to serving, was the point.

Questions about this system, or the problem it could solve for you?

Discuss your project