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.llama3
Llama 3 transformer architecture for text generation.
Llama3BatchProcessor
class max.pipelines.architectures.llama3.Llama3BatchProcessor(config, runtime)
Bases: RaggedBatchProcessor[TextContext, Llama3Inputs]
Ragged batching with pinned host buffers and optional DP / LoRA.
-
Parameters:
-
- config (ArchConfig)
- runtime (BatchProcessorRuntime)
get_symbolic_inputs()
get_symbolic_inputs(*, kv_params, device_refs)
Returns non-KV graph input types in execution order.
-
Parameters:
-
- kv_params (KVCacheParamInterface)
- device_refs (list[DeviceRef])
-
Return type:
prepare_initial_token_inputs()
prepare_initial_token_inputs(replica_batches, kv_cache_inputs=None, return_n_logits=1)
Prepares inputs for the first execution step of a batch.
-
Parameters:
-
- replica_batches (Sequence[Sequence[TextContext]])
- kv_cache_inputs (KVCacheInputsInterface[Buffer, Buffer] | None)
- return_n_logits (int)
-
Return type:
process_outputs()
process_outputs(outputs)
Maps raw Model.execute buffers to ModelOutputs.
-
Parameters:
-
Return type:
Llama3Config
class max.pipelines.architectures.llama3.Llama3Config(*, hidden_size, num_attention_heads, num_key_value_heads, num_hidden_layers, rope_theta, rope_scaling_params, max_seq_len, intermediate_size, interleaved_rope_weights, vocab_size, dtype, model_quantization_encoding, quantization_config, kv_params, return_logits=ReturnLogits.LAST_TOKEN, norm_method='rms_norm', norm_dtype=None, attention_bias=False, rms_norm_eps=None, tie_word_embeddings=False, stacked_mlp=False, stacked_qkv=False, attention_multiplier, embedding_multiplier, residual_multiplier, devices, clip_qkv, quant_config=None, lora_config=None, longrope_scaling_params=None, logits_scaling=1.0, return_hidden_states=ReturnHiddenStates.NONE, target_layer_ids=None, use_subgraphs=True, data_parallel_degree=1, sliding_window=None, quantization_encoding=None)
Bases: ArchConfigWithStoredKVParams, ArchConfigWithKVCache
Model configuration for Llama3 graph construction/execution.
-
Parameters:
-
- hidden_size (int)
- num_attention_heads (int)
- num_key_value_heads (int)
- num_hidden_layers (int)
- rope_theta (float)
- rope_scaling_params (Llama3RopeScalingParams | None)
- max_seq_len (int)
- intermediate_size (int)
- interleaved_rope_weights (bool)
- vocab_size (int)
- dtype (DType)
- model_quantization_encoding (QuantizationEncoding | None)
- quantization_config (QuantizationConfig | None)
- kv_params (KVCacheParams)
- return_logits (ReturnLogits)
- norm_method (Literal['rms_norm'] | Literal['layer_norm'])
- norm_dtype (DType | None)
- attention_bias (bool)
- rms_norm_eps (float | None)
- tie_word_embeddings (bool)
- stacked_mlp (bool)
- stacked_qkv (bool)
- attention_multiplier (float)
- embedding_multiplier (float)
- residual_multiplier (float)
- devices (list[DeviceRef])
- clip_qkv (float | None)
- quant_config (QuantConfig | None)
- lora_config (LoRAConfig | None)
- longrope_scaling_params (LongRoPEScalingParams | None)
- logits_scaling (float)
- return_hidden_states (ReturnHiddenStates)
- target_layer_ids (list[int] | None)
- use_subgraphs (bool)
- data_parallel_degree (int)
- sliding_window (int | None)
- quantization_encoding (SupportedEncoding | None)
DEFAULT_ENCODING
DEFAULT_ENCODING: ClassVar[SupportedEncoding] = 'q4_k'
SUPPORTED_ENCODINGS
SUPPORTED_ENCODINGS: ClassVar[set[SupportedEncoding]] = {'bfloat16', 'float32', 'float4_e2m1fnx2', 'float8_e4m3fn', 'gptq', 'q4_0', 'q4_k', 'q6_k'}
attention_bias
attention_bias: bool = False
attention_multiplier
attention_multiplier: float
calculate_attention_multiplier()
static calculate_attention_multiplier(huggingface_config)
The attention multiplier is a scalar that scales the attention scores. It is used to control the variance of the attention scores.
This function is used to get the attention multiplier from the huggingface config. If the attention multiplier is not set, it will be calculated as the square root of 1.0 divided by the head dimension.
-
Parameters:
-
huggingface_config (AutoConfig)
-
Return type:
clip_qkv
construct_kv_params()
classmethod construct_kv_params(huggingface_config, pipeline_config, devices, kv_cache_config, cache_dtype)
Grouped-attention KV with EAGLE draft-token count when speculative is on.
-
Parameters:
-
- huggingface_config (AutoConfig)
- pipeline_config (PipelineConfig)
- devices (list[DeviceRef])
- kv_cache_config (KVCacheConfig)
- cache_dtype (DType)
-
Return type:
data_parallel_degree
data_parallel_degree: int = 1
devices
dtype
dtype: DType
embedding_multiplier
embedding_multiplier: float
finalize()
finalize(huggingface_config, state_dict, return_logits, return_hidden_states=ReturnHiddenStates.NONE, norm_method='rms_norm', attention_bias=False)
Define parameters that can’t be determined just from the pipeline config.
-
Parameters:
-
- huggingface_config (AutoConfig)
- state_dict (dict[str, WeightData])
- return_logits (ReturnLogits)
- return_hidden_states (ReturnHiddenStates)
- norm_method (Literal['rms_norm', 'layer_norm'])
- attention_bias (bool)
-
Return type:
-
None
get_num_layers()
static get_num_layers(huggingface_config)
Layer count for the decoder stack (override when HF uses a different field).
-
Parameters:
-
huggingface_config (AutoConfig)
-
Return type:
hidden_size
hidden_size: int
initialize()
classmethod initialize(pipeline_config, model_config=None)
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.
-
Return type:
initialize_from_config()
classmethod initialize_from_config(pipeline_config, huggingface_config, model_config=None)
-
Parameters:
-
- pipeline_config (PipelineConfig)
- huggingface_config (AutoConfig)
- model_config (MAXModelConfig | None)
-
Return type:
interleaved_rope_weights
interleaved_rope_weights: bool
intermediate_size
intermediate_size: int
kv_params
kv_params: KVCacheParams
logits_scaling
logits_scaling: float = 1.0
longrope_scaling_params
longrope_scaling_params: LongRoPEScalingParams | None = None
lora_config
lora_config: LoRAConfig | None = None
max_seq_len
max_seq_len: int
model_quantization_encoding
model_quantization_encoding: QuantizationEncoding | None
norm_dtype
norm_method
norm_method: Literal['rms_norm'] | Literal['layer_norm'] = 'rms_norm'
num_attention_heads
num_attention_heads: int
num_hidden_layers
num_hidden_layers: int
num_key_value_heads
num_key_value_heads: int
quant_config
quant_config: QuantConfig | None = None
quantization_config
quantization_config: QuantizationConfig | None
quantization_encoding
quantization_encoding: SupportedEncoding | None = None
residual_multiplier
residual_multiplier: float
return_hidden_states
return_hidden_states: ReturnHiddenStates = 'none'
return_logits
return_logits: ReturnLogits = 'last_token'
rms_norm_eps
rope_scaling_params
rope_scaling_params: Llama3RopeScalingParams | None
rope_theta
rope_theta: float
sliding_window
stacked_mlp
stacked_mlp: bool = False
stacked_qkv
stacked_qkv: bool = False
target_layer_ids
tie_word_embeddings
tie_word_embeddings: bool = False
use_subgraphs
use_subgraphs: bool = True
vocab_size
vocab_size: int
Llama3Inputs
class max.pipelines.architectures.llama3.Llama3Inputs(tokens, input_row_offsets, signal_buffers, return_n_logits, data_parallel_splits=None, *, kv_cache_inputs=None, lora=None, lora_buffers=(), vision_embeddings=<factory>, vision_scatter_indices=<factory>, hidden_states=None)
Bases: ModelInputs
A class representing inputs for the Llama3 model.
This class encapsulates the input tensors required for the Llama3 model execution.
-
Parameters:
-
- tokens (Buffer)
- input_row_offsets (Buffer)
- signal_buffers (list[Buffer])
- return_n_logits (Buffer)
- data_parallel_splits (Buffer | Sequence[Sequence[int]] | None)
- kv_cache_inputs (KVCacheInputsInterface[Buffer, Buffer] | None)
- lora (LoRAInputs | None)
- lora_buffers (tuple[Buffer, ...])
- vision_embeddings (list[Buffer])
- vision_scatter_indices (list[Buffer])
- hidden_states (Buffer | list[Buffer] | None)
buffers
Returns positional Buffer inputs for model ABI calls.
data_parallel_splits
data_parallel_splits: Buffer | Sequence[Sequence[int]] | None = None
Tensor containing the data parallel splits.
input_row_offsets
input_row_offsets: Buffer
Tensor containing the offsets for each row in the ragged input sequence.
return_n_logits
return_n_logits: Buffer
signal_buffers
Device buffers used for synchronization in communication collectives.
tokens
tokens: Buffer
Tensor containing the input token IDs.
Llama3Model
class max.pipelines.architectures.llama3.Llama3Model(pipeline_config, session, devices, kv_cache_config, weights, adapter=None, return_logits=ReturnLogits.LAST_TOKEN, return_hidden_states=ReturnHiddenStates.NONE, max_batch_size=1)
Bases: LlamaModelBase
Llama 3 pipeline model implementation.
-
Parameters:
-
- pipeline_config (PipelineConfig) – The configuration for this pipeline.
- session (InferenceSession) – The container for the runtime for this model.
- devices (list[Device])
- kv_cache_config (KVCacheConfig)
- weights (Weights)
- adapter (WeightsAdapter | None)
- return_logits (ReturnLogits)
- return_hidden_states (ReturnHiddenStates)
- max_batch_size (int)
config_class
config_class
alias of Llama3Config
norm_method
norm_method: Literal['rms_norm'] | Literal['layer_norm'] = 'rms_norm'
Normalization layer.
LlamaModelBase
class max.pipelines.architectures.llama3.LlamaModelBase(pipeline_config, session, devices, kv_cache_config, weights, adapter=None, return_logits=ReturnLogits.LAST_TOKEN, return_hidden_states=ReturnHiddenStates.NONE, max_batch_size=1)
Bases: LogProbabilitiesMixin, GraphPipelineModelWithKVCache[TextContext]
Base Llama pipeline model implementation.
-
Parameters:
-
- pipeline_config (PipelineConfig) – The configuration for this pipeline.
- session (InferenceSession) – The container for the runtime for this model.
- devices (list[Device])
- kv_cache_config (KVCacheConfig)
- weights (Weights)
- adapter (WeightsAdapter | None)
- return_logits (ReturnLogits)
- return_hidden_states (ReturnHiddenStates)
- max_batch_size (int)
attention_bias
attention_bias: bool = False
Whether to use attention bias.
batch_processor_cls
batch_processor_cls
alias of Llama3BatchProcessor
execute()
execute(model_inputs)
Executes the graph with the given inputs.
-
Parameters:
-
model_inputs (ModelInputs) – The model inputs to execute, containing tensors and any other required data for model execution.
-
Returns:
-
ModelOutputs containing the pipeline’s output tensors.
-
Return type:
This is an abstract method that must be implemented by concrete PipelineModels to define their specific execution logic.
model
model: Model
Compiled and initialized model ready for inference.
model_config_cls
model_config_cls
alias of Llama3Config
norm_method
norm_method: Literal['rms_norm'] | Literal['layer_norm']
Normalization layer.
prepare_initial_token_inputs()
prepare_initial_token_inputs(replica_batches, kv_cache_inputs=None, return_n_logits=1)
Delegates to the batch processor and narrows to Llama3Inputs.
-
Parameters:
-
Return type:
state_dict
Weights to load into the model.