Skip to main content

Core concepts

These pages use one term for each concept. This is what each term means and how they fit together.

project (text or embedding)
dataset: chats or training pairs, labelled with tags
training job: trains a base model on a frozen dataset version
attempts: each run of the job; the kept checkpoint becomes its model
hosted model: the name your code calls; usage is paid in US dollars

Project​

The workspace that holds your data, training jobs and hosted models. A project has one type, text or embedding, chosen when it is created and never changed. Only its owner can use it. A project is archived, never deleted: archiving keeps everything and can be undone. Its address in every path is {owner_slug}/{project_slug}; the slug is set once from the name. See Projects.

Base model​

A model from the ReOpenly catalog. It is what a training job fine-tunes, and you can call it directly, without a project: ReOpenly/Qwen3.5-9B for text, ReOpenly/Qwen3-Embedding-0.6B and ReOpenly/Qwen3-Embedding-4B for embeddings. GET /api/v1/base-models lists the catalog and its limits.

Dataset​

The training data of a project. A text project has one dataset, made of chats. An embedding project starts with a default dataset, can hold up to 20, and each is made of training pairs. See Embedding datasets.

Chat​

One training example in a text project: a conversation of messages with roles such as user and assistant. You add chats by hand, through the API or by import. See Chats.

Training pair​

One training example in an embedding project: an anchor (a query), a positive (a passage that answers it) and an optional negative (a passage that looks related but does not answer it).

Tag​

A label on chats or training pairs, used to choose what a run trains on. A text run selects chats by tag name (dataset_tags); an embedding run can narrow its dataset to tagged pairs (tag_ids).

Frozen dataset version​

The exact copy of the examples a run trained on. When a training job starts, ReOpenly copies the selected examples into a frozen record: editing or deleting your data afterwards does not change what the job trained on, and a retry trains on the same copy. GET .../training-jobs/{job_id}/dataset reads it.

Training job​

One fine-tune of a base model on a frozen dataset version. The app calls it a run. Each job has an id, which the API uses in paths such as .../training-jobs/{job_id}, and a number, counted from 1 in each project and shown in the app. Jobs are never deleted. See Training jobs.

Attempt​

One execution of a training job. A job starts with one attempt; a retry or a resume adds another. Each attempt has its own status and log.

Checkpoint​

A saved state of the model during training. A run that holds out examples for validation measures its loss on them at intervals and keeps the checkpoint with the lowest loss: the kept checkpoint becomes the job's model. That loss is measured during training and only chooses a checkpoint; it is not a measure of the hosted model's quality. When a model exists, the job reports model_available: true.

Hosted model​

A stable name in a project that points at a trained model. Its slug is the model value your code sends, and you can point it at a newer job later without changing that code. The API also calls a hosted model an alias: it is the same thing. See Hosted models.

Balance and rate​

You pay in US dollars from a prepaid balance. Training is charged per minute of measured training time only, and inference per token (input and output tokens at separate prices per million), at the prices that GET /api/v1/pricing/platform publishes; time in a queue and idle time are free. GET /api/v1/credits returns your balance. Fields whose names say credits, such as available_credits, hold US dollars: the names are kept for compatibility. See Pricing and billing.

Estimate and cost ceiling​

Before a run starts, ReOpenly returns two numbers. The estimate is what the run is expected to take and cost. To start, your balance must be above zero and cover the estimate plus a safety margin. The cost ceiling is the price of the run's time limit, the most it may use; your balance does not need to cover it, because a run pauses before your balance runs out. You pay only for the training time used. When the estimate has no number (null), there is no forecast; it does not mean the run is free. An embedding run without an estimate needs its cost ceiling to start.

Your data and your model​

Is my data used to train other models? No. ReOpenly does not use your datasets, prompts or responses to train its own models, and no other customer can reach them. If you turn on auto-save, the saved inference goes into your project, for your own fine-tunes.

Is the trained model mine? Yes. When a run finishes, you can download its adapter and keep it or run it elsewhere. Sharing a model with another account does not share the data it was trained on.

What does ReOpenly keep, and for how long? Your account, datasets, models and billing records are kept for as long as your account exists. Archiving a project hides it; it does not delete it. Search feedback is kept until you ask for it to be erased. To delete your account and its data, write to reopenly@gmail.com: deletion is completed within 30 working days, deleted data leaves our live systems at once, and copies in routine backups are gone when those backups expire. Billing records are kept for as long as tax law requires. The Privacy Policy is the full statement.