constants.py 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. # Copyright (c) Microsoft Corporation.
  2. # SPDX-License-Identifier: Apache-2.0
  3. # DeepSpeed Team
  4. #########################################
  5. # Compression Methods
  6. # It has several sub-components
  7. # #########################################
  8. COMPRESSION_TRAINING = "compression_training"
  9. SHARED_PARAMETERS = "shared_parameters"
  10. DIFFERENT_GROUPS = "different_groups"
  11. TECHNIQUE_ENABLED = "enabled"
  12. TECHNIQUE_SCHEDULE_OFFSET = "schedule_offset"
  13. TECHNIQUE_SCHEDULE_OFFSET_END = "schedule_offset_end"
  14. DIFFERENT_GROUPS_PARAMETERS = "params"
  15. DIFFERENT_GROUPS_MODULE_SCOPE = "modules"
  16. DIFFERENT_GROUPS_MODULE_SCOPE_DEFAULT = "*"
  17. DIFFERENT_GROUPS_RELATED_MODULE_SCOPE = "related_modules"
  18. DIFFERENT_GROUPS_RELATED_MODULE_SCOPE_DEFAULT = None
  19. # COMPRESSION_TRAINING_ENABLED = "enabled"
  20. # COMPRESSION_TRAINING_ENABLED_DEFAULT = False
  21. ####
  22. # Layer Reduction
  23. ####
  24. LAYER_REDUCTION = "layer_reduction"
  25. LAYER_REDUCTION_ENABLED = "enabled"
  26. LAYER_REDUCTION_ENABLED_DEFAULT = False
  27. KEEP_NUMBER_LAYER = "keep_number_layer"
  28. MODULE_NAME_PREFIX = "module_name_prefix"
  29. TEACHER_LAYER = "teacher_layer"
  30. OTHER_MODULE_NAME = "other_module_name"
  31. ####
  32. # Weight Quantization
  33. ####
  34. WEIGHT_QUANTIZATION = "weight_quantization"
  35. WEIGHT_QUANTIZATION_PERIOD = "quantization_period"
  36. WEIGHT_QUANTIZATION_PERIOD_DEFAULT = 1
  37. WEIGHT_QUANTIZE_IN_FORWARD_ENABLED = "quantize_weight_in_forward"
  38. WEIGHT_QUANTIZE_IN_FORWARD_ENABLED_DEFAULT = False
  39. WEIGHT_QUANTIZE_ENABLED = TECHNIQUE_ENABLED
  40. WEIGHT_QUANTIZE_ENABLED_DEFAULT = False
  41. WEIGHT_QUANTIZE_KERNEL = "quantizer_kernel"
  42. WEIGHT_QUANTIZE_KERNEL_DEFAULT = False
  43. WEIGHT_QUANTIZE_SCHEDULE_OFFSET = TECHNIQUE_SCHEDULE_OFFSET
  44. WEIGHT_QUANTIZE_SCHEDULE_OFFSET_DEFAULT = 0
  45. WEIGHT_QUANTIZE_GROUPS = "quantize_groups"
  46. WEIGHT_QUANTIZE_GROUPS_DEFAULT = 1
  47. WEIGHT_QUANTIZE_VERBOSE = "quantize_verbose"
  48. WEIGHT_QUANTIZE_VERBOSE_DEFAULT = False
  49. WEIGHT_QUANTIZE_TYPE = "quantization_type"
  50. WEIGHT_QUANTIZE_TYPE_DEFAULT = "symmetric"
  51. WEIGHT_QUANTIZE_SYMMETRIC = "symmetric"
  52. WEIGHT_QUANTIZE_ASYMMETRIC = "asymmetric"
  53. WEIGHT_QUANTIZE_ROUNDING = "rounding"
  54. WEIGHT_QUANTIZE_ROUNDING_DEFAULT = "nearest"
  55. WEIGHT_QUANTIZE_STOCHASTIC_ROUNDING = "stochastic"
  56. WEIGHT_QUANTIZE_NEAREST_ROUNDING = "nearest"
  57. # maybe deleted for a cleaner version
  58. WEIGHT_QUANTIZE_FP16_MIXED_QUANTIZE = "fp16_mixed_quantize"
  59. WEIGHT_QUANTIZE_FP16_MIXED_QUANTIZE_ENABLED = "enabled"
  60. WEIGHT_QUANTIZE_FP16_MIXED_QUANTIZE_ENABLED_DEFAULT = False
  61. WEIGHT_QUANTIZE_CHANGE_RATIO = "quantize_change_ratio"
  62. WEIGHT_QUANTIZE_CHANGE_RATIO_DEFAULT = 0.001
  63. WEIGHT_QUANTIZE_START_BITS = "start_bits"
  64. WEIGHT_QUANTIZE_TARGET_BITS = "target_bits"
  65. ###
  66. # Activation Quantization
  67. ###
  68. ACTIVATION_QUANTIZATION = "activation_quantization"
  69. ACTIVATION_QUANTIZATION_ENABLED = TECHNIQUE_ENABLED
  70. ACTIVATION_QUANTIZATION_ENABLED_DEFAULT = False
  71. ACTIVATION_QUANTIZE_SCHEDULE_OFFSET = TECHNIQUE_SCHEDULE_OFFSET
  72. ACTIVATION_QUANTIZE_SCHEDULE_OFFSET_DEFAULT = 1000
  73. ACTIVATION_QUANTIZE_TYPE = "quantization_type"
  74. ACTIVATION_QUANTIZE_TYPE_DEFAULT = "symmetric"
  75. ACTIVATION_QUANTIZE_SYMMETRIC = "symmetric"
  76. ACTIVATION_QUANTIZE_ASYMMETRIC = "asymmetric"
  77. ACTIVATION_QUANTIZE_RANGE = 'range_calibration'
  78. ACTIVATION_QUANTIZE_RANGE_DEFAULT = 'dynamic'
  79. ACTIVATION_QUANTIZE_RANGE_STATIC = 'static'
  80. ACTIVATION_QUANTIZE_RANGE_DYNAMIC = 'dynamic'
  81. ACTIVATION_QUANTIZE_BITS = "bits"
  82. ###
  83. # Sparse Pruning
  84. ###
  85. SPARSE_PRUNING = "sparse_pruning"
  86. SPARSE_PRUNING_ENABLED = TECHNIQUE_ENABLED
  87. SPARSE_PRUNING_ENABLED_DEFAULT = False
  88. SPARSE_PRUNING_METHOD = "method"
  89. SPARSE_PRUNING_METHOD_DEFAULT = "l1"
  90. SPARSE_PRUNING_METHOD_L1 = "l1"
  91. SPARSE_PRUNING_METHOD_TOPK = "topk"
  92. SPARSE_PRUNING_METHOD_SNIP_MOMENTUM = "snip_momentum"
  93. SPARSE_PRUNING_BLOCK_PATTERN = "block_pattern"
  94. SPARSE_PRUNING_BLOCK_PATTERN_DEFAULT = "4x1"
  95. SPARSE_PRUNING_SCHEDULE_OFFSET_STRIDE = "schedule_offset_stride"
  96. SPARSE_PRUNING_SCHEDULE_OFFSET_STRIDE_DEFAULT = 1
  97. SPARSE_PRUNING_SCHEDULE_OFFSET = TECHNIQUE_SCHEDULE_OFFSET
  98. SPARSE_PRUNING_SCHEDULE_OFFSET_DEFAULT = 1000
  99. SPARSE_PRUNING_SCHEDULE_OFFSET_END = TECHNIQUE_SCHEDULE_OFFSET_END
  100. SPARSE_PRUNING_SCHEDULE_OFFSET_END_DEFAULT = SPARSE_PRUNING_SCHEDULE_OFFSET_DEFAULT
  101. SPARSE_PRUNING_DENSE_RATIO = "dense_ratio"
  102. SPARSE_PRUNING_DENSE_RATIO_DEFAULT = 0.1
  103. SPARSE_PRUNING_EXCLUDED_MODULES = "excluded_modules"
  104. SPARSE_PRUNING_EXCLUDED_MODULES_DEFAULT = []
  105. ###
  106. # Row Pruning
  107. ###
  108. ROW_PRUNING = "row_pruning"
  109. ROW_PRUNING_ENABLED = TECHNIQUE_ENABLED
  110. ROW_PRUNING_ENABLED_DEFAULT = False
  111. ROW_PRUNING_METHOD = "method"
  112. ROW_PRUNING_METHOD_DEFAULT = "l1"
  113. ROW_PRUNING_METHOD_L1 = "l1"
  114. ROW_PRUNING_METHOD_TOPK = "topk"
  115. ROW_PRUNING_SCHEDULE_OFFSET = TECHNIQUE_SCHEDULE_OFFSET
  116. ROW_PRUNING_SCHEDULE_OFFSET_DEFAULT = 1000
  117. ROW_PRUNING_DENSE_RATIO = "dense_ratio"
  118. ###
  119. # Head Pruning
  120. ###
  121. HEAD_PRUNING = "head_pruning"
  122. HEAD_PRUNING_ENABLED = TECHNIQUE_ENABLED
  123. HEAD_PRUNING_ENABLED_DEFAULT = False
  124. HEAD_PRUNING_METHOD = "method"
  125. HEAD_PRUNING_METHOD_DEFAULT = "topk"
  126. HEAD_PRUNING_METHOD_L1 = "l1"
  127. HEAD_PRUNING_METHOD_TOPK = "topk"
  128. HEAD_PRUNING_SCHEDULE_OFFSET = TECHNIQUE_SCHEDULE_OFFSET
  129. HEAD_PRUNING_SCHEDULE_OFFSET_DEFAULT = 1000
  130. HEAD_PRUNING_NUM_HEADS = "num_heads"
  131. HEAD_PRUNING_DENSE_RATIO = "dense_ratio"
  132. ###
  133. # Channel Pruning
  134. ###
  135. CHANNEL_PRUNING = "channel_pruning"
  136. CHANNEL_PRUNING_ENABLED = TECHNIQUE_ENABLED
  137. CHANNEL_PRUNING_ENABLED_DEFAULT = False
  138. CHANNEL_PRUNING_METHOD = "method"
  139. CHANNEL_PRUNING_METHOD_DEFAULT = "l1"
  140. CHANNEL_PRUNING_METHOD_L1 = "l1"
  141. CHANNEL_PRUNING_METHOD_TOPK = "topk"
  142. CHANNEL_PRUNING_SCHEDULE_OFFSET = TECHNIQUE_SCHEDULE_OFFSET
  143. CHANNEL_PRUNING_SCHEDULE_OFFSET_DEFAULT = 1000
  144. CHANNEL_PRUNING_DENSE_RATIO = "dense_ratio"