Model sources
To name, store, and reuse a trained checkpoint as a deployable model, see Custom models.
A
huggingface deployment can also cache the model in your library (cache: true), and it automatically serves from a cached copy when you have one — faster starts, no hub download.
Deployment parameters
You set these at create time, whether from the SDK (client.deployments.create(...)), the CLI (veri deployments create), or a kind = "deploy" config.
min_replicas, max_replicas, concurrency_target, scale_to_zero_window_seconds, and idle_delete_after_days can also be changed later on a live deployment — see Scaling. Model, GPU, and provider are immutable: changing those means a new deployment.
At call time, chat also accepts a session key for cache-warm routing across replicas.
The deployment lifecycle
Deployments consume GPU credit only while replicas are running — billing is metered per replica, from each GPU box’s launch (warmup included) to its termination.scaled_to_zero charges nothing. Once stopped, billing stops; the deployment row stays for history.
Calling a deployment
Once a deployment isserving, it accepts OpenAI-shaped requests at https://api.veri.studio/v1/deployments/{dep.id}/chat/completions. Three equivalent ways to call:
base_url at https://api.veri.studio/v1/deployments/{id} (the OpenAI SDK appends /chat/completions for you).
The chat surface is a passthrough to vLLM: streaming (
stream=true, real SSE) works, and request parameters beyond temperature / max_tokens (top_p, stop, seed, response_format, tools, …) are forwarded to the engine untouched — vLLM is the schema authority. See OpenAI compatibility for details and caveats (tool calling needs vLLM tool parsing enabled via vllm_extra_args).Sizing the GPU
Pick a GPU large enough to hold the weights with headroom. Some rough starting points:
Serving usually needs less GPU than training the same model. A 7B you trained on 8×A100 typically serves on 1×A100.
Serving newer architectures
Deployments run a platform-managed vLLM version by default. A model architecture released after that version fails to start (vllm_failed_to_start) because vLLM doesn’t recognize it yet.
To serve one, pin the deployment to a newer official vLLM image:
- Only official upstream images are accepted:
vllm/vllm-openai:<tag>(NVIDIA) orvllm/vllm-openai-rocm:<tag>(AMD). Anything else is rejected at create. - The image runs via Docker on the deployment’s box, on every provider, and is used exactly as written: the platform never rewrites or substitutes it.
- The image is pulled from Docker Hub when the box boots. This pull can be too slow or rate limited to provision reliably, and a deployment that hits the provisioning timeout fails. Explicit images are supported as literal overrides; the supported route for a newer architecture is the platform’s next validated vLLM version.
- Without
vllm_image, the deployment runs the platform-managed vLLM version for its provider, which never pulls at boot. engine: vllmonly.- The image is set at create and immutable, like model and GPU.
A
vllm_image deployment keeps its Hugging Face download inside the serving container, so it can’t be combined with cache: true model-library uploads — the cache upload is skipped.Observability
Every deployment records request, token, latency, error, cost, and engine-health telemetry. The Deployment observability guide includes an end-to-end smoke test plus dashboard, SDK, REST, and MCP workflows. Lifetime counters and recent requests are available directly from the SDK:trace_bodies: true additionally capture full
request/response bodies as traces,
browsable from the dashboard, CLI, and API.
Billing
Running deployments consume GPU credit until you stop them (or, withmin_replicas: 0, until they park themselves). See Billing for states and cadence.
Where to go next
Quickstart: deploy a model
Spin up + chat + stop in ~10 minutes.
Train your own model
Then deploy it from a
training_job source.Monitor your deployment
Request metrics, GPU telemetry, and logs.
CLI deployment commands
veri deployments create / chat / stop.
