Skip to main content
This reference covers all configuration options for BEI and BEI-Bert deployments. All settings use the trt_llm section in config.yaml.

Configuration structure

Build configuration

Fields are tagged Required, Optional, or Computed. Computed fields are set by the engine; do not configure them manually. The build section configures model compilation and optimization settings.
string
required
Required. The base model architecture determines which BEI variant to use.Options:
  • encoder: BEI - for causal embedding models (Llama, Mistral, Qwen, Gemma)
  • encoder_bert: BEI-Bert - for BERT-based models (BERT, RoBERTa, Jina, Nomic)
object
required
Required. Specifies where to find the model checkpoint. Repository must follow the standard HuggingFace structure.Source options:
  • HF: Hugging Face Hub (default)
  • GCS: Google Cloud Storage
  • S3: AWS S3
  • AZURE: Azure Blob Storage
  • REMOTE_URL: HTTP URL to tar.gz file
  • BASETEN_TRAINING: Baseten Training checkpoints
For training checkpoint deployment, see Deploy with optimized inference engines. For cloud storage sources (GCS, S3, Azure), see Deploy from cloud storage.
checkpoint_repository is the weight source for BEI models, and Baseten mirrors it to the Baseten Delivery Network automatically for fast cold starts. Don’t add a top-level weights: section to a BEI config: checkpoint_repository already handles weight loading, so using weights: directly is discouraged.
number
default:"16384 (BEI) / 8192 (BEI-Bert)"
Optional. Maximum number of tokens that can be processed in a single batch. BEI defaults to 16384; BEI-Bert defaults to 8192. BEI and BEI-Bert run without chunked-prefill for performance reasons. This limits the effective context length to the max_position_embeddings value.Range: 65 to 1048576 (gt=64, le=1048576 in schema). Use higher values for long context models. Most models use 16384 as default.
number
Computed for embedding models. BEI sets it automatically from max_position_embeddings in the model’s config.json and truncates if context length is exceeded; leave it unset for embedding models. SequenceClassification models respect an explicit value.
string
default:"no_quant"
Optional. Specifies the quantization format for model weights. FP8 quantization maintains accuracy within 1% of FP16 for embedding models.Options for BEI:
  • no_quant: FP16/BF16 precision
  • fp8: FP8 weights + 16-bit KV cache
  • fp4: FP4 weights + 16-bit KV cache (B200 only)
  • fp4_mlp_only: FP4 MLP weights only (B200 only)
Options for BEI-Bert:
  • no_quant: FP16 precision (only option)
For detailed quantization guidance, see Quantization guide.
object
Optional. Configuration for post-training quantization calibration.Fields:
  • calib_size: Size of calibration dataset (64-16384, multiple of 64)
  • calib_dataset: HuggingFace dataset for calibration
  • calib_max_seq_length: Maximum sequence length for calibration
object
Computed. BEI automatically configures optimal TensorRT-LLM plugin settings. Manual configuration is not required or supported.Automatic optimizations:
  • XQA kernels for maximum throughput
  • Dynamic batching for optimal utilization
  • Memory-efficient attention mechanisms
  • Hardware-specific optimizations
  • attention-dp by default for max thoughput
Note: Plugin configuration is managed automatically for BEI; it’s tunable only on Engine-Builder-LLM.

Runtime configuration

The runtime section configures serving behavior.
string
default:"/v1/embeddings"
Optional. The default API endpoint for the deployment.Options:
  • /v1/embeddings: OpenAI-compatible embeddings endpoint
  • /v1/systemone: Typed-decision endpoint for decision models such as Laya (BEI-Bert only)
  • /rerank: Reranking endpoint
  • /predict: Classification/prediction endpoint
  • /predict_tokens: Token classification endpoint for named entity recognition (BEI-Bert only)
BEI automatically detects embedding models and sets /v1/embeddings. Classification models default to /predict. Token classification models require /predict_tokens; see Named entity recognition. Typed-decision models use /v1/systemone; see Typed decisions.
number
Computed. Available but has no effect for BEI embedding models, which do not use a KV cache. Only relevant for generative (decoder) models.
boolean
Computed. Available but has no effect for BEI embedding models. Only relevant for generative (decoder) models.
string
Computed. Available but has no effect for BEI embedding models. Only relevant for generative (decoder) models.

Hugging Face model repository structure

All model sources (S3, GCS, HuggingFace, or tar.gz) must follow the standard HuggingFace repository structure. Files must be in the root directory, similar to running:

Choose a checkpoint

Choose an embedding or classification checkpoint for your task, rather than a chat checkpoint from the same model family. The checkpoint’s config.json identifies its architecture. Embedding checkpoints also need the pooling files described below; rerankers and classifiers use a classification head instead. For example, Qwen3-Embedding is an embedding checkpoint. A similarly named text-generation checkpoint doesn’t establish embedding support. Check the architecture and pooling files when evaluating a different model, including Qwen3.5. Adding pooling files doesn’t make an unsupported architecture compatible with the engine.

Model configuration

string[]
required
Architecture names in config.json. The engine infers the model architecture from this field. The supported architecture depends on the engine and task; the name alone doesn’t establish compatibility.
integer
Maximum context size declared by the checkpoint. Input beyond the configured limit is truncated.
object
Required for classification models. Maps each output label ID to a name in the JSON response. Include one entry per output of the final dense layer.
string
Checkpoint weight dtype. Use unquantized float16, bfloat16, or float32 weights. BEI performs quantization during the build; don’t supply a prequantized checkpoint.

Model weights

model.safetensors (preferred)
  • Or: model.safetensors.index.json + model-xx-of-yy.safetensors (sharded)
  • Note: Convert to safetensors if you encounter issues with other formats

Tokenizer files

tokenizer_config.json and tokenizer.json
  • Must be “FAST” tokenizers compatible with Rust
  • Typically cannot contain custom Python code, will be unread.

Embedding model files (sentence-transformers)

1_Pooling/config.json
  • Required for embedding models to define pooling strategy
modules.json
  • Required for embedding models
  • Shows available pooling layers and configurations
At build time, BEI reads pooling mode from modules.json and 1_Pooling/config.json and maps it to one of the modes below. If either file is missing on an embedding checkpoint, the build fails with a clear error naming the missing path. Sequence classification and reranking models skip pooling detection and use the classification head instead.

Pooling layer support

Throughput benchmarks

Measured against TEI and vLLM on the same hardware. Token throughput uses 500 tokens per request; request throughput uses 5 tokens per request. For the full methodology, see Run Qwen3 Embedding on NVIDIA Blackwell GPUs.

Quantization impact (8B dense models, H100)

Hardware support

Complete configuration examples

BEI with FP8 quantization (embedding model)

BEI-Bert for small BERT model

BEI for reranking model

BEI-Bert for classification model

BEI-Bert for code embeddings (Jina)

BEI-Bert for bidirectional Qwen2 (long sequences)

Common configuration errors

Warning: Briton logs: “Compling encoder with a kv-cache dtype is a alpha feature. This may fail.”
  • Cause: Using a KV quantization type (fp8_kv, fp4_kv) with an encoder model. Encoders do not use a KV cache, so these variants are alpha and may fail the build.
  • Fix: Use fp8 or no_quant instead.
Error: FP8 quantization is only supported on L4, H100, H200, B200
  • Cause: Using FP8 quantization on unsupported GPU.
  • Fix: Use H100 or newer GPU, or use no_quant.
Error: FP4 quantization is only supported on B200
  • Cause: Using FP4 quantization on unsupported GPU.
  • Fix: Use B200 GPU or FP8 quantization.