Quickstart
From account to first call in ten minutes
This guide walks you through the free-tier sample, the CLI, and your first kethra fit, eval and deploy. No machine learning background required.
Create a free account and open the atelier
Go to basisresearch.tech/signup and create a free account with your work email address. Once you confirm the address, the atelier opens at app.basisresearch.tech.
The atelier is the in-browser workspace. The left panel holds your history of fits and evals. The right panel is where you write your voice and standard, paste a prompt, and read the scored comparison.
Tailor a sample on the free tier
The free tier lets you run a sample fitting without uploading a full corpus. It is a quick way to see what the tailoring pipeline does before you commit any data.
- Open the New fitting panel in the atelier.
- In the Voice field, paste two or three sentences written in the voice your model should adopt. For example: "We write plainly, with precise terms and no filler. Every sentence earns its place."
- In the Standard field, write one or two rules. For example: "Never use the passive voice when the active is available. Avoid hollow intensifiers such as 'very'."
- In the Prompt field, type a request the model should answer.
- Select Tailor the model. The atelier runs a fast, sample-scale fitting and returns a scored side-by-side: the base response on the left and the tailored response on the right, with an eval delta shown for voice and standard adherence.
The delta is the percentage improvement over the base. A delta of +28 on voice means the tailored output scores 28 points higher on the held-out voice eval than the untailored base does.
Install the CLI and log in
The @kethra/cli package runs on Node.js 18 or later. Install it globally:
npm i -g @kethra/cliThen log in with your Kethra credentials. This stores an API key in ~/.kethra/credentials.json:
kethra loginThe CLI opens a browser page to complete authentication. Once done, you will see Logged in as you@yourcompany.com in the terminal.
Run your first kethra fit
The kethra fit command trains a model on your corpus and standard. For this quickstart, point it at a small directory of text files and a short voice.md standard:
kethra fit \
--data ./corpus \
--standard ./voice.md \
--base autoThe --base auto flag tells Kethra to choose the best-suited open-weight base for your task and data volume. You can specify a base explicitly once you know your requirements.
The CLI streams progress to the terminal. A typical sample fit completes in two to five minutes. At the end you will see a job ID and model name:
Fitting base=qwen2.5-7b examples=204 epochs=3
Epoch 1/3 loss=1.412
Epoch 2/3 loss=0.881
Epoch 3/3 loss=0.604
Fit complete job=fit_01j9kx3p model=house-v1Read the eval
Every fit produces an automatic eval against the standard. To view it:
kethra eval --job fit_01j9kx3pThe output shows scores for the base and tailored model, and the delta between them:
┌──────────────┬───────┬──────────┬───────┐
│ Metric │ Base │ Tailored │ Delta │
├──────────────┼───────┼──────────┼───────┤
│ Voice │ 0.41 │ 0.69 │ +28 │
│ Adherence │ 0.38 │ 0.71 │ +33 │
│ Accuracy │ 0.80 │ 0.82 │ +2 │
├──────────────┼───────┼──────────┼───────┤
│ Overall pass │ 32/50 │ 44/50 │ +12 │
└──────────────┴───────┴──────────┴───────┘The eval shows that tailoring improved voice and adherence substantially while keeping accuracy stable. When overall pass falls below your threshold, inspect the failed cases with kethra eval --inspect and iterate on the standard or corpus before deploying.
Deploy to a private endpoint
When you are satisfied with the eval, deploy the model to a private, OpenAI-compatible endpoint:
kethra deploy --private --name house-v1Deployment takes about thirty seconds. The CLI confirms the endpoint URL and the model name:
Deployed name=house-v1 endpoint=https://api.basisresearch.tech/v1Set your API key in the environment, then call the endpoint with any OpenAI-compatible client:
export KETHRA_API_KEY=kt_live_...import OpenAI from "openai";
const kethra = new OpenAI({
baseURL: "https://api.basisresearch.tech/v1",
apiKey: process.env.KETHRA_API_KEY,
});
const res = await kethra.chat.completions.create({
model: "house-v1",
messages: [{ role: "user", content: "Draft a renewal note." }],
});
console.log(res.choices[0].message.content);Next steps
- Your first fine-tune: prepare a real dataset in JSONL format, write a detailed standard, and build a proper eval suite with your own test cases.
- Evals: understand how eval suites are constructed, how to write good test cases, and how to read the delta across versions.
- Deployment: versioning, rollback, hosting on your own infrastructure, and exporting your weights at any time.
Ready to tailor your model?
Start free and tailor a sample in a minute, or book a fitting and we will build you a private model of your own.