
Skill
together-dedicated-model-inference
deploy and operate Together AI models
Description
Deploy and operate models on dedicated GPUs with Together AI's Dedicated Model Inference (DMI, the v2 dedicated endpoints API): beta endpoints, deployments, deployment profiles and hardware configs, autoscaling, traffic splitting, A/B tests, shadow experiments, Prometheus metrics, and custom model or LoRA adapter uploads. Reach for it whenever the user mentions together beta endpoints or tg beta commands, client.beta.endpoints, DMI resources like ep_/dep_/cr_/ml_ IDs, or wants production model serving with traffic management on Together AI. This is the current dedicated-hosting API and also covers migrating off the retired legacy v1 endpoints API (non-beta client.endpoints / together endpoints), whose create and restart now return HTTP 403.
SKILL.md
Together Dedicated Model Inference
Overview
Dedicated model inference (DMI) serves a model on reserved single-tenant GPUs. It bills per minute per running replica (by hardware, not by token), has no hard rate limits, and uses the same inference API as serverless models.
The resource model has six parts: Project → Model → Config → Endpoint → Deployment → Replica.
- Endpoint — stable inference name; routes traffic across its deployments by weight.
- Deployment — binds one model + one config to an endpoint with an autoscaling policy; runs the replicas.
- Config — immutable published revision describing how the model runs (engine, GPU type and count, optimization profile). The model determines the available configs.
- Replica — one model instance on its own dedicated hardware.
Inference goes to https://api-inference.together.ai/v1 with the endpoint string
(<project_slug>/<endpoint_name>) as the model parameter. Management goes through the
Together CLI (tg beta ... — install with uv tool install "together[cli]"; tg and
together are interchangeable), the client.beta.* SDK namespaces, or the /v2 REST API at
https://api.together.ai.
The legacy v1 dedicated endpoints API is retired. The old flow (
client.endpoints.createwithmodel=+hardware=, hardware IDs like1x_nvidia_h100_80gb_sxm, thetogether endpointsCLI withoutbeta) no longer accepts new endpoints:POST /v1/endpoints,client.endpoints.create(...), andtg endpoints createreturnendpoints_v1_create_access_disabled(HTTP 403), and a stopped/paused v1 endpoint can't be restarted. Already-running v1 endpoints keep serving until further notice; everything new — and any redeploy of a stopped v1 endpoint — uses the v2 flow this skill describes.
When This Skill Wins
- Deploying a model (public, fine-tuned, or uploaded) on dedicated GPUs via the v2 API
- Anything involving
tg beta endpoints/tg beta models(a.k.a.together beta ...) CLI commands - Anything involving
client.beta.endpoints/client.beta.modelsSDK namespaces - Traffic management: splits, A/B tests, shadow experiments
- Autoscaling, scale-to-zero, deployment lifecycle, monitoring (dashboards, events, Prometheus scrape)
- Uploading custom model weights or LoRA adapters for dedicated serving
Hand Off To Another Skill
- Use
together-chat-completionsfor serverless inference and request-shaping questions (the request shape is identical once the endpoint is up). - Use
together-fine-tuningfor training the model you'll deploy here. - Use
together-dedicated-containersfor custom Docker runtimes (Sprocket/Jig). - Use
together-gpu-clustersfor raw multi-node compute.
Quick Routing
- Deploy a model end to end
- Start with scripts/deploy_model.py
- Read references/cli-reference.md for the one-command CLI path
- Endpoint/deployment lifecycle from the SDK or API (create, poll, scale, stop, delete, list filters)
- Split traffic, A/B tests, shadow experiments
- Choose a model or config, pricing, upload custom weights or LoRA adapters
- Read references/models-and-configs.md
- Start with scripts/upload_custom_model.py
- Autoscaling and monitoring
- Read references/api-reference.md (Autoscaling, Monitoring sections)
Workflow
- Pick a model:
tg beta models public(or upload custom weights first). - Pick a config/precision: read the model's
deploymentProfiles(they carryquantizationlikeBF16/FP8,gpuCount, and the exactmodel+configresource names).tg beta models configs <id>is often empty for catalog architectures — see models-and-configs.md.deployauto-picks only when the model has a single profile. - Deploy:
tg beta endpoints deploy <model> --endpoint <name>— creates the endpoint, attaches a deployment, and routes 100% of traffic in one step. For a public catalog model with one profile, pass its name (Qwen/Qwen2.5-7B-Instruct); the catalogml_/arch_ID is owned by a platform project and won't resolve as adeploy/abpositional in your project. If the model has multiple profiles (e.g. BF16 + FP8), a bare-name deploy errors — pass the chosen profile's full resolvedmodelresource path as the positional plus its--config(see models-and-configs.md). - Poll until
status.stateisDEPLOYMENT_STATE_READY. The CLIgetnow accepts an endpoint or deployment ID:tg beta endpoints get dep_... --json | jq -r '.status.state'is the scripted polling loop; the SDK equivalent isclient.beta.endpoints.deployments.retrieve(dep_id, project_id=..., endpoint_id=...). First-time provisioning commonly takes up to ~20 minutes. - Send requests to
https://api-inference.together.ai/v1with the endpoint string asmodel. - Scale, reconfigure, or set traffic weights with
tg beta endpoints update <dep_id>(--min/--max-replicas,--scaling-metric/--scaling-target,--traffic-weight); split traffic or experiment as needed. - Clean up:
tg beta endpoints update <dep_id> --min-replicas 0 --max-replicas 0to stop billing, ortg beta endpoints rm <ep_id> --forceto tear everything down (it scales deployments to zero itself).
High-Signal Rules
- Billing runs while replicas run, and there is no automatic idle shutdown. Per minute,
per replica, by hardware. The old
inactive_timeoutauto-stop was removed — always scale to zero (min_replicas: 0, max_replicas: 0) or delete when the user is done; a forgotten deployment bills until someone stops it. - A
READYdeployment serves nothing until it's in the endpoint's traffic split. The CLI'sdeployroutes automatically; otherwise set a weight withtg beta endpoints update <dep_id> --traffic-weight N(upserts one entry) or replace the split via SDKendpoints.update(traffic_split=[...]). Arouting_error/503 on a READY deployment almost always means a missing/zero weight. - Management IDs vs endpoint string. Management calls take IDs (
ep_,dep_,cr_,ml_,abx_,exp_); inference takes the endpoint string<project_slug>/<endpoint_name>. - The SDK requires
project_idon every method — derive it withclient.whoami().project_id. The SDK also takes models/configs as resource names (projects/{p}/models/{ml},projects/{p}/configs/{cr}), while the CLI takes bare IDs. Use the config's ownprojectId(often a platform project) when building its resource name. - Traffic weights are relative capacity, not percentages. Share = weight × ready replicas. Prefer shifting traffic by changing replica counts; keep weights stable.
- Scale-to-zero is all-or-nothing:
min_replicas: 0with a positivemax_replicasis rejected.0/0stops; on a running deployment the floor is otherwise1. - Autoscaling metric names are their own catalog (
gpu_utilization,inflight_requests,ttft, ...) — raw Prometheus series names are rejected in scaling policies. Charts live in the dashboard (https://api.together.ai/endpoints); raw series can be scraped from the org-scoped Prometheus-compatible metrics endpoint (beta — see api-reference.md). - Deletion order matters: stop the deployment (wait for
STOPPED), delete it, then delete the endpoint. The CLI'srmsmart-deletes by ID prefix and auto-detaches from the split. Deleting still requires a stopped deployment, butrmnow scales down for you:rm dep_...on a running deployment sets0/0and asks you to retry onceSTOPPED, andrm ep_... --forcescales the endpoint's deployments to zero itself as part of teardown. - To see which deployment/replica served a request, read the inference response headers.
The response body's
modelfield only echoes the endpoint string — identical for every deployment. The routing headers distinguish them:x-clusteris the per-deployment cluster ID andworker_url(inside thex-i-router-log-eventheader) is the replica pod. This is the only way to verify a split or A/B empirically. See traffic-routing.md (Observing routing). - To replace a deployment on live traffic, create the new deployment on the same
endpoint, wait for
READY, then shift traffic gradually with--traffic-weight(and replica counts), watching the dashboard between steps. Take the old deployment out with--traffic-weight 0, then scale it down and delete it. - The
client.beta.*SDK surface andtogether betaCLI are beta: pin a current SDK release (uv pip install --upgrade together) and expect the surface to evolve.
Resource Map
- SDK/API lifecycle reference: references/api-reference.md
- CLI reference: references/cli-reference.md
- Traffic routing guide: references/traffic-routing.md
- Models, configs, pricing, uploads: references/models-and-configs.md
- Deploy workflow script: scripts/deploy_model.py
- Custom model upload script: scripts/upload_custom_model.py
Official Docs
More skills from the skills repository
View all 14 skillstogether-audio
process audio with Together AI
Jul 26AudioSpeechText-to-SpeechTranscriptiontogether-batch-inference
run asynchronous batch inference jobs
Jul 17AutomationLLMPerformancetogether-chat-completions
generate text with Together AI
Jul 26AIAPI DevelopmentLLMtogether-dedicated-containers
deploy custom inference containers on Together AI
Jul 26AI InfrastructureDeploymentDockerMachine Learningtogether-embeddings
generate embeddings and build RAG pipelines
Jul 26AILLMRAGSearchtogether-evaluations
evaluate LLM outputs with Together AI
Jul 26BenchmarkingEvalsLLM
More from Together AI
View publisherblog-post
write structured blog posts
together-cookbook
Jul 17Content CreationMarketingSEOWritingsocial-media
create social media content
together-cookbook
Jul 17Content CreationMarketingSocial MediaWritingtogether-fine-tuning
fine-tune and adapt models on Together AI
skills
Jul 26AILLMMachine Learningtogether-gpu-clusters
orchestrate GPU clusters on Together AI
skills
Jul 26AI InfrastructureCloudKubernetesMachine Learningtogether-images
generate and edit images with Together AI
skills
Jul 17CreativeDesignImage GenerationMultimodal