Llama-3.3-70B-Instruct and Llama-3.1-8B-Instruct, allowing you to switch between them almost instantly. Each configuration occupies space on the node, so different bundles contain different sets of configurations. A copy of Llama-3.3-70B-Instruct with a batch size of 4 and a sequence length of 16k represents one configuration. For the bundles that SambaNova provides, see Supported Models and Bundles.
SambaStack v2.0.2 introduces a new set of Kubernetes custom resources (CRs) to manage how bundles are deployed. The CRs in older versions of SambaStack are deprecated and will be functional until September 30, 2026. Model bundles built using the deprecated CRs will need to be migrated.
A bundle is optional. To serve a single model, pair it with a model profile and deploy it directly. Create a bundle when you want to serve several models as one unit, configure speculative decoding, or validate and share a named configuration.
This guide covers both deploying the bundles that SambaNova provides and authoring your own. For the catalogue of provided bundles, see Supported Models and Bundles.
Prerequisites
Before creating custom deployments or bundles, complete the following that applies to you:Quickstart - Hosted
System set up for hosted SambaStack
Quickstart - On-prem
System set up for On-prem Sambastack
- Supported Models and Bundles - Available model checkpoints
- Speculative Decoding Deployment Guidelines - Required if configuring speculative decoding pairs
Terminology
Concepts
Resource architecture
This section covers the resource structure used when creating custom deployments. All of these resources useapiVersion: sambanova.ai/v1alpha1.
Light boxes are provided with the SambaStack installation and referenced by name; darker boxes are what you author. The amber box is not a custom resource, but a single Model and ModelProfile pairing, which corresponds to one entry in spec.modelConfigs.
The resources divide responsibility as follows:
- Pef - Registers a compiled executable and the metadata describing what it supports, including its model architecture, batch size, and maximum sequence length.
- ModelProfile - Defines how a model architecture can be run: which PEFs it uses, which features it supports, and the batch sizes available at each sequence length tier.
- Model - Defines which checkpoints are available for each architecture, along with the tokenizer to use.
- ModelBundle - Combines one or more model and profile pairs into a single named, deployable unit. Optional.
- ModelDeployment - Instantiates one or more replicas on the cluster, either from a bundle or from an inline model and profile pair.
- Deploy a single model by pairing it with a profile, without creating a bundle
- Reuse one profile across every model and checkpoint that shares its architecture, including custom checkpoints for fine-tuned models
- Serve a custom checkpoint by adding a
Modelresource only, leaving the profile untouched - Group several models into one validated, shareable unit when you need them served together
- Update checkpoints without modifying profiles or deployment configurations
- Deploy the same configuration with different replica counts
Checkpoint paths are never declared in a bundle or a deployment. The operator resolves them from the
Model you reference, either through the <model-name>[:<arch>][:<version>] reference or through modelSettings.checkpointOverrides.Compatibility between a checkpoint and a profile is defined by model_arch, but the operator does not verify it. Select a checkpoint whose architecture is compatible with the profile you reference.ModelProfile structure
A ModelProfile defines the runtime shape of a single model architecture. Profiles are reusable, and the profiles for supported architectures are provided with the SambaStack installation, so in most cases you reference an existing profile by name rather than authoring one.Batching configuration
A batching configuration maps each sequence length tier to the batch sizes served at that length. Common tier keys are8k, 16k, 32k, 64k, and 128k. PEFs below 1k use a bare integer key, for example 448, and vocoder PEFs use a codes-length key in the form <n>t, for example 10t.
Overriding a batching configuration
AModelProfile establishes the batch sizes available at each tier, so a defaultBatchingConfig always lists them explicitly. It never uses "*".
The tier-to-batch_sizes structure is reused when you override a profile’s defaults for one model, either through modelConfigs[].batchingConfig in a ModelBundle or through the inline spec.models of a ModelDeployment. Only in an override can batch_sizes be set to the string "*", which selects every batch size the profile’s defaultBatchingConfig provides for that tier:
defaultBatchingConfig does not contain.
PEFs
A PEF is the compiled artifact for one model configuration. The profile selects which PEF, sequence size, and batch size are used, so you reference a profile rather than a PEF. For thePef resource reference, see Deploying custom checkpoints.
ModelBundle structure
A ModelBundle combines one or more model and profile pairs into a single named, deployable unit. Each entry inspec.modelConfigs references a model and a profile by name and can specify per-model batching and model settings.
The following example shows a multi-model bundle:
Model configurations
Each entry inspec.modelConfigs pairs one model with one profile:
Batching is resolved in the following order of precedence: the model configuration’s
batchingConfig, then the profile’s defaultBatchingConfig, then a configuration generated from the PEF grouping.
Swappable models
Theswappable setting controls whether a model can be evicted from HBM in favor of another model on the same endpoint. When swappable is set to true, the entire model is removed from HBM if a different model needs to run on that endpoint. This includes the model’s checkpoint weights, its profile metadata, and its PEFs.
Set this field to true for models that can be evicted in order to free capacity for another model, and leave it unset or set it to false for models that must remain resident.
Speculative decoding
In speculative decoding, a smaller draft model proposes tokens and a larger target model verifies them. The pairing is declared at the bundle level inspec.specDecodingPairs, and the draft model is included as its own non-routable entry in spec.modelConfigs.
For the field reference, requirements, and the full workflow including custom draft checkpoints, see Deploying with speculative decoding.
ModelDeployment structure
A ModelDeployment instantiates models on the cluster and creates the serving pods behind a routable inference endpoint. For detailed deployment information, see Quickstart - Hosted or Quickstart - On-prem. Set exactly one model source:Legalizer results
The legalizer validates a configuration’s resource requirements before deployment. It runs automatically when you apply a ModelBundle, and its results are published understatus.legalizerInfo. The bundle status also reports the effective batching configuration that was resolved for each model.
- Hosted
- On Premise
A bundle can pass the legalizer with warnings present, as in the example above, and still report
ValidationSucceeded. Review warnings before deploying, but they do not prevent deployment.The
utilization fields show N/A when skip_legalizer: true is set on a bundle that has been legalized at least once. If the bundle has never been legalized, for example because skip_legalizer: true was set from initial deployment, legalizerInfo is absent entirely. The utilization field may also be absent if the legalizer output could not be parsed.Procedures
Identify available models and profiles
Before authoring a deployment, identify the models and profiles available in your cluster and determine which pair together.1
List available models
List the models and note the architecture keys under each model’s Example:
spec.checkpoints:- Hosted
- On Premise
2
List available profiles
List the profiles and note the Output:
model_arch value of each:- Hosted
- On Premise
3
Match a profile to a model
View a profile to confirm its architecture, features, and batching support:A profile can be used with a model when the profile’s
- Hosted
- On Premise
model_arch value matches one of the architecture keys under the model’s spec.checkpoints. The operator does not verify this pairing, so confirm it yourself before deploying. Review the profile for:model_arch- The architecture the profile targetsfeatures- Optional features the profile’s PEFs supportdefaultBatchingConfig- Sequence length tiers and their batch sizespefs- The PEF versions the profile references
Deploy a single model
To serve one model, pair it with a profile and deploy it directly. No bundle is created.1
Create the YAML file
Create a YAML file that declares the model and profile inline under A checkpoint path is not required, because the checkpoint is resolved from the referenced
spec.models:Model.2
Apply the ModelDeployment
- Hosted
- On Premise
3
Monitor deployment status
- Hosted
- On Premise
Create a ModelBundle
Create a bundle to serve several models as one unit, to configure speculative decoding, or to validate and share a named configuration.1
Create the YAML file
Create a YAML file for your ModelBundle:For multi-model bundles with speculative decoding, see the ModelBundle Structure example.
2
Apply the ModelBundle
- Hosted
- On Premise
3
Verify legalizer validation
The legalizer automatically runs when you apply the bundle and validates whether the configuration fits in RDU memory.To read the legalizer result directly, including memory utilization and any warnings:For the full status structure and field descriptions, see Legalizer results.
- Hosted
- On Premise
- Successful validation
- Failed validation
Deploy a bundle
This procedure applies both to bundles that SambaNova provides and to bundles you authored.1
Discover the available bundles
List the bundles present in the cluster and note the name of the one you want to deploy:Output:Before deploying, confirm the bundle passed validation, as described in Legalizer results.
- Hosted
- On Premise
2
Create a ModelDeployment
Insert the bundle name into
spec.bundle:3
Apply the ModelDeployment
- Hosted
- On Premise
4
Monitor deployment status
- Hosted
- On Premise
Switch bundles
A ModelDeployment’s bundle reference cannot be changed in place. To serve a different bundle, delete the existing deployment and apply a new one that references the new bundle.1
Delete the existing ModelDeployment
- Hosted
- On Premise
2
Apply a ModelDeployment for the new bundle
Author a new ModelDeployment whose
spec.bundle names the bundle you want to serve, then apply it as described in Deploy a bundle.Deploy multiple bundles
To serve more than one bundle at a time, apply a separate ModelDeployment for each bundle. Verify that the pods reflect the deployed bundles:- Hosted
- On Premise
Deploy a custom checkpoint
To serve your own converted or fine-tuned checkpoint, either override the checkpoint used by an existing model or register a new model for it. See Deploying custom checkpoints.Add a custom model architecture
Serving a model architecture that SambaStack does not yet support requires compiling a PEF and authoringPef, ModelProfile, and Model resources. See Deploying custom checkpoints.
Update or remove a deployment or bundle
- Update a configuration
- Remove a configuration
1
Modify the YAML file
Edit the ModelBundle, ModelProfile, or ModelDeployment YAML file with your changes.
2
Reapply the configuration
- Hosted
- On Premise
Troubleshooting
Legalizer validation failures
Errors appear instatus.legalizerInfo.errors and cause ValidationFailed. Warnings appear in status.legalizerInfo.warnings and do not block deployment. See Legalizer results.
Deployment failures
Related documentation
Migrating bundle configuration
Migrate bundles built with the deprecated custom resources
Supported Models and Bundles
Catalogue of models and bundles available for deployment
Custom checkpoint deployment
Deploy your own custom or fine-tuned checkpoints
Checkpoint Conversion Tool
Convert Checkpoints to Compatible formats

