Skip to content

Commit a346c19

Browse files
authored
[compat] fix FusedDSAIndexerLoss compat mcore<0.19 (#142)
1 parent 763f9d9 commit a346c19

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

src/mcore_bridge/model/gpts/glm_moe_dsa.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Copyright (c) ModelScope Contributors. All rights reserved.
2+
import megatron.core
23
import torch
34
from contextlib import contextmanager
5+
from packaging import version
46
from typing import Optional
57

68
from ..constant import ModelType
@@ -15,6 +17,8 @@
1517
except ImportError:
1618
DSAttention = object
1719

20+
mcore_019 = version.parse(megatron.core.__version__) >= version.parse('0.19.0rc0')
21+
1822

1923
class GlmMoeDsaDSAttention(DSAttention):
2024
"""DSAttention with shared indexer support for GLM 5.2.
@@ -86,12 +90,13 @@ def forward(
8690
if self.training and torch.is_grad_enabled():
8791
q, k, weights = self.indexer.forward_before_topk(x, qr, packed_seq_params)
8892
indexer_loss_coeff = getattr(self.config, 'dsa_indexer_loss_coeff', 0.0)
89-
93+
kwargs = {}
94+
if mcore_019:
95+
kwargs['calculate_per_token_loss'] = self.config.calculate_per_token_loss
9096
topk_indices, indexer_loss = FusedDSAIndexerLoss.apply(
9197
q, weights, k, query.detach(), key.detach(), self.softmax_scale,
9298
self.indexer.index_topk, indexer_loss_coeff, float_mask,
93-
getattr(self.config, 'dsa_indexer_use_sparse_loss',
94-
False), self.indexer.pg_collection, self.config.calculate_per_token_loss)
99+
getattr(self.config, 'dsa_indexer_use_sparse_loss', False), self.indexer.pg_collection, **kwargs)
95100
if indexer_loss_coeff > 0:
96101
DSAIndexerLossLoggingHelper.save_loss_to_tracker(
97102
loss=indexer_loss,

0 commit comments

Comments
 (0)