Blog

Open source

Tuned Tensor Local: the whole loop, open source, on your machine

4 min read
Update: The standalone tt-local command is deprecated. Install @tuned-tensor/cli and use tt local. Existing projects still work. See the current local training guide.

License

Apache-2.0

Cloud required

None

Training

Your GPU

The whole loop on your machine

The local workflow runs fine-tuning jobs on a machine you control. It is part of the main tt CLI, which is free, Apache-2.0 licensed, and published on npm as @tuned-tensor/cli, with the source on GitHub.

It needs no hosted account, no Docker, and no managed database. Specs, datasets, model artifacts, progress, and reports stay on local disk.

01 · Spec

Read the behaviour spec from tunedtensor.json.

02 · Compile

Turn spec examples into a training dataset.

03 · Baseline

Evaluate the original Hugging Face base model.

04 · Fine-tune

Train locally with uv, Transformers, and PEFT.

05 · Evaluate

Score the tuned artifact on held-out examples.

06 · Report

Write a baseline-vs-tuned comparison to run-report.json.

Getting started

Install the CLI and create a local project:

npm install -g @tuned-tensor/cli
tt local init --name "Support Bot" --model Qwen/Qwen3.5-2B --profile spark

# Edit tunedtensor.json, then:
tt local doctor tunedtensor.json
tt local validate tunedtensor.json
tt local run tunedtensor.json

Local training needs Node 22+, uv, and an NVIDIA GPU. After the run, inspect the report and verify the model:

tt local runs report <run-id>
tt local models verify local-<run-id>
tt local serve local-<run-id> --spec tunedtensor.json

See the local training guide for the supported model, configuration, evaluation, and serving options.

Scoring without a cloud

Evaluation runs locally against the base model and the tuned artifact. Use exact match for text outputs or per-field scoring for JSON outputs.

{
  "evaluation": {
    "scoring": {
      "mode": "json_fields",
      "fields": ["triage", "priority", "should_process"]
    }
  }
}

json_fields reports per-field accuracy, valid-JSON rate, and schema match rate. For the structured-output tasks Tuned Tensor targets, that is usually the right mode: a run that gets the schema right but one field wrong scores very differently from one that stops emitting JSON.

Current support

The supported local path is text SFT of Qwen/Qwen3.5-2B with LoRA on CUDA. Other models and training methods are not currently supported.

Local or hosted?

Both read the same tunedtensor.json behaviour spec, so a spec written for one runs on the other. Use the hosted platform when you want managed GPUs, labeling, model lineage, and auto-tune. Use tt local when you have your own hardware and want every artifact on your own disk.

The main CLI code is on github.com/tunedtensor/tuned-tensor-cli under Apache-2.0. Issues and pull requests welcome.