Fine-tune a model with LoRA or QLoRA

3 min read · updated

Fine-tuning on kvrun trains an adapter: a small set of weights learned on your data while the base model stays frozen. The GPU runs only until training finishes, then shuts itself down and writes the adapter to your storage.

Prepare the dataset first

Upload your training file to Storage before you start, as JSONL, one example per line. The picker in the wizard reads from the same place, so anything already in your workspace is available without re-uploading.

Step 1: configure the run

Open New fine-tune from the Training page. Pick the base model, the method, the dataset and the number of epochs.

Step 1 of the new fine-tune wizard, Configure. Basics hold a job name reading Training Job and a base model dropdown set to qwen3.5-9b. Under Method, LoRA is selected, described as 16-bit base weights, higher fidelity, needs more VRAM, beside QLoRA, 4-bit base weights, cheapest, fits large models on smaller GPUs. Under Dataset and schedule, a JSONL file of 131.1 KB is picked from storage with a Change button, epochs is set to 3, and a Where it runs section begins below.
Step 1 of 2: base model, method, data and epochs
MethodBase weightsUse it when
QLoRAQuantised to 4 bitsYou want the cheapest run, or a large model on a smaller GPU
LoRA16 bitsYou want the higher-fidelity result and can pay for the VRAM

Three epochs is a sensible starting point for most instruction datasets. More epochs cost proportionally more and, past a point, overfit.

Step 2: review the cost, then start

Before anything runs you are shown the GPU it needs, the VRAM that requires, where it will run, an estimated runtime and the cost that implies.

Step 2 of the fine-tune wizard, Review and start, tagged LORA. Specs read: base model Qwen slash Qwen3.5-9B, method LORA, GPU A6000 48GB times one, VRAM needed 26 GB, the dataset filename and size, 3 epochs, and Runs in: your account, Hyperstack. A panel gives a platform rate of 0.21 dollars an hour, an estimated runtime of about 18 minutes, an estimated cost of 0.06 dollars, and Hyperstack GPU-hours of about 0.15 dollars. A note says you are billed for actual runtime only, the GPU-hours themselves appear on your Hyperstack bill at about 0.15 dollars at their list rate, the instance shuts down automatically when training finishes, and the trained adapter is saved to your storage.
Step 2 of 2: runtime and cost, before you commit

When the job runs on a connected cloud account, as the run above does, the panel splits the two bills: kvrun charges the platform rate for the runtime, and the GPU-hours appear separately on your provider's invoice at their list rate. On the managed fleet there is one figure, because there is one bill.

The estimate is an estimate. You are billed for the runtime the job actually uses, which is why a job that finishes early costs less than the figure shown here.

Watch the run

The Training page lists every job in the workspace with its base model, method, GPU, status and what it cost. Jobs that fail or are cancelled stay in the list with what they had spent at the time; nothing keeps running after either.

The Training page listing four fine-tune jobs in a table of name, base model, method, GPU, status and cost, each with an Open link. One is cancelled at nothing, two are completed at 0.29 and 0.43 dollars, and one has failed at 0.20 dollars. Methods are tagged LORA or QLORA and the GPUs range from A10G 24GB to A6000 48GB. A New fine-tune button sits at the top right.
Every fine-tune, with what it cost

Collect the adapter

Open a finished job for its full record: the configuration it ran under, how long it took, what it cost, the final loss, the loss curve across logged steps, and the adapter archive itself.

A completed fine-tune's detail page, headed Qwen and tagged completed, LORA, Qwen slash Qwen3-4B. A green banner says training is complete, the instance was shut down and the adapter saved to storage. Specs give the base model, method LORA, GPU A100 40GB, 3 epochs, the dataset, a duration of 9 minutes, a cost of 0.29 dollars and a final loss of 0.8353. A training loss chart falls steeply from 4.321 at step 5 and flattens out by step 70. Below, a Trained model section lists the adapter archive written to team storage.
A finished run, its loss curve and the adapter

The adapter is written to your workspace storage and stays there. Download it if you want to run it elsewhere, or leave it and deploy it from here.

Deploy the result

A finished fine-tune becomes a choice in the new deployment wizard. The deployment serves the base model with your adapter loaded on top, and is labelled as fine-tuned on its detail page, with the base model named beside the served one, so nobody has to guess later which weights answered a request.

Every run also holds out a split, scores the model against it, and keeps the verdict with the weights, which is the evidence the EU AI Act asks for about how a model was evaluated.

Questions

What format should the dataset be in?
JSONL, one training example per line, uploaded to your workspace storage before you start.
Does the GPU keep running after training?
No. The instance shuts down the moment the job finishes, and the adapter is written to your storage first.
Can I fine-tune a model I already fine-tuned?
Train a fresh adapter against the same base model rather than stacking adapters. Keep both runs, so you can tell which one produced which deployment.
Is my training data used for anything else?
No. It stays in your workspace storage, encrypted, and is used by the job you point at it and nothing else.