[Bugfix] Fix Ministral3 init argument forwarding (#29111)

This commit is contained in:
Xiaoyu Zhang
2026-06-25 18:26:45 +08:00
committed by GitHub
parent e4976683f4
commit ddda4f9028
+37 -17
View File
@@ -31,6 +31,7 @@ class Ministral3Attention(LlamaAttention):
num_heads: int,
num_kv_heads: int,
layer_id: int = 0,
start_layer: int = 0,
rope_theta: float = 1000000.0,
rope_scaling: Optional[Dict[str, Any]] = {},
rope_is_neox_style: bool = True,
@@ -40,18 +41,19 @@ class Ministral3Attention(LlamaAttention):
bias: bool = False,
) -> None:
super().__init__(
config,
hidden_size,
num_heads,
num_kv_heads,
layer_id,
rope_theta,
rope_scaling,
rope_is_neox_style,
max_position_embeddings,
quant_config,
prefix,
bias,
config=config,
hidden_size=hidden_size,
num_heads=num_heads,
num_kv_heads=num_kv_heads,
layer_id=layer_id,
start_layer=start_layer,
rope_theta=rope_theta,
rope_scaling=rope_scaling,
rope_is_neox_style=rope_is_neox_style,
max_position_embeddings=max_position_embeddings,
quant_config=quant_config,
prefix=prefix,
bias=bias,
)
# Ministral3 specific: llama 4 style scaling beta
self.llama_4_scaling_beta = config.rope_parameters.get("llama_4_scaling_beta")
@@ -95,14 +97,28 @@ class Ministral3Attention(LlamaAttention):
class Ministral3DecoderLayer(LlamaDecoderLayer):
def __init__(self, config, layer_id=0, quant_config=None, prefix=""):
super().__init__(config, layer_id, quant_config, prefix)
def __init__(
self,
config,
layer_id=0,
start_layer=0,
quant_config=None,
prefix="",
):
super().__init__(
config=config,
layer_id=layer_id,
start_layer=start_layer,
quant_config=quant_config,
prefix=prefix,
)
self.self_attn = Ministral3Attention(
config=config,
hidden_size=self.hidden_size,
num_heads=config.num_attention_heads,
num_kv_heads=config.num_key_value_heads,
layer_id=layer_id,
start_layer=start_layer,
rope_theta=config.rope_parameters["rope_theta"],
rope_scaling=config.rope_parameters, # rope_scaling is rope_parameters in Ministral3Config
max_position_embeddings=getattr(
@@ -123,12 +139,16 @@ class Ministral3Model(LlamaModel):
prefix: str = "",
) -> None:
# Override layer creation to use Ministral3Attention
super().__init__(config, quant_config, prefix)
super().__init__(config=config, quant_config=quant_config, prefix=prefix)
self.layers, self.start_layer, self.end_layer = make_layers(
config.num_hidden_layers,
lambda idx, prefix: Ministral3DecoderLayer(
config=config, quant_config=quant_config, layer_id=idx, prefix=prefix
config=config,
quant_config=quant_config,
layer_id=idx,
start_layer=self.start_layer,
prefix=prefix,
),
pp_rank=self.pp_group.rank_in_group,
pp_size=self.pp_group.world_size,
@@ -143,7 +163,7 @@ class Ministral3ForCausalLM(LlamaForCausalLM):
quant_config: Optional[QuantizationConfig] = None,
prefix: str = "",
):
return Ministral3Model(config, quant_config, prefix=prefix)
return Ministral3Model(config=config, quant_config=quant_config, prefix=prefix)
EntryClass = [Ministral3ForCausalLM]