Requirements
Currently, we support models that meet the following criteria.- Source: We support uploads from Hugging Face or S3.
- Type: We support text generation and embedding models.
- Scale: We currently only support models that fit in a single node. Multi-node models are not supported when you upload a custom model.
Model upload via S3 presigned URL
When uploading a model to Together using an S3 presigned URL, the URL must point to a single archive file containing the model files.Supported archive formats
The presigned URL must reference one of the following archive types:.zip.tar.tar.gz
Required archive structure
The archive must contain the model files laid out in standard Hugging Face model repository format. The files should exist at the root of the archive, not nested inside an extra top-level directory. A valid archive will look like this when extracted:Creating an archive from a Hugging Face model directory
If you already have a Hugging Face model directory on disk, make sure you archive the directory contents, not the individual files and not the directory itself. The key detail is to archive the current directory using . or / so that files are at the root of the archive.Presigned URL requirements
- The presigned URL must point to the archive file in S3.
- The presigned URL expiration time must be at least 100 minutes.
Important notes
- Do not upload individual files. Only a single archive file is supported.
- Do not include additional wrapping directories inside the archive.
- The structure must be compatible with Hugging Face
from_pretrainedloading.
Preparing and Uploading Your Model Archive
This section walks you through the complete process of downloading a model, creating an archive, uploading it to S3, and generating a presigned URL.Prerequisites
- AWS CLI installed and configured with appropriate credentials
- An S3 bucket with write access
- (Optional) Hugging Face CLI if downloading models from Hugging Face (
hf auth login)
Step 1: Prepare your model directory
You can either use a model you already have locally, or download one from Hugging Face. Option A: Use an existing local directory If you already have a model directory on disk (e.g., from training or a previous download), skip to Step 2. Just ensure your directory contains the model files in standard Hugging Face format (e.g.,config.json, *.safetensors, tokenizer.json, etc.).
Option B: Download from Hugging Face
Use the Hugging Face CLI to download a model to a local directory:
Step 2: Create the archive
Navigate to your model directory and create a.tar.gz archive. The key is to archive the contents from within the directory so files are at the root level of the archive:
Using
. ensures the files are placed at the root of the archive, not nested inside an extra directory. This is required for the model to load correctly.Step 3: Upload the archive to S3
Upload the archive to your S3 bucket:Step 4: Generate a presigned URL
Create a presigned URL with sufficient expiration time. The URL must be valid for at least 100 minutes:Example: End-to-end workflow
Here’s a complete example downloading and uploading a model:Getting Started
Upload the model
Model uploads can be done via the UI, API or the CLI. The API reference can be found here.UI
To upload via the web, just log in and navigate to models > add custom model to reach this page:
CLI
Upload a model from Hugging Face or S3:Checking the status of your upload
When an upload has been kicked off, it will return a job id. You can poll our API using the returned job id until the model has finished uploading.Deploy the model
Uploaded models are treated like any other dedicated endpoint models. Deploying a custom model can be done via the UI, API or the CLI. The API reference can be found here.UI
All models, custom and finetuned models as well as any model that has a dedicated endpoint will be listed under My Models. To deploy a custom model: Select the model to open the model page.

