global_sparsity not serialized
**Describe the bug**
`global_sparsity` property of pruning modifiers is not serialized.

**To Reproduce**
```
    yaml_modifier = AnyPruningModifier.load_obj(yaml_str)   
    serialized_modifier = AnyPruningModifier.load_obj(
        str(yaml_modifier)
    ) 
```

`str(yaml_modifier)` doesn't contain `global_sparsity` property, so `serialized_modifier` will be initialized with the default value, instead of the expected one from `yaml_modifier` class.

**Errors**
Loading pruning modifiers from serialized representations (for example `str(yaml_modifier)`) produces a modifier with default value of `global_sparsity` instead to replicate the serialized object.

diff --git a/src/sparseml/pytorch/sparsification/pruning/modifier_pruning_base.py b/src/sparseml/pytorch/sparsification/pruning/modifier_pruning_base.py
index 66f199e5f0..6870f6104c 100644
--- a/src/sparseml/pytorch/sparsification/pruning/modifier_pruning_base.py
+++ b/src/sparseml/pytorch/sparsification/pruning/modifier_pruning_base.py
@@ -222,6 +222,13 @@ class BasePruningModifier(ABC, ScheduledUpdateModifier):
         """
         return self._leave_enabled
 
+    @ModifierProp()
+    def global_sparsity(self) -> bool:
+        """
+        :return: value of global_sparsity that is passed to mask_creator methods
+        """
+        return self._global_sparsity
+
     @property
     def module_masks(self) -> Optional[ModuleParamPruningMask]:
         """
@@ -252,13 +259,6 @@ class BasePruningModifier(ABC, ScheduledUpdateModifier):
         """
         return self._scorer
 
-    @property
-    def global_sparsity(self) -> bool:
-        """
-        :return: value of global_sparsity that is passed to mask_creator methods
-        """
-        return self._global_sparsity
-
     @property
     def allow_reintroduction(self) -> bool:
         """
['src/sparseml/pytorch/sparsification/pruning/modifier_pruning_base.py']