core.models.hybrid.layers.hybrid_hyper_connection#
Module Contents#
Classes#
Layer-boundary mHC wrapper for HybridStack layers. |
API#
- class core.models.hybrid.layers.hybrid_hyper_connection.HyperConnectionHybridLayer(
- config: megatron.core.transformer.TransformerConfig,
- layer: megatron.core.transformer.module.MegatronModule,
Bases:
megatron.core.transformer.module.MegatronModuleLayer-boundary mHC wrapper for HybridStack layers.
Hybrid layers already own their local residual paths. Each wrapped layer is treated as one function by aggregating n streams to its input, running the existing layer, and feeding only the layer delta back through mHC expansion.
This wrapper nests the inner layer under inner_layer. Checkpoints cannot switch between mHC-enabled and ordinary HybridStacks without key migration.
Initialization
- mamba_state_shapes_per_request() Optional[Tuple[Tuple[int], Tuple[int]]]#
Delegate Mamba inference state shape requests to the wrapped layer.
- _call_inner_layer(
- hidden_states: torch.Tensor,
- attention_mask: torch.Tensor,
- inference_context: Optional[megatron.core.inference.contexts.BaseInferenceContext],
- rotary_pos_emb: Optional[torch.Tensor],
- sequence_len_offset: Optional[torch.Tensor],
- packed_seq_params: Optional[megatron.core.packed_seq_params.PackedSeqParams],
- packed_sequence_cp_metadata: Optional[megatron.core.ssm.context_parallel.chunkwise.PackedSequenceCPMetadata],
- padding_mask: Optional[torch.Tensor],
- _call_inner_transformer_layer_without_local_bda(
- hidden_states: torch.Tensor,
- attention_mask: torch.Tensor,
- inference_context: Optional[megatron.core.inference.contexts.BaseInferenceContext],
- rotary_pos_emb: Optional[torch.Tensor],
- sequence_len_offset: Optional[torch.Tensor],
- packed_seq_params: Optional[megatron.core.packed_seq_params.PackedSeqParams],
- padding_mask: Optional[torch.Tensor],
Return a raw branch output for split Hybrid TransformerLayer instances.
Hybrid layers are normally attention-only or MLP/MoE-only. For those layers, bypass the inner layer’s local residual/BDA and let the mHC BDA own that operation directly.
- forward(
- hidden_states: torch.Tensor,
- attention_mask: torch.Tensor,
- inference_context: Optional[megatron.core.inference.contexts.BaseInferenceContext] = None,
- rotary_pos_emb: Optional[torch.Tensor] = None,
- sequence_len_offset: Optional[torch.Tensor] = None,
- packed_seq_params: Optional[megatron.core.packed_seq_params.PackedSeqParams] = None,
- padding_mask: Optional[torch.Tensor] = None,
- packed_sequence_cp_metadata: Optional[megatron.core.ssm.context_parallel.chunkwise.PackedSequenceCPMetadata] = None,
- mhc_recompute_manager=None,
Run the wrapped hybrid layer through one layer-boundary mHC update.