Prerequisites
- A completed fine-tuning job. See the quickstart for the full lifecycle.
- The job’s Model Object ID (
model_object_id, anml_...value) — the model-registry ID of the trained weights and the identifier you deploy. It’s available once the job status iscompleted, from thetg fine-tuning retrieveoutput.
Deploy on a dedicated endpoint
Together AI serves fine-tuned models through dedicated model inference (DMI). A completed fine-tuning job is already a private model in your project, so you deploy it by its Model Object ID with no separate upload step. Deployment and lifecycle operations use thetg beta CLI.
The dedicated model inference commands require Together CLI version
2.24.0 or later. Install or upgrade with uv tool install "together[cli]" (or uv tool upgrade "together[cli]"), and check your version with tg --version.- CLI / SDK
- UI
The CLI’s The SDK has no single-call equivalent, so it runs the same steps individually: create the endpoint, bind the model and a config to a deployment, then route traffic to it. Reference the fine-tune by its Model Object ID (Poll until the deployment reaches From the SDK, retrieve the deployment and read Once the deployment is When you’re done, delete the endpoint and its deployment to stop billing. The CLI’s The SDK has no smart-delete, so stop billing by scaling the deployment to zero, then delete the resources once it reaches To pause billing without deleting anything (for example, if you plan to use the endpoint again later), scale the deployment to zero and stop there. See Delete resources for the full teardown order.
deploy command creates the endpoint, attaches a deployment, and routes all traffic to it in one step. Pass the fine-tune’s Model Object ID (ml_...) — not the x_model_output_name, which isn’t a deployable identifier in dedicated model inference:CLI
ml_..., the job’s model_object_id):DEPLOYMENT_STATE_READY:CLI
status.state:READY, the endpoint serves at its endpoint string (your-project-slug/my-finetuned-endpoint, returned as endpoint.name). Pass it as the model parameter and point the base URL at https://api-inference.together.ai/v1:rm --force removes both in one step:CLI
DEPLOYMENT_STATE_STOPPED:If
deploy reports that the model has more than one deployment profile, re-run it with --config <cr_...>. List a model’s profiles with tg beta models configs "<MODEL_OBJECT_ID>". See Choose a deployment profile.Run locally
To run your model outside Together, download the checkpoint by job ID:Choose a checkpoint type
Thecheckpoint parameter selects what to download. It’s required for the v2 SDK’s content() method and the GET /v1/finetune/download endpoint, unless you pass checkpoint_step, which downloads a specific intermediate step and overrides checkpoint. Valid values depend on how the job was trained.
model_output_path returns the raw training output directory before any merging. It works for both job types but is mainly useful for advanced workflows that need the unmodified artifacts: for LoRA jobs, prefer merged or adapter; for full fine-tunes, it’s the only option.
The v1 SDK’s client.fine_tuning.download() selects the checkpoint automatically (merged for LoRA jobs, model_output_path for full fine-tunes), so you don’t pass a checkpoint argument there.
The output is a .tar.zst archive that uses ZStandard compression. On macOS, install zstd with Homebrew and decompress:
Python
--checkpoint-step <STEP_NUMBER> to tg fine-tuning download (or checkpoint_step=<STEP_NUMBER> to client.fine_tuning.content()). List checkpoints with tg fine-tuning list-checkpoints <JOB_ID>.
Model registry object IDs
When a job uploads its output artifacts to the Together model registry alongside the primary storage write, the job and checkpoint responses include the registry object and revision IDs, plus qualified object names in<project_slug>/<model_name> form. Use the IDs to reference the uploaded weights in downstream workflows (for example, when binding a fine-tuned adapter to a dedicated endpoint).
On a completed job in the fine-tuning jobs dashboard, the Output model field shows model_object_name and links to that model in the registry by model_object_id.
The fields are omitted when the registry upload did not run or did not succeed. Object names are resolved on the fly on GET /fine-tunes/{id} and GET /fine-tunes/{id}/checkpoints only (not on list jobs). If the project slug cannot be resolved, the name fields fall back to the corresponding object ID.
On the job
GET /fine-tunes/{id} includes the final artifact IDs once the job reaches completed:
On checkpoints
GET /fine-tunes/{id}/checkpoints returns the same ID pair on each checkpoint entry:
Intermediate checkpoints carry the IDs from the upload at that step. Final model and adapter checkpoints in the list reuse the job-level IDs from the table above.
Troubleshooting
- No Model Object ID yet: The job hasn’t reached
completed, somodel_object_idisn’t populated. Poll status withclient.fine_tuning.retrieve(id=...)until it’s done. See Monitor a fine-tuning job for the polling pattern. endpoints_v1_create_access_disabled(HTTP 403): You’re calling the retired v1 endpoints API (client.endpoints.create(...)ortg endpoints create). Deploy on dedicated model inference withtg beta endpoints deployinstead. See Migrate from v1.deployreports multiple deployment profiles: Re-run with--config <cr_...>. List a model’s profiles withtg beta models configs "<MODEL_OBJECT_ID>".- Deploy fails because the base isn’t supported: Not every base model can be hosted for dedicated inference. Confirm the base appears in the supported models list before training (
-Referencemodels often can’t be deployed). - 404 on inference: Point the base URL at
https://api-inference.together.ai/v1and pass the endpoint string (your-project-slug/<endpoint_name>, printed by the deploy output) as themodelparameter, not the Model Object ID.
Next steps
Upload a custom model
Upload your own model weights from outside the Together catalog.
Manage endpoints
Inspect, start, stop, update, and delete dedicated endpoints.
Configure autoscaling
Tune replica bounds and autoscale a deployment on the metric that fits your workload.