For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /get-started.md).
Python module
max.pipelines.architectures.unified_dflash2_qwen3_5
Qwen3.5 fused with a DFlash2 block drafter for speculative decoding.
UnifiedDflash2Qwen3_5Config
class max.pipelines.architectures.unified_dflash2_qwen3_5.UnifiedDflash2Qwen3_5Config(*, target, draft, draft_kv_params, speculative_config, target_layer_ids=<factory>, layer_types=<factory>, num_target_layers=None, mask_token_id=0, block_size=0, conv_kernel_size=0, conv_group_size=0, selector_rank=0, selector_top_k=0)
Bases: ArchConfigWithKVCache
Target, drafter and the structural constants that bind them.
-
Parameters:
-
- target (Qwen3_5Config)
- draft (Llama3Config)
- draft_kv_params (KVCacheParams)
- speculative_config (SpeculativeConfig)
- target_layer_ids (list[int])
- layer_types (list[str])
- num_target_layers (int | None)
- mask_token_id (int)
- block_size (int)
- conv_kernel_size (int)
- conv_group_size (int)
- selector_rank (int)
- selector_top_k (int)
DEFAULT_ENCODING
DEFAULT_ENCODING: ClassVar[max.pipelines.lib.config.SupportedEncoding] = 'bfloat16'
SUPPORTED_ENCODINGS
SUPPORTED_ENCODINGS: ClassVar[set[max.pipelines.lib.config.SupportedEncoding]] = {'bfloat16', 'float32', 'float4_e2m1fnx2', 'float8_e4m3fn'}
block_size
block_size: int = 0
calculate_max_seq_len()
classmethod calculate_max_seq_len(huggingface_config, model_config)
Returns the resolved maximum sequence length.
Bounds or defaults the user’s model_config.max_length with the
model’s own limits. Construction runs this once and stores the
result on model_config.max_length; memory planning may lower
it further, but only on the memory plan.
-
Parameters:
-
- huggingface_config (AutoConfig) – The HuggingFace config to read model bounds from.
- model_config (MAXModelConfig) – The model config whose
max_lengthcarries the user’s setting.
-
Return type:
conv_group_size
conv_group_size: int = 0
conv_kernel_size
conv_kernel_size: int = 0
devices
draft
draft: Llama3Config
draft_kv_params
draft_kv_params: KVCacheParams
get_kv_params()
get_kv_params()
KV cache parameters to use when running the model.
-
Return type:
get_max_seq_len()
get_max_seq_len()
Returns the effective maximum sequence length for the model.
For configs that store a deployment length, this is the value
initialize received; for metadata-only configs it derives from
the checkpoint.
-
Return type:
initialize()
classmethod initialize(pipeline_config, model_config=None, *, max_seq_len)
Initialize the config from a PipelineConfig.
-
Parameters:
-
- pipeline_config (PipelineConfig) – The pipeline configuration.
- model_config (MAXModelConfig | None) – The model configuration to read from. When
None(the default),pipeline_config.modelis used. Pass an explicit config (e.g.pipeline_config.draft_model) to initialize the arch config for a different model. - max_seq_len (int) – The effective maximum sequence length to store on
the config. The value is received, never derived here: the
pipeline model passes the memory plan’s VRAM-clamped length,
while memory planning (which runs before a plan exists)
passes the construction-resolved
model_config.max_length. Configs whose sequence length is pure model metadata (e.g. diffusion components) ignore it.
-
Return type:
layer_types
mask_token_id
mask_token_id: int = 0
num_speculative_tokens
property num_speculative_tokens: int
the anchor slot never predicts.
-
Type:
-
Mask slots per block
num_target_layers
Target depth the drafter was trained against; None when the
checkpoint omits the optional field.
selector_rank
selector_rank: int = 0
selector_top_k
selector_top_k: int = 0
speculative_config
speculative_config: SpeculativeConfig
target
target: Qwen3_5Config
target_layer_ids
validate_dflash2_fields()
validate_dflash2_fields()
Checks the drafter against the target it was trained to draft for.
Every one of these is a silent-wrong-answer if it is wrong: a bad tap
id reads a different layer, a hidden or vocab mismatch misreads the
borrowed fc / lm_head contract, and a bad mask id drafts from
an embedding row the drafter never saw.
-
Return type:
-
None
UnifiedDflash2Qwen3_5Inputs
class max.pipelines.architectures.unified_dflash2_qwen3_5.UnifiedDflash2Qwen3_5Inputs(tokens, input_row_offsets, host_input_row_offsets, return_n_logits, data_parallel_splits, signal_buffers, batch_context_lengths, live_conv_pools, live_recurrent_pools, live_conv_row_ids, live_recurrent_row_ids, shadow_conv_pools, shadow_recurrent_pools, *, kv_cache_inputs=None, lora_buffers=(), vision_embeddings=<factory>, vision_scatter_indices=<factory>, hidden_states=None, draft_tokens=None, draft_probs_full=None, seed=None, temperature=None, top_k=None, max_k=None, top_p=None, min_top_p=None, in_thinking_phase=None, pinned_bitmask=None, wait_payload=None, device_bitmask_scratch=None, structured_output=False, sampled_draft_proposal=False)
Bases: UnifiedSpecDecodeInputs
Inputs for the fused Qwen3.5 DFlash2 graph.
Identical to the Qwen3.5 MTP graph’s packing: the canonical spec-decode prefix and tail, then this target’s state-pool tail. Only the draft KV leaf’s shapes differ between the two graphs.
-
Parameters:
-
- tokens (Buffer)
- input_row_offsets (Buffer)
- host_input_row_offsets (Buffer)
- return_n_logits (Buffer)
- data_parallel_splits (Buffer)
- signal_buffers (list[Buffer])
- batch_context_lengths (list[Buffer])
- live_conv_pools (list[Buffer])
- live_recurrent_pools (list[Buffer])
- live_conv_row_ids (list[Buffer])
- live_recurrent_row_ids (list[Buffer])
- shadow_conv_pools (list[Buffer])
- shadow_recurrent_pools (list[Buffer])
- kv_cache_inputs (KVCacheInputsInterface[Buffer, Buffer] | None)
- lora_buffers (tuple[Buffer, ...])
- vision_embeddings (list[Buffer])
- vision_scatter_indices (list[Buffer])
- hidden_states (Buffer | list[Buffer] | None)
- draft_tokens (Buffer | None)
- draft_probs_full (Buffer | None)
- seed (Buffer | None)
- temperature (Buffer | None)
- top_k (Buffer | None)
- max_k (Buffer | None)
- top_p (Buffer | None)
- min_top_p (Buffer | None)
- in_thinking_phase (Buffer | None)
- pinned_bitmask (Buffer | None)
- wait_payload (Buffer | None)
- device_bitmask_scratch (Buffer | None)
- structured_output (bool)
- sampled_draft_proposal (bool)
batch_context_lengths
buffers
Returns positional Buffer inputs for model ABI calls.
data_parallel_splits
data_parallel_splits: Buffer
host_input_row_offsets
host_input_row_offsets: Buffer
input_row_offsets
input_row_offsets: Buffer
live_conv_pools
live_conv_row_ids
live_recurrent_pools
live_recurrent_row_ids
return_n_logits
return_n_logits: Buffer
shadow_conv_pools
shadow_recurrent_pools
signal_buffers
tokens
tokens: Buffer
UnifiedDflash2Qwen3_5Model
class max.pipelines.architectures.unified_dflash2_qwen3_5.UnifiedDflash2Qwen3_5Model(pipeline_config, session, devices, kv_cache_config, weights, *, memory_plan, adapter=None, return_logits=ReturnLogits.LAST_TOKEN, return_hidden_states=ReturnHiddenStates.NONE, max_batch_size=1)
Bases: _UnifiedSpecDecodeModelMixin, AlwaysSignalBuffersMixin, GraphPipelineModelWithKVCache[Qwen3VLTextAndVisionContext]
Qwen3.5 with a DFlash2 block drafter, in one compiled graph.
-
Parameters:
-
- pipeline_config (PipelineConfig)
- session (InferenceSession)
- devices (list[Device])
- kv_cache_config (KVCacheConfig)
- weights (Weights)
- memory_plan (MemoryPlan)
- adapter (WeightsAdapter | None)
- return_logits (ReturnLogits)
- return_hidden_states (ReturnHiddenStates)
- max_batch_size (int)
batch_processor_cls
batch_processor_cls
alias of UnifiedDflash2Qwen3_5BatchProcessor
get_kv_params()
classmethod get_kv_params(huggingface_config, pipeline_config, devices, kv_cache_config, cache_dtype)
The target’s full-attention leaf plus the drafter’s windowed one.
Called during memory planning, before _create_model_config; both
must agree, so both go through the same two constructors.
-
Parameters:
-
- huggingface_config (PreTrainedConfig)
- pipeline_config (PipelineConfig)
- devices (list[DeviceRef])
- kv_cache_config (KVCacheConfig)
- cache_dtype (DType)
-
Return type:
model
model: Model
model_config_cls
model_config_cls
alias of UnifiedDflash2Qwen3_5Config