Fuuga is the complete toolchain for making a language model, or retraining an existing one — preparing data, training, fine-tuning, shrinking, testing and running it — delivered on .NET, the platform your business systems already run on, for the engineers you already employ. No separate research stack. GPU or CPU. Your data never leaves your hardware.
Enterprises rent their AI and cannot maintain the AI they build. The regulated back-offices of the world run on .NET, and the AI path Microsoft offers them is rented: Copilot and Azure OpenAI, running OpenAI and Anthropic models in someone else's cloud.
Rented models, rising prices
A hosted AI subscription sends customer records, contracts and code to a third party, bills every request, and can change or retire the model at any time. Today's per-token prices are subsidised by investor capital, and they will rise. Compliance teams say no to the most valuable uses.
In-house models today are a specialist's side project
A company's own models are usually built by a data scientist in Python research tools its engineers do not use. They ship as a one-off; when that person leaves, nobody can maintain them.
Regulation asks who owns the model
The EU AI Act, DORA and data-residency rules ask for provenance, auditability and control over the model. A model you trained on data you can trace is the simplest answer.
> the-idea
An open model already knows most of what a hosted model knows. Retrained on your own work, it goes further than the hosted model in the domain that matters to you.
Ahead where your business isRetrained on your own work and grounded in all your documents, searched in-house, an open model rises above the hosted model across your domain. A hosted model handed your documents narrows the gap, but only for documents that may leave your network; classified and confidential ones may not. Fine-tuning costs a little general ability just outside the domain; we keep it small and measure it against the base model before release.
Skills and facts
Retraining teaches how your business works: your own terms, code conventions, message formats and decisions, so the model speaks your domain language by default rather than the industry average. Facts that change every week, such as fee tables and contracts, are looked up in your own documents at the moment of the question, in-house, including the ones that may never leave.
Measured both ways
Every pilot measures the gain and the loss on your own held-out tasks, before and after retraining, so you know what improved and what did not.
More than accuracy
Even where the curves are level, an in-house model keeps customer data and classified documents inside your network, costs the same at any volume, runs offline, and cannot be changed or retired by a vendor.
An illustration, not a benchmark: each pilot measures the curves on your own tasks.
> where-it-pays-first
Typed decisions are the part of AI a business can actually measure. Nothing here generates text: Fuuga scores a fixed set of options in one pass and returns a calibrated probability for each, so the answer can be logged, audited, priced and trusted.
The data you have
Outcomes, not a corpus
Few companies own a training corpus, and building one is a project nobody funds. Every company owns outcomes: which team took the case, whether the claim was approved, whether the transaction turned out to be fraud. Those are labels, produced by running the business, and a decision engine learns from them directly.
The number you get
An answer to "is it better?"
Nobody can say whether a fine-tuned chat model beats the one it replaced. A typed decision has ground truth, so it has arithmetic: accuracy, log loss, Brier score and calibration error on held-out cases — right so often, and right about how sure it is.
The line it moves
Act, or escalate
Above the confidence threshold, the software acts; below it, the case goes to a person. The share handled without a human is the return, and it is measured rather than asserted — which is also what lets a regulated buyer approve it at all.
> public-showcase
Two open models taken down the common path on one consumer GPU: proof that the pipeline works end to end, with every result measured against the model before retraining. The decision model is also measured against a hosted, closed one on the same cases. Real work starts from larger donors such as Gemma and Phi, and each pilot measures the gain on your own data. The retrained text model is available for a live demo.
Decisions
59% → 90% accuracy
Laya, an open decision model, imported into Fuuga and retrained on 4,000 labelled rows of a public emotion dataset in 6.5 minutes: accuracy on 2,000 unseen rows rose from 58.7% as published to 89.9%. TypeSafe's Jev, a hosted, closed decision model, scored 58.5% on the same questions; the retrained Laya is right on 684 of the 741 cases the two decide differently (paired test, p < 0.0001).
Acts on its own
66% → 94% right
The model decides without a person only when it is at least 90% sure. As published, Laya decided 68% of cases alone and was right on 66% of those. Retrained, it decides 92% of cases alone and is right on 94% of those.
General ability
Nothing fell
A small donor, Qwen3-1.7B, retrained with LoRA on 80 MB of private text in 2 h 18 min on one 12 GB consumer GPU (RTX 4070). None of six public benchmarks fell: MMLU, ARC, HellaSwag, WinoGrande and PIQA held or rose within noise, and TruthfulQA rose eight points.
Public datasets and benchmarks, so the decision runs can be repeated as published. Jev was asked through its API with the same question and option names as Laya; its documentation recommends a description per option, which may raise its score. The full record, result files and scripts are in the Fuuga repository.
> the-pipeline
Start from an open model. Make it yours. Keep it in-house. One recipe file drives each workflow: scaffold it, edit a few paths, run.
[01]
Ingest
Documents, Parquet and text become a hashed, traceable corpus. Every checkpoint records which sources trained it.
[02]
Transfer
Donor weights from Llama 3, Phi, Qwen, Mistral, Gemma, DeepSeek, GLM and Kimi, mapped architecture-aware — or pre-train a small model from scratch.
[03]
Fine-tune
LoRA and QLoRA on consumer GPUs, DPO for preferences, GRPO reinforcement learning with verifiable rewards.
[04]
Compress
Distil, merge, prune and quantise to a bit budget; export GGUF for llama.cpp and Ollama, ONNX, or HuggingFace safetensors.
[05]
Serve
OpenAI- and Anthropic-compatible APIs, both mounted by default, with continuous batching, guardrails, tool calling, MCP and A2A — on your own hardware.
Weight transfer from nine donor families, distillation, N-ary merging, pruning, NF4 and INT8 quantisation, bit-exact export round-trips.
Evaluation
MMLU, HellaSwag, ARC, GSM8K, MATH-500 and HumanEval built in, a typed judge arena that compares old against new on your own work, plus drift detection and a quality gate that reports regressions plainly.
Serving and agents
Streaming, function calling, structured outputs, bearer auth, guardrails, local minion delegation with sandboxed tools and skills.
Image and video
Stable Diffusion 1.5 implemented from scratch in F#, text-to-video and captioning, exposed as MCP tools.
Metered hosting
Run your own model as a paid service: per-token pricing per model, a prepaid credit ledger per API key, and a price list in the format OpenRouter uses.
> how-we-work-with-you
The library is public domain by choice: source is the cheap part now. Adoption is free, every line can be audited, and what organisations pay for is the part that does not copy — reliability, the evidence behind a model's behaviour, and somebody answerable when it is wrong.
Engagement
Decision engagements
Fixed scope on outcomes you already record, ending with a calibrated decision engine in production and the recipe that produced it.
Managed
We run it for you
We operate the engine inside your environment: retraining on new outcomes, drift monitoring, the evidence your supervisor asks for, and somebody on call. Your data and weights never leave; you can take it in-house at any time.
Continuity
Supported builds for your team
Signed builds, long-term support branches, security advisories, an SLA and the provenance record — and when your people change, we bring the next ones up to speed on your own models. The capability outlives the team that built it.
Partner
Enablement and certification
For consultancies implementing Fuuga for their own clients: training, certification and an escalation path to the people who wrote it.
What you buy
The work that puts a calibrated model into production, and then keeping it there: we run it for you inside your own environment, or we support the team of yours that runs it — supported releases, the evidence behind how the model behaves, and people who bring your next engineers up to speed on it.
Who buys it
Regulated organisations running on-premises .NET estates — air-gapped, sovereignty-bound, or needing evidence rather than a vendor statement — and the consultancies that implement for them. Vendors shipping on-premises .NET products are the later door, once the stack is proven inside their customers' networks.
How it starts
A fixed-scope pilot on outcomes you already record, ending with a calibrated decision engine in production and the recipe that produced it — then we run it, or your team does with our support.
What stays yours
The library stays public domain: no licence key, no phone-home, no obligation to buy anything. Your data and your weights stay on your hardware, and we never need a copy of either.
> already-on-a-hosted-api
An existing AI strategy is not replaced. It gains an in-house option for the parts compliance blocks, the bills that keep growing, and the models a vendor may retire. Nothing is rewritten: coexistence first, then migration by evidence. Fuuga speaks the OpenAI and the Anthropic interface, and the weights leave again as GGUF, safetensors or ONNX — the model runs anywhere, including without us.
[01]
Connect, do not rewrite
Fuuga speaks both the OpenAI and the Anthropic interface, and serves them together by default. An application built on either is pointed at a new address; the code that calls the model stays as it is.
[02]
Run both, route by rule
Fuuga's cost-aware router sends sensitive or routine requests to the in-house model and the rest to the existing subscription, within a budget.
[03]
Learn from the incumbent
Endpoint distillation collects the hosted model's answers to your own prompts and trains your model on them; a typed judge compares the two on your own work, both ways round, on held-out data.
[04]
Switch when the numbers say so
When the gate passes, the workload moves and the subscription shrinks. The next workload repeats the loop, faster.
for-customers-and-partners
Start with a pilot on outcomes you already record.
Built by the maintainer of SQLProvider and LINQKit, with twenty-five years of building software, and funded by our own client work. Ask for a pilot, a code walkthrough, or a conversation about running a model for you.