Skip to main content
BIS-LLM (Baseten Inference Stack v2) deployments are configured entirely in the bis_llm block of config.yaml. There’s no engine build step: the deploy is config-only, and the settings under bis_llm.config are passed to a prebuilt serving image. Push the config with truss push. For translating an Engine-Builder-LLM (v1) configuration to BIS-LLM, see Migrate from Engine-Builder-LLM.

Configuration structure

A BIS-LLM config.yaml has a top-level bis_llm block alongside the standard model_name, resources, and weights fields:
config.yaml
  • bis_llm.version selects the serving stack version. Omit it to use the platform default, or set the value your Baseten representative provides.
  • bis_llm.config holds the engine and runtime settings covered below.
  • bis_llm.additional_autoscaling_config sets token-based autoscaling. See Autoscaling BIS-LLM.
  • weights mirrors model files to the Baseten Delivery Network for fast cold starts.

Engine

BIS-LLM runs your model on one of two inference engines: TensorRT-LLM or vLLM. Set engine_backend in the bis_llm.config block to choose one:
Baseten resolves the latest certified serving image for that engine.
string
The inference engine to serve with. Baseten resolves the latest promoted, multi-arch serving image that passed model-performance CI for that engine.Options:
  • trtllm: TensorRT-LLM.
  • vllm: vLLM.
Required unless you set gpuTRTImage. If you set neither, the deploy fails with No serving image provided by customer, and no engine_backend specified to select a default image.
string
A specific serving image. Takes precedence over engine_backend for image selection.

Engine-specific runtime settings

Each engine takes its runtime settings under engine_config, using that engine’s native field names. The two vocabularies don’t overlap: TensorRT-LLM uses max_batch_size, max_num_tokens, and max_seq_len; vLLM uses max_num_seqs, max_num_batched_tokens, and max_model_len. Passing TRT-LLM names to the vLLM engine fails at startup:

Model and weights

string
required
The Hugging Face repository ID (or mounted path) of the model checkpoint. BIS-LLM serves prequantized checkpoints directly, so point this at an FP8 or FP4 checkpoint when you want quantization.
string
required
The model identifier the engine loads.
string
The model name returned in API responses and accepted in the model field of requests.
string
Local paths to the model and its tokenizer when you mount weights with the top-level weights block. Point the tokenizer at a mounted path rather than a remote repository ID so the engine loads it locally:

Runtime settings

number
default:"1"
Number of GPUs for tensor parallelism. Set it to the GPU count in your accelerator.
object
Engine runtime settings in the active engine’s native field names. See Engine-specific runtime settings.
number
Maximum token length the tokenizer accepts for a request.
object
Per-component environment variables passed into the serving pod, keyed by component (for example, Worker).

Autoscaling

BIS-LLM scales on in-flight tokens rather than request concurrency. Set the target under additional_autoscaling_config:
For how token-based autoscaling behaves and how to tune the target, see Autoscaling BIS-LLM.

Advanced features

Speculative decoding, KV-aware routing, and disaggregated serving are configured through their own blocks in bis_llm.config. See Advanced features for BIS-LLM for speculative_config, b10_routing_config, and disaggregated serving. Eagle and MTP speculative decoding require Enterprise; contact your Baseten representative to enable.

Complete configuration examples

Qwen2.5-7B on vLLM

config.yaml

DeepSeek V3.2 on vLLM (H200)

config.yaml