Skip to main content
In SambaStack, you can deploy your own custom or fine-tuned checkpoints for inference in the same manner as deploying standard model offerings, with a few additional steps to prepare your checkpoint for use in the platform. Once prepared and deployed, custom checkpoints behave just like any other checkpoint you deploy on SambaStack. This page also documents the Model and Pef resources, which you author when bringing your own checkpoint or model architecture.

Overview

Deploying a custom checkpoint involves four high-level actions:
  1. Convert your checkpoint into a SambaNova-compatible format using the Checkpoint Conversion Tool.
  2. Upload your converted checkpoint to your private Google Cloud Storage bucket configured with read permissions granted to your SambaNova-provided service account OR make it available in NFS such that it is readable by your cluster.
  3. Reference your checkpoint, either by overriding the checkpoint used by an existing model or by registering a new Model resource for it.
  4. Deploy it by pairing the model with a compatible ModelProfile in a ModelDeployment or a ModelBundle.
Before starting this workflow, ensure you have completed the checkpoint conversion process. See the Checkpoint Conversion Tool page for instructions.

Prerequisites

Before deploying a custom checkpoint, ensure you have:
  • A converted checkpoint in SambaNova-compatible format (see Checkpoint Conversion Tool)
  • Your NFS mounted storage or access to a Google Cloud Storage (GCS) bucket
  • Your SambaNova-provided service account JSON file
  • kubectl configured with access to your SambaStack cluster
  • Familiarity with deploying models and bundles, including model profiles and model bundles

Supported models for custom checkpoints

Custom checkpoint deployment is supported for a growing set of base models in SambaStack. See the Supported Models and Bundles table to find models that support custom checkpoints.

Steps to deploy a custom checkpoint

1

Convert your checkpoint

Custom or fine-tuned checkpoints must be converted into a format optimized for SambaNova’s SN40L hardware before they can be deployed. SambaNova provides a Checkpoint Conversion Tool, delivered as a Docker container that you can run locally. The tool generates converted checkpoint artifacts that can then be uploaded and deployed for inference on SambaStack.To begin, follow the instructions in the Download and set up section of the Checkpoint Conversion Tool documentation. Setup is complete once you have downloaded the conversion tool container and synced the model metadata with your specific SambaStack instance.After setup, use the steps described in the Convert and validate checkpoint section of the Checkpoint Conversion Tool documentation to convert your custom checkpoint into the SambaNova-compatible format.
2

Configure GCS bucket permissions

You can skip this section if you have NFS mounted to your cluster.
SambaStack uses Google Cloud Storage (GCS) to store checkpoints and other SambaStack artifacts. For custom checkpoints, you’ll store the converted checkpoint artifacts in your own GCS bucket. To make these artifacts available to SambaStack during deployment, your SambaNova-provided service account needs read access to your bucket.
This is a one-time setup step. After permissions are in place, you can upload any number of custom checkpoints to your bucket and use them directly in your deployments.

Identifying your service account

Your service account information is provided as a JSON file. Locate the client_email field - this is the identity that needs read access to your bucket. For example:

Granting Storage Object Viewer role

To allow SambaStack to access your custom checkpoints, grant the service account the Storage Object Viewer role on your bucket. This provides read-only access to objects without allowing writes or modifications.Using the Google Cloud Console:
  1. Open the Google Cloud Console.
  2. Navigate to Storage → Buckets, and select the bucket you plan to use.
  3. Go to the Permissions tab.
  4. Click + Add principal.
  5. In the New principals field, enter your service account’s client_email.
  6. In the Role dropdown, choose: Cloud Storage → Storage Object Viewer
  7. Click Save.
Using the gcloud CLI:Before running the commands below, identify:
  • <BUCKET_NAME> – the name of your GCS bucket
  • <SERVICE_ACCOUNT_EMAIL> – the client_email value from your service account JSON
  • <PROJECT_ID> – the Google Cloud project that owns the bucket
To grant the Storage Object Viewer role at the bucket level:
To verify that the role was successfully applied:
You should see an entry resembling:
For additional guidance, see Google’s IAM documentation:
3

Upload your converted checkpoint

NFS

If you have NFS mounted to your cluster, verify that the converted checkpoint is moved to NFS and accessible by your cluster.

Google Cloud Storage

If you are using Google Cloud Storage (GCS), after converting the checkpoint, upload the directory containing the converted checkpoint files to your GCS bucket.
This step may take a while depending on the size of your checkpoint.
Using the Google Cloud Console:
  1. Open the Google Cloud Console.
  2. Navigate to Storage → Buckets and select the bucket you’ve configured for custom checkpoints.
  3. Click Upload folder (or Upload files, depending on your structure).
  4. Select the directory containing your converted checkpoint artifacts.
  5. Wait for the upload to complete; the structure should remain intact.
Using the gcloud CLI:You can upload the entire converted checkpoint directory recursively with:
4

Reference your checkpoint

There are two ways to make your checkpoint servable, depending on whether you want to keep the existing model name or serve the checkpoint under a new one.

Option 1: Override the checkpoint of an existing model

Use this option to reuse an existing model’s name and serve your checkpoint in place of the one that model normally uses. No new Model resource is required. Set checkpointOverrides on the model configuration in your ModelBundle or ModelDeployment:
Requests continue to use the existing model’s serving name. This is the recommended approach for serving a fine-tuned variant of a supported model.

Option 2: Register a new Model resource

Use this option to serve the checkpoint under its own model name, for example a checkpoint fine-tuned from another model that you want addressed separately in the inference API. This requires creating a new Model resource.Set spec.checkpoints.<arch> using an architecture key compatible with the profile you intend to pair it with, set source to the location of your converted checkpoint, and set spec.tokenizer.path to the tokenizer of the base model the checkpoint was derived from.
The architecture key in this example, llama3, is illustrative. Use a key that matches the model_arch of the profile you intend to use. For the full field reference, see Model structure.
The tokenizer field is used only for checking inputs to calculate sequence length requirements prior to generation time. Set it to the tokenizer of the base model your checkpoint was fine-tuned from.
Apply the resource:
5

Deploy the checkpoint

Pair the model with a ModelProfile whose model_arch is compatible with your checkpoint’s architecture, then deploy it either directly or through a bundle.
Compatibility between a checkpoint and a profile is determined by model_arch, and the operator does not verify it for you. Select a profile whose architecture matches the checkpoint you are serving. A mismatch results in inference errors.
To find a compatible profile, list the profiles in your cluster and note the model_arch of each:
Then deploy. For a single model, inline it in a ModelDeployment:
Apply it:
For the full deployment options, including bundling several models together, see Deploying models and bundles.
After your deployment is running, use the serving name you defined (for example, my-custom-llama-3-1-8b) in your inference API requests.

Resource reference

The following resources are the ones you author when bringing your own checkpoint or model architecture. For the profile, bundle, and deployment resources, see Deploying models and bundles.

Model structure

A Model resource is the source of checkpoints. It holds the checkpoint versions for each architecture the model supports, keyed by architecture name, along with the tokenizer to use.
The paths to checkpoints hosted by SambaNova will be provided to you by your SambaNova contact. If you have hosted your own checkpoints, you can include those paths in the source fields above.

PEF structure

A Pef resource registers a compiled executable. The profile determines which PEF, sequence size, and batch size are used, so you select a profile rather than an individual PEF. Author Pef resources only when introducing a new model architecture.

PEF and checkpoint lifecycle status

SambaStack assigns a pef_status field to PEF CR versions and a checkpoint_status field to model CR checkpoint versions to indicate their support lifecycle. Understanding these statuses helps you make informed decisions when selecting PEF or checkpoint versions. PEF and checkpoint version status values Each version entry in a PEF CR includes a pef_status field. Model CR checkpoint versions use checkpoint_status. Both share the same set of values: Example PEF CR versions with status
To check version statuses, run kubectl describe pef <pef-name> or kubectl describe model <model-name> and review the pef_status or checkpoint_status field in the Versions section.
The following procedures describe the step-by-step workflow for creating and deploying custom deployments and bundles using the concepts and structures described above.

Add a custom model architecture

If the model architecture is not yet supported, no compiled executable and no profile exist for it, so the full set of resources must be authored in the following order: A new PEF must be compiled for the architecture, and a Pef resource must be created to register it. Compiling a PEF is not covered on this page. Use the resources for the closest supported model as a reference for the values in each resource:

Verifying your deployment

After applying the deployment, verify that your custom checkpoint deployment is successful:
  1. Check deployment status:
  2. Verify the model is available:
  3. Test with a sample inference request using your custom model name. See the Quickstart Guide for Developers for example inference requests using the SambaNova SDK, OpenAI-compatible libraries, or CURL.

Troubleshooting

Common issues

Verifying GCS access

If you suspect permission issues, verify that your service account can access the checkpoint:

Next steps