Skip to main content

Invalid Parameter Combinations

Auto-generated. Do not edit by hand: run python scripts/generate_invalid_combos_doc.py (or make docs-all).

This document lists parameter combinations that fail validation or run differently than declared. The error rules are enforced at config load time with a clear error message; the dormant rules are accepted but silently normalised by the engine. Both are derived from the live rule corpus (src/llenergymeasure/engines/<engine>/rules.yaml) plus the cross-engine ExperimentConfig validators, so this page cannot drift from what actually fires at runtime.

Config Validation Errors

These combinations are rejected at config load time with a clear error message. Rows citing a rule id come from that engine's shipped rule corpus; the rest are ExperimentConfig pydantic validators.

EngineInvalid CombinationReasonResolution
allengine section mismatchThe engine section must match the engine field (validate_engine_section_match).Ensure the transformers:/vllm:/tensorrt: section matches the engine: field.
allmode section mismatchThe mode namespace must match the serving_mode field: a server: section is legal only under serving_mode=server, and serving_mode=server requires a server: section with a traffic spec (validate_mode_section_match).Ensure the server: section matches serving_mode; add a server: section (with traffic.rate) for serving_mode=server, or set serving_mode: offline.
transformersengine=transformers and serving_mode=servertransformers server mode is a fast-follow: at the pinned version transformers serve is upstream-scoped to moderate load and exposes no first-class health endpoint, so it does not clear the server-mode stability gate (validate_transformers_server_unsupported).Use engine=vllm or engine=tensorrt for server mode, or set serving_mode=offline for transformers.
allserving_mode=server and server.traffic.window_requests setCount-bound measured windows are not supported at v0.7: the server-mode measurement path (measured-span timing and the per-level stability gate) is duration-grounded (validate_server_window_supported).Use server.traffic.window_seconds instead (it defaults to the minimum-window-duration floor when omitted).
allpassthrough_kwargs key collisionpassthrough_kwargs keys must not collide with ExperimentConfig fields (validate_passthrough_kwargs_no_collision).Set the named field directly instead of via passthrough_kwargs.
allunknown field on the engine section wrapperA key placed directly on the engine section (not under engine_params/sampling_params) is never forwarded to the engine (validate_engine_section_extras).Move the key under .engine_params or .sampling_params.
transformersattn_implementation in [flash_attention_2, flash_attention_3] and dtype=float32attn_implementation='flash_attention_2'/'flash_attention_3' requires dtype='float16' or dtype='bfloat16'; FlashAttention does not support float32 computation (validate_transformers_flash_attn_dtype).Set transformers.engine_params.dtype to float16 or bfloat16.
tensorrtengine_path is set and backend != trtengine_path loads a prebuilt compiled-TensorRT engine directory, which only the trt constructor can read; the pytorch backend (the default) would misinterpret it as a checkpoint (validate_tensorrt_engine_path_backend).Set tensorrt.engine_params.backend to trt, or drop engine_path to build from the model checkpoint.
tensorrtbatching_type not in [STATIC, INFLIGHT]batching_type must be one of STATIC or INFLIGHTAdjust the field(s) so the condition no longer holds; see rule tensorrt_analyst_error_batching_type_76e16449.
tensorrtload_format not in [auto, dummy]load_format must be one of auto, dummyAdjust the field(s) so the condition no longer holds; see rule tensorrt_analyst_error_load_format_835500f5.
tensorrtorchestrator_type not in [rpc, ray]orchestrator_type must be one of rpc or rayAdjust the field(s) so the condition no longer holds; see rule tensorrt_analyst_error_orchestrator_type_a5b183fd.
tensorrttokenizer_mode not in [auto, slow]tokenizer_mode must be one of auto, slowAdjust the field(s) so the condition no longer holds; see rule tensorrt_analyst_error_tokenizer_mode_c342cdfb.
tensorrttruncate_prompt_tokens < 1truncate_prompt_tokens must be greater than or equal to 1. Otherwise, an error is raised.Adjust the field(s) so the condition no longer holds; see rule tensorrt_analyst_error_truncate_prompt_tokens_5e1c2d17.
tensorrtbackend != trt and fast_build == Truefast_build=True requires the trt backend; the pytorch backend (TorchLlmArgs) has no fast_build field. Set backend=trt or remove fast_build.Adjust the field(s) so the condition no longer holds; see rule tensorrt_backend_fast_build_requires_trt.
tensorrtbackend != trt and quant_config is setquant_config requires the trt backend; the pytorch backend (TorchLlmArgs) has no quant_config field. Set backend=trt or remove quant_config.Adjust the field(s) so the condition no longer holds; see rule tensorrt_backend_quant_config_requires_trt.
tensorrtacceptance_length_threshold < 0speculative_config.acceptance_length_threshold must be >= 0, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_decodingconfig_raises_acceptance_length_threshold_lt_0.
tensorrtacceptance_window < 0speculative_config.acceptance_window must be >= 0 (0 disables), got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_decodingconfig_raises_acceptance_window_lt_0.
tensorrtmax_input_len < 1max_input_len must be >= 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_engineparams_raises_max_input_len_lt_1.
tensorrtmax_num_tokens < 1max_num_tokens must be >= 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_engineparams_raises_max_num_tokens_lt_1.
tensorrtmax_seq_len < 1max_seq_len must be >= 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_engineparams_raises_max_seq_len_lt_1.
tensorrtpipeline_parallel_size < 1pipeline_parallel_size must be >= 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_engineparams_raises_pipeline_parallel_size_lt_1.
tensorrttensor_parallel_size < 1tensor_parallel_size must be >= 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_engineparams_raises_tensor_parallel_size_lt_1.
tensorrtfree_gpu_memory_fraction > 1kv_cache_config.free_gpu_memory_fraction must be a float between 0 and 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_kvcacheconfig_raises_free_gpu_memory_fraction_gt_1.
tensorrtfree_gpu_memory_fraction < 0kv_cache_config.free_gpu_memory_fraction must be a float between 0 and 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_kvcacheconfig_raises_free_gpu_memory_fraction_lt_0.
tensorrtmax_gpu_total_bytes < 0kv_cache_config.max_gpu_total_bytes must be non-negative, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_kvcacheconfig_raises_max_gpu_total_bytes_lt_0.
tensorrtmax_ngram_size <= 0speculative_config.max_ngram_size must be positive, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_lookaheadconfig_raises_max_ngram_size_le_0.
tensorrtmax_verification_set_size <= 0speculative_config.max_verification_set_size must be positive, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_lookaheadconfig_raises_max_verification_set_size_le_0.
tensorrtmax_window_size <= 0speculative_config.max_window_size must be positive, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_lookaheadconfig_raises_max_window_size_le_0.
tensorrtmax_batch_size < 0engine_params.max_batch_size must be non-negative, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_raises_max_batch_size_lt_0.
tensorrtmin_p > 1.0min_p must be in [0.0..1.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_samplingparams_raises_min_p_gt_1p0.
tensorrtmin_p < 0.0min_p must be in [0.0..1.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_samplingparams_raises_min_p_lt_0p0.
tensorrtn < 1n must be >= 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_samplingparams_raises_n_lt_1.
tensorrtrepetition_penalty <= 0.0repetition_penalty must be >= 0.0, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_samplingparams_raises_repetition_penalty_le_0p0.
tensorrttemperature < 0.0temperature must be >= 0.0, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_samplingparams_raises_temperature_lt_0p0.
tensorrttop_k < 0top_k must be >= 0, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_samplingparams_raises_top_k_lt_0.
tensorrttop_p > 1.0top_p must be in [0.0..1.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_samplingparams_raises_top_p_gt_1p0.
tensorrttop_p < 0.0top_p must be in [0.0..1.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule tensorrt_samplingparams_raises_top_p_lt_0p0.
transformerspad_token_id < 0pad_token_id should be positive.Adjust the field(s) so the condition no longer holds; see rule transformers_analyst_error_pad_token_id_90669ba0.
transformersload_in_4bit=True and load_in_8bit=Trueload_in_4bit and load_in_8bit are both True, but only one can be used at the same timeAdjust the field(s) so the condition no longer holds; see rule transformers_bnb_load_in_4bit_xor_load_in_8bit.
transformerscache_implementation is set and cache_implementation not in [static, offloaded_static, sliding_window, hybrid, hybrid_chunked, offloaded_hybrid, offloaded_hybrid_chunked, dynamic, dynamic_full, offloaded, quantized, paged]Invalid cache_implementation (nonsense). Choose one of: ('static', 'offloaded_static', 'sliding_window', 'hybrid', 'hybrid_chunked', 'offloaded_hybrid', 'offloaded_hybrid_chunked', 'dynamic', 'dynamic_full', 'offloaded', 'quantized', 'paged')Adjust the field(s) so the condition no longer holds; see rule transformers_cache_choice_cache_implementation_not_in_allowlist.
transformerscompile_config is set and type(compile_config) is not CompileConfigYou provided compile_config as an instance of <class 'str'>, but it must be an instance of CompileConfig.Adjust the field(s) so the condition no longer holds; see rule transformers_compile_config_type_compile_config_type_not_in_CompileConfig.
transformersearly_stopping is set and early_stopping not in [False, True, never]early_stopping must be a boolean or 'never', but is sometimes.Adjust the field(s) so the condition no longer holds; see rule transformers_early_stopping_type_early_stopping_not_in_allowlist.
transformersprompt_lookup_num_tokens < 1prompt_lookup_num_tokens must be >= 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_engineparams_raises_prompt_lookup_num_tokens_lt_1.
transformerstype(llm_int8_threshold) is not floatllm_int8_threshold must be a floatAdjust the field(s) so the condition no longer holds; see rule transformers_extractor_error_llm_int8_threshold_faf7fb57.
transformersnum_return_sequences is set and num_return_sequences > 1 and do_sample is unset and num_beams is unsetGreedy methods (do_sample != True) without beam search do not support num_return_sequences different than 1 (got {num_return_sequences}).Adjust the field(s) so the condition no longer holds; see rule transformers_extractor_error_num_return_sequences_do_sample_75f96548.
transformersnum_beams=1 and num_return_sequences > 1 and do_sample=FalseGreedy methods (do_sample != True) without beam search do not support num_return_sequences different than 1 (got 2).Adjust the field(s) so the condition no longer holds; see rule transformers_num_return_vs_beams_do_sample_eq_false_and_num_beams_eq_1.
transformersnum_beams < @transformers.sampling_params.num_return_sequencesnum_return_sequences (4) has to be smaller or equal to num_beams (2).Adjust the field(s) so the condition no longer holds; see rule transformers_num_return_vs_beams_num_beams_lt_num_return_sequences.
transformersnum_return_sequences > @transformers.engine_params.num_beamsnum_return_sequences has to be smaller or equal to num_beams.Adjust the field(s) so the condition no longer holds; see rule transformers_num_return_vs_beams_num_return_sequences_gt_num_beams.
transformersmax_new_tokens <= 0max_new_tokens must be greater than 0, but is -1.Adjust the field(s) so the condition no longer holds; see rule transformers_output_token_ids_max_new_tokens_le_zero.
transformerstype(bnb_4bit_quant_type) is not strbnb_4bit_quant_type must be a stringAdjust the field(s) so the condition no longer holds; see rule transformers_raises_bnb_4bit_quant_type_not_type_str.
transformerstype(bnb_4bit_use_double_quant) is not boolbnb_4bit_use_double_quant must be a booleanAdjust the field(s) so the condition no longer holds; see rule transformers_raises_bnb_4bit_use_double_quant_not_type_bool.
transformersearly_stopping not in [None, True, False, never]early_stopping must be a boolean or 'never', but is {early_stopping}.Adjust the field(s) so the condition no longer holds; see rule transformers_raises_early_stopping_not_in_set.
transformerstype(load_in_4bit) is not boolload_in_4bit must be a booleanAdjust the field(s) so the condition no longer holds; see rule transformers_raises_load_in_4bit_not_type_bool.
transformerstype(load_in_8bit) is not boolload_in_8bit must be a booleanAdjust the field(s) so the condition no longer holds; see rule transformers_raises_load_in_8bit_not_type_bool.
transformersepsilon_cutoff >= 1.0epsilon_cutoff has to be a float > 0 and < 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_epsilon_cutoff_ge_1p0.
transformersepsilon_cutoff <= 0.0epsilon_cutoff has to be a float > 0 and < 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_epsilon_cutoff_le_0p0.
transformerseta_cutoff >= 1.0eta_cutoff has to be a float > 0 and < 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_eta_cutoff_ge_1p0.
transformerseta_cutoff <= 0.0eta_cutoff has to be a float > 0 and < 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_eta_cutoff_le_0p0.
transformersmax_matching_ngram_size < 1max_matching_ngram_size must be > 0, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_max_matching_ngram_size_lt_1.
transformersmin_length < 0min_length has to be a non-negative integer, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_min_length_lt_0.
transformersmin_p > 1.0min_p must be in [0.0..1.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_min_p_gt_1p0.
transformersmin_p < 0.0min_p must be in [0.0..1.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_min_p_lt_0p0.
transformersrepetition_penalty <= 0.0repetition_penalty must be >= 0.0, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_repetition_penalty_le_0p0.
transformerstemperature < 0.0temperature must be >= 0.0, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_temperature_lt_0p0.
transformerstop_h > 1.0top_h must be in the range (0, 1], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_top_h_gt_1p0.
transformerstop_h <= 0.0top_h must be in the range (0, 1], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_top_h_le_0p0.
transformerstop_k < 0top_k must be >= 0, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_top_k_lt_0.
transformerstop_p > 1.0top_p must be in [0.0..1.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_top_p_gt_1p0.
transformerstop_p < 0.0top_p must be in [0.0..1.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_top_p_lt_0p0.
transformerstypical_p >= 1.0typical_p has to be a float > 0 and < 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_typical_p_ge_1p0.
transformerstypical_p <= 0.0typical_p has to be a float > 0 and < 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_typical_p_le_0p0.
transformerswatermarking_config is set and type(watermarking_config) is not WatermarkingConfig, SynthIDTextWatermarkingConfigwatermarking_config must be a WatermarkingConfig or SynthIDTextWatermarkingConfig instance.Adjust the field(s) so the condition no longer holds; see rule transformers_samplingparams_raises_watermarking_config_type_invalid.
vllmcudagraph_mm_encoder=True and encoder_cudagraph_max_images_per_batch < 0encoder_cudagraph_max_images_per_batch must be non-negative (0 = auto-infer), got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_compilationconfig_raises_encoder_cudagraph_max_images_per_batch_lt_0.
vllmkv_cache_memory_bytes < 1kv_cache_memory_bytes must be >= 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_engineparams_raises_kv_cache_memory_bytes_lt_1.
vllmpipeline_parallel_size < 1pipeline_parallel_size must be >= 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_engineparams_raises_pipeline_parallel_size_lt_1.
vllmtensor_parallel_size < 1tensor_parallel_size must be >= 1, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_engineparams_raises_tensor_parallel_size_lt_1.
vllmdata_parallel_size <= 1 and data_parallel_external_lb is setdata_parallel_external_lb can only be set when data_parallel_size > 1Adjust the field(s) so the condition no longer holds; see rule vllm_parallelconfig_raises_data_parallel_external_lb_set_true.
vllmdata_parallel_size_local > @data_parallel_sizedata_parallel_size_local ({data_parallel_size_local}) must be <= data_parallel_size ({data_parallel_size})Adjust the field(s) so the condition no longer holds; see rule vllm_parallelconfig_raises_data_parallel_size_local_gt_ref_data_parallel_size.
vllmfrequency_penalty > 2.0frequency_penalty must be in [-2.0..2.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_frequency_penalty_gt_2p0.
vllmfrequency_penalty < -2.0frequency_penalty must be in [-2.0..2.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_frequency_penalty_lt_neg2p0.
vllmmin_p > 1.0min_p must be in [0.0..1.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_min_p_gt_1p0.
vllmmin_p < 0.0min_p must be in [0.0..1.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_min_p_lt_0p0.
vllmmax_tokens is set and min_tokens > @max_tokensmin_tokens must be less than or equal to max_tokens={max_tokens}, got {min_tokens}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_min_tokens_gt_ref_max_tokens.
vllmmin_tokens < 0min_tokens must be greater than or equal to 0, got {min_tokens}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_min_tokens_lt_0.
vllmn < 1n must be at least 1, got {n}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_n_lt_1.
vllmtype(n) is not intn must be an int, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_n_not_type_int.
vllmpresence_penalty > 2.0presence_penalty must be in [-2.0..2.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_presence_penalty_gt_2p0.
vllmpresence_penalty < -2.0presence_penalty must be in [-2.0..2.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_presence_penalty_lt_neg2p0.
vllmrepetition_penalty <= 0.0repetition_penalty must be greater than zero, got {repetition_penalty}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_repetition_penalty_le_0p0.
vllmtemperature < 0.0temperature must be non-negative, got {temperature}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_temperature_lt_0p0.
vllmtop_k < -1top_k must be 0 (disable), or at least 1, got {top_k}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_top_k_lt_neg1.
vllmtype(top_k) is not inttop_k must be an integer, got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_top_k_not_type_int.
vllmtop_p > 1.0top_p must be in [0.0..1.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_top_p_gt_1p0.
vllmtop_p <= 0.0top_p must be in [0.0..1.0], got {declared_value}.Adjust the field(s) so the condition no longer holds; see rule vllm_samplingparams_raises_top_p_le_0p0.
vllmmax_num_partial_prefills > 1 and long_prefill_token_threshold > @max_model_lenlong_prefill_token_threshold ({long_prefill_token_threshold}) cannot be greater than the max_model_len ({max_model_len}).Adjust the field(s) so the condition no longer holds; see rule vllm_schedulerconfig_raises_long_prefill_token_threshold_gt_ref_max_model_len.
vllmmax_long_partial_prefills > @max_num_partial_prefillsself.max_long_partial_prefills={max_long_partial_prefills} must be less than or equal to self.max_num_partial_prefills={max_num_partial_prefills}.Adjust the field(s) so the condition no longer holds; see rule vllm_schedulerconfig_raises_max_long_partial_prefills_gt_ref_max_num_partial_prefills.
vllmmax_num_batched_tokens < @max_model_len and enable_chunked_prefill is unsetmax_num_batched_tokens ({max_num_batched_tokens}) is smaller than max_model_len ({max_model_len}). This effectively limits the maximum sequence length to max_num_batched_tokens and makes vLLM reject longer sequences. Please increase max_num_batched_tokens or decrease max_model_len.Adjust the field(s) so the condition no longer holds; see rule vllm_schedulerconfig_raises_max_num_batched_tokens_lt_ref_max_model_len.
vllmmax_num_batched_tokens < @max_num_seqsmax_num_batched_tokens ({max_num_batched_tokens}) must be greater than or equal to max_num_seqs ({max_num_seqs}).Adjust the field(s) so the condition no longer holds; see rule vllm_schedulerconfig_raises_max_num_batched_tokens_lt_ref_max_num_seqs.

Dormant Parameters

These combinations pass validation, but the engine silently normalises or ignores the declared field: the declared value is not the effective value. The study planner deduplicates configs that differ only in a dormant field, so the GPU runs such a cell once. Normalised fields names the paths the engine drives back to their default.

EngineCombinationEffectNormalised fields
transformersuse_cache=FalseYou have not set use_cache to True, but cache_implementation is set to static.cache_implementation will have no effect.-
transformersdo_sample=False and epsilon_cutoff is setdo_sample is not set to True. However, epsilon_cutoff is set to {declared_value} -- this flag is only used in sample-based generation modes. You should set do_sample=True or unset epsilon_cutoff.-
transformersdo_sample=False and eta_cutoff is setdo_sample is not set to True. However, eta_cutoff is set to {declared_value} -- this flag is only used in sample-based generation modes. You should set do_sample=True or unset eta_cutoff.-
transformersdo_sample=False and min_p is setdo_sample is not set to True. However, min_p is set to {declared_value} -- this flag is only used in sample-based generation modes. You should set do_sample=True or unset min_p.-
transformersdo_sample=False and temperature is setdo_sample is not set to True. However, temperature is set to {declared_value} -- this flag is only used in sample-based generation modes. You should set do_sample=True or unset temperature.-
transformersdo_sample=False and top_h is setdo_sample is not set to True. However, top_h is set to {declared_value} -- this flag is only used in sample-based generation modes. You should set do_sample=True or unset top_h.-
transformersdo_sample=False and top_k is setdo_sample is not set to True. However, top_k is set to {declared_value} -- this flag is only used in sample-based generation modes. You should set do_sample=True or unset top_k.-
transformersdo_sample=False and top_p is setdo_sample is not set to True. However, top_p is set to {declared_value} -- this flag is only used in sample-based generation modes. You should set do_sample=True or unset top_p.-
transformersdo_sample=False and typical_p is setdo_sample is not set to True. However, typical_p is set to {declared_value} -- this flag is only used in sample-based generation modes. You should set do_sample=True or unset typical_p.-
transformersreturn_dict_in_generate=False and output_attentions is setreturn_dict_in_generate is NOT set to True, but output_attentions is. When return_dict_in_generate is not True, output_attentions is ignored.-
transformersreturn_dict_in_generate=False and output_hidden_states is setreturn_dict_in_generate is NOT set to True, but output_hidden_states is. When return_dict_in_generate is not True, output_hidden_states is ignored.-
transformersreturn_dict_in_generate=False and output_logits is setreturn_dict_in_generate is NOT set to True, but output_logits is. When return_dict_in_generate is not True, output_logits is ignored.-
transformersreturn_dict_in_generate=False and output_scores is setreturn_dict_in_generate is NOT set to True, but output_scores is. When return_dict_in_generate is not True, output_scores is ignored.-
transformersnum_beams=1 and early_stopping is setnum_beams is set to 1. However, early_stopping is set to {declared_value} -- this flag is only used in beam-based generation modes. You should set num_beams>1 or unset early_stopping.-
transformersnum_beams=1 and length_penalty is setnum_beams is set to 1. However, length_penalty is set to {declared_value} -- this flag is only used in beam-based generation modes. You should set num_beams>1 or unset length_penalty.-
vllmall2all_backend in [pplx, naive]Enforced by rule vllm_parallelconfig_dormant_all2all_backend_in.all2all_backend
vllmdistributed_executor_backend=external_launcher and data_parallel_rank is setEnforced by rule vllm_parallelconfig_dormant_data_parallel_rank_set_true.data_parallel_rank
vllmseed=-1Enforced by rule vllm_samplingparams_dormant_seed_eq_neg1.seed

Engine Capability Matrix

FeatureTransformersvLLMTensorRT
Tensor ParallelYesYesYes
BitsAndBytes (4-bit)YesNoNo
BitsAndBytes (8-bit)YesNoNo
Prefix CachingNoYesNo
torch.compileYesNoNo
Speculative DecodingYesYesNo
Static KV CacheYesNoNo

Notes:

  • vLLM supports 4-bit via AWQ/GPTQ quantized models, not bitsandbytes

Memory-Constrained (Consumer GPU)

engine: transformers
transformers:
engine_params:
load_in_4bit: true
bnb_4bit_quant_type: nf4

High Throughput (Production)

engine: vllm
vllm:
engine_params:
gpu_memory_utilization: 0.9
enable_prefix_caching: true

Maximum Performance (Ampere+)

engine: tensorrt
tensorrt:
engine_params:
dtype: float16
quant_config:
quant_algo: FP8 # Hopper only