Skip to main content
A custom model is a set of weights you own, stored on Veri and deployable from a single named entry. You build your library two ways: save a completed Veri training job (a metadata-only step; the checkpoint is already on Veri storage), or cache a Hugging Face model while deploying it. Your custom models live in the model library in the dashboard. From there you deploy a model or copy its ID for the API.
Standalone Hugging Face import and direct upload are not available yet. To bring a Hugging Face model into your library, deploy it with caching enabled (below); to serve one without caching, deploy it with source="huggingface" (see Deployments).

Save a training job as a model

When a training job completes, its checkpoint is already on Veri-managed storage. Save it to give it a name and make it reusable and deployable.
Saving is idempotent per job: saving the same completed job again returns the existing model rather than creating a duplicate. The saved model reuses the completed checkpoint already in Veri storage; it does not copy the weights.
If you retrain the same model repeatedly, register the job into a versioned lineage instead of saving flat entries: veri models register <job-id> --model acme-bot makes it acme-bot@v6 with production/staging aliases, audited promotion, and rollback. See Model versions.
Only completed jobs that produced a Hugging Face checkpoint can be saved. Jobs that are still running, failed, or ran a custom script (which produces arbitrary output rather than a standard checkpoint) cannot be saved as a model. You can also keep working with the raw checkpoint directly:
See Training for the full training flow.

Cache a Hugging Face model while deploying it

Deploying a Hugging Face repo can also save it to your library, so later deploys start from Veri storage instead of downloading from the Hugging Face hub:
The library entry appears immediately as importing and flips to ready when the serving machine finishes uploading the weights in the background. Caching is best-effort: a failed upload marks the entry failed (retry by deploying with caching again) and never affects the deployment that requested it. Once a cached copy is ready, every deploy of that repo with source="huggingface" uses it automatically — no flag needed. The created deployment shows the cached model in source_model_id, and the CLI prints “Using your cached copy”. Cached copies are private to your account.

Manage your library

Renaming changes only the library label. Removing a model from the library deletes only the registry entry: it never deletes the training checkpoint, and it does not interrupt a deployment that is already serving that checkpoint. A model with an active deployment cannot be removed until you stop the deployment. A model with a running Hugging Face export cannot be removed either (409, naming the export) until the export finishes or is cancelled.

Model states

Saving a completed training job produces a ready model directly; a cached Hugging Face model passes through importing first.

Size limits

A custom model must fit on a single GPU node, the same ceiling as a deployment. Pick a GPU large enough to hold the weights when you deploy.

Deploy a custom model

Once a model is ready, deploy it by ID with source="custom_model". Custom models always serve from Veri storage, so cold starts skip any external download step.
A model saved from a LoRA training job (one trained with lora_rank) with the default full artifact points at the merged weights Veri keeps next to the adapter, so it deploys like any other model. --artifact adapter saves the adapter alone, for multi-adapter fleets only (deploying it on its own returns a 400). A LoRA job trained before merged weights were kept has none: its full save still returns a 400 at deploy; see Serve it in the GRPO example for the Hugging Face route. The deployment records both the saved model and its source checkpoint, so you can always trace what a running endpoint is serving. Because the checkpoint location is captured when the deployment is created, later renaming or removing the model from your library does not affect a running deployment. See Deployments for the serving lifecycle and the OpenAI-compatible chat surface.

Getting started without a model

If your library is empty, you have not saved a trained model yet. Train a model, then save the resulting checkpoint with veri models save. To deploy an open-source model without training, deploy a Hugging Face repo directly from Deployments.

Where to go next

Deploy a model

Spin up a deployment and chat with it in ~10 minutes.

Train your own model

Train a checkpoint, then save it to your library.

Hosting & GPU sizing

Pick the right GPU for your model size.

CLI deployment commands

Manage deployments from the terminal.