Skip to main content

Setup

Sign in to Baseten with Truss, then install the OpenAI SDK.
Sign in to Baseten
Install the OpenAI SDK
Pick the model you want to deploy. Each tab is a self-contained recipe.
nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8 is a 30B-parameter hybrid MoE model (3.5B active per token) with up to 256K context.This preset serves NVIDIA Nemotron 3 Nano 30B A3B on one H100 with FP8 weights and KV cache, optimized for low-latency reasoning at the 32K context window sized for the NVIDIA cascaded voice pipeline.

Hardware

H100

Engine

vLLM (0.22.0-cu129 build)

Context

32K

Concurrency

8

Write the config

Create and move into the project directory:
Then create a file named config.yaml and paste the following:
config.yaml
This preset deploys the FP8 checkpoint of Nemotron 3 Nano 30B A3B through vLLM on a single H100 with the model’s own nano_v3 reasoning parser loaded as a plugin. The KV cache is FP8 to match the checkpoint, and the Mamba SSM state cache stays in FP32 to avoid accuracy drift. The deployment exposes an OpenAI-compatible chat completions endpoint with reasoning and tool calling at a 32K context window.

Flags

The start_command passes these flags to the engine. Each one controls a runtime or serving behavior:

Deploy

Push the config to Baseten:
You should see output similar to:
truss push prints your model ID (abc1d2ef in the example). The examples below use it wherever you see {model_id}, and read your API key from the BASETEN_API_KEY environment variable.

Call the model

Your deployment serves an OpenAI-compatible API.Now call your deployment to run inference:
main.py
The server parses the model’s chain of thought into a separate reasoning_content field on the response. Read it alongside the final answer:
To let the model call tools, pass a tools array. The server returns structured tool_calls on the response:

Next steps

Call your model

Endpoint anatomy, authentication, and sync versus async inference

Autoscaling

Scale replicas with traffic, including scale to zero