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-LLMconfig.yaml has a top-level bis_llm block alongside the standard model_name, resources, and weights fields:
config.yaml
bis_llm.versionselects the serving stack version. Omit it to use the platform default, or set the value your Baseten representative provides.bis_llm.configholds the engine and runtime settings covered below.bis_llm.additional_autoscaling_configsets token-based autoscaling. See Autoscaling BIS-LLM.weightsmirrors 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. Setengine_backend in the bis_llm.config block to choose one:
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.
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 underengine_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:
- vLLM
- TensorRT-LLM
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 underadditional_autoscaling_config:
Advanced features
Speculative decoding, KV-aware routing, and disaggregated serving are configured through their own blocks inbis_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
Related
- BIS-LLM overview: Main engine documentation.
- Migrate from Engine-Builder-LLM: Translate a v1 configuration to BIS-LLM (v2).
- Advanced features for BIS-LLM: KV-aware routing, disaggregated serving, and speculative decoding.
- Structured outputs for BIS-LLM: JSON schema validation.
- Model deployment examples: Concrete deployment examples.