Instructions to use inclusionAI/Ling-3.1-flash with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Inference
- HuggingChat
- Notebooks
- Google Colab
- Kaggle
Fix FP8 exclusions and MTP cache handling
#5
by iCavan - opened
- config.json +2 -3
- modeling_bailing_moe_v3.py +13 -10
config.json
CHANGED
|
@@ -130,8 +130,7 @@
|
|
| 130 |
"modules_to_not_convert": [
|
| 131 |
"lm_head",
|
| 132 |
"model.word_embeddings",
|
| 133 |
-
"b_proj",
|
| 134 |
-
"mlp.gate",
|
| 135 |
"model.layers.7.attention.g_proj",
|
| 136 |
"model.layers.15.attention.g_proj",
|
| 137 |
"model.layers.23.attention.g_proj",
|
|
@@ -251,4 +250,4 @@
|
|
| 251 |
"vocab_size": 157184,
|
| 252 |
"model_type": "bailing_hybrid",
|
| 253 |
"torch_dtype": "bfloat16"
|
| 254 |
-
}
|
|
|
|
| 130 |
"modules_to_not_convert": [
|
| 131 |
"lm_head",
|
| 132 |
"model.word_embeddings",
|
| 133 |
+
"attention.b_proj",
|
|
|
|
| 134 |
"model.layers.7.attention.g_proj",
|
| 135 |
"model.layers.15.attention.g_proj",
|
| 136 |
"model.layers.23.attention.g_proj",
|
|
|
|
| 250 |
"vocab_size": 157184,
|
| 251 |
"model_type": "bailing_hybrid",
|
| 252 |
"torch_dtype": "bfloat16"
|
| 253 |
+
}
|
modeling_bailing_moe_v3.py
CHANGED
|
@@ -1272,6 +1272,7 @@ class BailingMoeV3Model(BailingMoeV3PreTrainedModel):
|
|
| 1272 |
output_attentions: Optional[bool] = None,
|
| 1273 |
output_hidden_states: Optional[bool] = None,
|
| 1274 |
output_router_logits: Optional[bool] = None,
|
|
|
|
| 1275 |
return_dict: Optional[bool] = None,
|
| 1276 |
**kwargs,
|
| 1277 |
) -> Union[Tuple, MoeV3ModelOutputWithPast]:
|
|
@@ -1412,7 +1413,7 @@ class BailingMoeV3Model(BailingMoeV3PreTrainedModel):
|
|
| 1412 |
|
| 1413 |
mtp_hidden_states = None
|
| 1414 |
|
| 1415 |
-
if mtp_layers:
|
| 1416 |
for decoder_layer in mtp_layers:
|
| 1417 |
input_ids, _ = roll_tensor(input_ids, shifts=-1, dims=-1)
|
| 1418 |
inputs_embeds = self.word_embeddings(input_ids)
|
|
@@ -1424,10 +1425,10 @@ class BailingMoeV3Model(BailingMoeV3PreTrainedModel):
|
|
| 1424 |
hidden_states,
|
| 1425 |
attention_mask,
|
| 1426 |
position_ids,
|
| 1427 |
-
|
| 1428 |
output_attentions,
|
| 1429 |
output_router_logits,
|
| 1430 |
-
|
| 1431 |
position_embeddings,
|
| 1432 |
)
|
| 1433 |
else:
|
|
@@ -1436,10 +1437,10 @@ class BailingMoeV3Model(BailingMoeV3PreTrainedModel):
|
|
| 1436 |
hidden_states,
|
| 1437 |
attention_mask=attention_mask,
|
| 1438 |
position_ids=position_ids,
|
| 1439 |
-
past_key_value=
|
| 1440 |
output_attentions=output_attentions,
|
| 1441 |
output_router_logits=output_router_logits,
|
| 1442 |
-
use_cache=
|
| 1443 |
position_embeddings=position_embeddings,
|
| 1444 |
)
|
| 1445 |
if mtp_hidden_states is None:
|
|
@@ -1450,9 +1451,6 @@ class BailingMoeV3Model(BailingMoeV3PreTrainedModel):
|
|
| 1450 |
if output_hidden_states:
|
| 1451 |
all_hidden_states += (hidden_states,)
|
| 1452 |
|
| 1453 |
-
if use_cache:
|
| 1454 |
-
next_decoder_cache = layer_outputs[2 if output_attentions else 1]
|
| 1455 |
-
|
| 1456 |
if output_attentions:
|
| 1457 |
all_self_attns += (layer_outputs[1],)
|
| 1458 |
|
|
@@ -1554,6 +1552,10 @@ class BailingMoeV3ForCausalLM(BailingMoeV3PreTrainedModel, GenerationMixin):
|
|
| 1554 |
output_router_logits if output_router_logits is not None else self.config.output_router_logits
|
| 1555 |
)
|
| 1556 |
return_dict = return_dict if return_dict is not None else self.config.use_return_dict
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1557 |
# decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)
|
| 1558 |
outputs = self.model(
|
| 1559 |
input_ids=input_ids,
|
|
@@ -1565,7 +1567,8 @@ class BailingMoeV3ForCausalLM(BailingMoeV3PreTrainedModel, GenerationMixin):
|
|
| 1565 |
output_attentions=output_attentions,
|
| 1566 |
output_hidden_states=output_hidden_states,
|
| 1567 |
output_router_logits=output_router_logits,
|
| 1568 |
-
|
|
|
|
| 1569 |
**kwargs,
|
| 1570 |
)
|
| 1571 |
|
|
@@ -1580,7 +1583,7 @@ class BailingMoeV3ForCausalLM(BailingMoeV3PreTrainedModel, GenerationMixin):
|
|
| 1580 |
loss = self.loss_function(logits, labels, self.config.vocab_size, **kwargs)
|
| 1581 |
|
| 1582 |
all_mtp_logits = None
|
| 1583 |
-
if
|
| 1584 |
mtp_hidden_states = outputs.mtp_hidden_states
|
| 1585 |
shift_labels_mtp = None
|
| 1586 |
for i in range(self.num_nextn_predict_layers):
|
|
|
|
| 1272 |
output_attentions: Optional[bool] = None,
|
| 1273 |
output_hidden_states: Optional[bool] = None,
|
| 1274 |
output_router_logits: Optional[bool] = None,
|
| 1275 |
+
output_mtp_hidden_states: Optional[bool] = False,
|
| 1276 |
return_dict: Optional[bool] = None,
|
| 1277 |
**kwargs,
|
| 1278 |
) -> Union[Tuple, MoeV3ModelOutputWithPast]:
|
|
|
|
| 1413 |
|
| 1414 |
mtp_hidden_states = None
|
| 1415 |
|
| 1416 |
+
if mtp_layers and output_mtp_hidden_states:
|
| 1417 |
for decoder_layer in mtp_layers:
|
| 1418 |
input_ids, _ = roll_tensor(input_ids, shifts=-1, dims=-1)
|
| 1419 |
inputs_embeds = self.word_embeddings(input_ids)
|
|
|
|
| 1425 |
hidden_states,
|
| 1426 |
attention_mask,
|
| 1427 |
position_ids,
|
| 1428 |
+
None,
|
| 1429 |
output_attentions,
|
| 1430 |
output_router_logits,
|
| 1431 |
+
False,
|
| 1432 |
position_embeddings,
|
| 1433 |
)
|
| 1434 |
else:
|
|
|
|
| 1437 |
hidden_states,
|
| 1438 |
attention_mask=attention_mask,
|
| 1439 |
position_ids=position_ids,
|
| 1440 |
+
past_key_value=None,
|
| 1441 |
output_attentions=output_attentions,
|
| 1442 |
output_router_logits=output_router_logits,
|
| 1443 |
+
use_cache=False,
|
| 1444 |
position_embeddings=position_embeddings,
|
| 1445 |
)
|
| 1446 |
if mtp_hidden_states is None:
|
|
|
|
| 1451 |
if output_hidden_states:
|
| 1452 |
all_hidden_states += (hidden_states,)
|
| 1453 |
|
|
|
|
|
|
|
|
|
|
| 1454 |
if output_attentions:
|
| 1455 |
all_self_attns += (layer_outputs[1],)
|
| 1456 |
|
|
|
|
| 1552 |
output_router_logits if output_router_logits is not None else self.config.output_router_logits
|
| 1553 |
)
|
| 1554 |
return_dict = return_dict if return_dict is not None else self.config.use_return_dict
|
| 1555 |
+
compute_mtp_loss = labels is not None and self.num_nextn_predict_layers > 0
|
| 1556 |
+
# MTP hidden states are kept outside the tuple output, so retain the structured output while
|
| 1557 |
+
# computing its loss.
|
| 1558 |
+
model_return_dict = return_dict or compute_mtp_loss
|
| 1559 |
# decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)
|
| 1560 |
outputs = self.model(
|
| 1561 |
input_ids=input_ids,
|
|
|
|
| 1567 |
output_attentions=output_attentions,
|
| 1568 |
output_hidden_states=output_hidden_states,
|
| 1569 |
output_router_logits=output_router_logits,
|
| 1570 |
+
output_mtp_hidden_states=compute_mtp_loss,
|
| 1571 |
+
return_dict=model_return_dict,
|
| 1572 |
**kwargs,
|
| 1573 |
)
|
| 1574 |
|
|
|
|
| 1583 |
loss = self.loss_function(logits, labels, self.config.vocab_size, **kwargs)
|
| 1584 |
|
| 1585 |
all_mtp_logits = None
|
| 1586 |
+
if compute_mtp_loss and outputs.mtp_hidden_states is not None:
|
| 1587 |
mtp_hidden_states = outputs.mtp_hidden_states
|
| 1588 |
shift_labels_mtp = None
|
| 1589 |
for i in range(self.num_nextn_predict_layers):
|