# Fine-tuning with Laya Studio

> Train a decision model locally with Laya Studio and publish the result, with lineage recorded automatically.

Source: https://dev.systemonemodels.tech/docs/fine-tuning

Fine-tuning happens on your machine. The registry's job starts when you have
something worth publishing.

## Laya Studio

[**Laya Studio**](https://layastudio.biplovgautam.com.np/) is an open-source fine-tuning environment for
Laya decision models, built by [Biplov Gautam](https://layastudio.biplovgautam.com.np/).
It handles configuration, the training loop, evaluation and manifest generation,
and is designed to produce output this registry can accept directly.

Local-first is a deliberate choice. Decision models are small, most fine-tunes
fit on a laptop GPU and many run on CPU, and paying for cloud training before
you know the model works is the wrong order.

## The loop

**1. Pick a base model.** Browse [Laya models](https://dev.systemonemodels.tech/models?architecture=laya) and
choose a backbone. Note its full name — it becomes `base_model` in your manifest
and builds the lineage link.

**2. Prepare data.** For a choice model, examples are `(input, options, chosen)`
triples. A few thousand is often enough; you are adapting a decision boundary,
not teaching language.

**3. Train.** Laya Studio handles the loop. Hold out a test set — you need it for
the next step and it is the thing people skip.

**4. Evaluate accuracy *and* calibration.** Accuracy alone will mislead you. A
model that is 94% accurate and badly calibrated is worse in production than one
at 91% that knows when it is unsure, because every confidence threshold you set
from the first one is wrong.

**5. Publish.** Laya Studio emits a `systemone.yaml`. Check that
`base_model` names the backbone you started from, then
[create the repository](https://dev.systemonemodels.tech/new) and publish a version.

## Recording lineage

```yaml
architecture: laya
base_model: acme/laya-base
evaluation:
  decision_accuracy: 0.943
  calibration_error: 0.031
  median_latency_ms: 4.7
```

That one line is what makes the registry compound. Your fine-tune appears on the
base model's page, and anyone who finds the backbone can see what has been built
from it and how well it worked.

## Hosting the weights

Phase 1 stores no files. Push the weights to Hugging Face, GitHub Releases or any
URL, and reference them:

```yaml
artifacts:
  - kind: huggingface
    uri: https://huggingface.co/you/your-model/resolve/main/model.safetensors
    filename: model.safetensors
```

The registry counts downloads and redirects; the bytes never pass through it.
