fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py

Killed 0 out of 7 mutants

Survived

Survived mutation testing. These mutants show holes in your test suite.

Mutant 3034

--- fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
+++ fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
@@ -12,7 +12,7 @@
     from fairseq.model_parallel.megatron.mpu.cross_entropy import vocab_parallel_cross_entropy
     has_megatron_submodule = True
 except (ImportError, ModuleNotFoundError):
-    has_megatron_submodule = False
+    has_megatron_submodule = True
 
 
 @register_criterion('vocab_parallel_cross_entropy')

Mutant 3035

--- fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
+++ fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
@@ -12,7 +12,7 @@
     from fairseq.model_parallel.megatron.mpu.cross_entropy import vocab_parallel_cross_entropy
     has_megatron_submodule = True
 except (ImportError, ModuleNotFoundError):
-    has_megatron_submodule = False
+    has_megatron_submodule = None
 
 
 @register_criterion('vocab_parallel_cross_entropy')

Mutant 3036

--- fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
+++ fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
@@ -15,7 +15,7 @@
     has_megatron_submodule = False
 
 
-@register_criterion('vocab_parallel_cross_entropy')
+@register_criterion('XXvocab_parallel_cross_entropyXX')
 class VocabParallelCrossEntropyCriterion(FairseqCriterion):
 
     def __init__(self, task, sentence_avg):

Mutant 3037

--- fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
+++ fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
@@ -14,8 +14,6 @@
 except (ImportError, ModuleNotFoundError):
     has_megatron_submodule = False
 
-
-@register_criterion('vocab_parallel_cross_entropy')
 class VocabParallelCrossEntropyCriterion(FairseqCriterion):
 
     def __init__(self, task, sentence_avg):

Mutant 3038

--- fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
+++ fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
@@ -28,7 +28,7 @@
                 'fairseq/model_parallel/megatron'
             )
 
-    def forward(self, model, sample, reduce=True):
+    def forward(self, model, sample, reduce=False):
         """Compute the loss for the given sample.
 
         Returns a tuple with three elements:

Mutant 3039

--- fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
+++ fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
@@ -50,7 +50,6 @@
         }
         return loss, sample_size, logging_output
 
-    @staticmethod
     def reduce_metrics(logging_outputs) -> None:
         """Aggregate logging outputs from data parallel training."""
         loss_sum = sum(log.get('loss', 0) for log in logging_outputs)

Mutant 3040

--- fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
+++ fairseq/model_parallel/criterions/vocab_parallel_cross_entropy.py
@@ -64,7 +64,6 @@
         else:
             metrics.log_derived('ppl', lambda meters: utils.get_perplexity(meters['loss'].avg))
 
-    @staticmethod
     def logging_outputs_can_be_summed() -> bool:
         """
         Whether the logging outputs returned by `forward` can be summed