compressed-tensors 0.12.1a20251001__tar.gz → 0.12.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. compressed_tensors-0.12.2/.github/workflows/post-release-nightly-build.yml +15 -0
  2. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/.github/workflows/trigger-all.yml +15 -1
  3. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/PKG-INFO +1 -1
  4. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/model_compressors/model_compressor.py +49 -0
  5. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/quantization/utils/helpers.py +1 -1
  6. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/apply.py +1 -1
  7. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/utils/__init__.py +0 -1
  8. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/version.py +2 -2
  9. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors.egg-info/PKG-INFO +1 -1
  10. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors.egg-info/SOURCES.txt +1 -2
  11. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_compressors/model_compressors/test_model_compressor.py +20 -0
  12. compressed_tensors-0.12.1a20251001/src/compressed_tensors/utils/permute.py +0 -33
  13. compressed_tensors-0.12.1a20251001/tests/test_quantization/lifecycle/test_helpers.py +0 -49
  14. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/.github/.gitkeep +0 -0
  15. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/.github/actions/test/action.yml +0 -0
  16. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/.github/scripts/step-status +0 -0
  17. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/.github/workflows/build-test.yml +0 -0
  18. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/.github/workflows/build.yml +0 -0
  19. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/.github/workflows/quality-check.yaml +0 -0
  20. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/.github/workflows/report.yml +0 -0
  21. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/.github/workflows/test-check.yaml +0 -0
  22. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/.github/workflows/test.yml +0 -0
  23. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/.github/workflows/upload.yml +0 -0
  24. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/.gitignore +0 -0
  25. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/LICENSE +0 -0
  26. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/Makefile +0 -0
  27. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/README.md +0 -0
  28. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/examples/bit_packing/ex_quantize_and_pack.py +0 -0
  29. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/examples/bit_packing/int4_config.json +0 -0
  30. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/examples/bitmask_compression.ipynb +0 -0
  31. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/examples/llama_1.1b/ex_config_quantization.py +0 -0
  32. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/examples/llama_1.1b/ex_llmcompressor_quantization.py +0 -0
  33. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/examples/llama_1.1b/example_quant_config.json +0 -0
  34. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/examples/llama_1.1b/example_quant_recipe.yaml +0 -0
  35. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/examples/quantize_and_pack_int4.ipynb +0 -0
  36. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/pyproject.toml +0 -0
  37. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/setup.cfg +0 -0
  38. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/setup.py +0 -0
  39. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/__init__.py +0 -0
  40. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/README.md +0 -0
  41. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/__init__.py +0 -0
  42. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/base.py +0 -0
  43. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/__init__.py +0 -0
  44. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/base.py +0 -0
  45. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/helpers.py +0 -0
  46. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/model_compressors/__init__.py +0 -0
  47. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/quantized_compressors/__init__.py +0 -0
  48. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/quantized_compressors/base.py +0 -0
  49. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/quantized_compressors/naive_quantized.py +0 -0
  50. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/quantized_compressors/nvfp4_quantized.py +0 -0
  51. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/quantized_compressors/pack_quantized.py +0 -0
  52. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/sparse_compressors/__init__.py +0 -0
  53. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/sparse_compressors/base.py +0 -0
  54. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/sparse_compressors/dense.py +0 -0
  55. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/sparse_compressors/sparse_24_bitmask.py +0 -0
  56. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/sparse_compressors/sparse_bitmask.py +0 -0
  57. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/sparse_quantized_compressors/__init__.py +0 -0
  58. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/compressors/sparse_quantized_compressors/marlin_24.py +0 -0
  59. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/config/__init__.py +0 -0
  60. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/config/base.py +0 -0
  61. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/config/dense.py +0 -0
  62. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/config/format.py +0 -0
  63. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/config/sparse_24_bitmask.py +0 -0
  64. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/config/sparse_bitmask.py +0 -0
  65. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/linear/__init__.py +0 -0
  66. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/linear/compressed_linear.py +0 -0
  67. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/logger.py +0 -0
  68. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/quantization/__init__.py +0 -0
  69. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/quantization/lifecycle/__init__.py +0 -0
  70. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/quantization/lifecycle/apply.py +0 -0
  71. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/quantization/lifecycle/compressed.py +0 -0
  72. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/quantization/lifecycle/forward.py +0 -0
  73. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/quantization/lifecycle/helpers.py +0 -0
  74. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/quantization/lifecycle/initialize.py +0 -0
  75. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/quantization/quant_args.py +0 -0
  76. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/quantization/quant_config.py +0 -0
  77. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/quantization/quant_metadata.py +0 -0
  78. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/quantization/quant_scheme.py +0 -0
  79. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/quantization/utils/__init__.py +0 -0
  80. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/registry/__init__.py +0 -0
  81. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/registry/registry.py +0 -0
  82. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/__init__.py +0 -0
  83. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/factory/__init__.py +0 -0
  84. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/factory/base.py +0 -0
  85. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/factory/hadamard.py +0 -0
  86. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/factory/matrix_multiply.py +0 -0
  87. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/factory/random_hadamard.py +0 -0
  88. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/transform_args.py +0 -0
  89. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/transform_config.py +0 -0
  90. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/transform_scheme.py +0 -0
  91. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/utils/__init__.py +0 -0
  92. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/utils/hadamard.py +0 -0
  93. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/utils/hadamards.safetensors +0 -0
  94. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/transform/utils/matrix.py +0 -0
  95. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/utils/helpers.py +0 -0
  96. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/utils/internal.py +0 -0
  97. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/utils/match.py +0 -0
  98. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/utils/offload.py +0 -0
  99. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/utils/permutations_24.py +0 -0
  100. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/utils/safetensors_load.py +0 -0
  101. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/utils/semi_structured_conversions.py +0 -0
  102. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors/utils/type.py +0 -0
  103. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors.egg-info/dependency_links.txt +0 -0
  104. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors.egg-info/requires.txt +0 -0
  105. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/src/compressed_tensors.egg-info/top_level.txt +0 -0
  106. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/__init__.py +0 -0
  107. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/conftest.py +0 -0
  108. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_compressors/__init__.py +0 -0
  109. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_compressors/model_compressors/__init__.py +0 -0
  110. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_compressors/quantized_compressors/__init__.py +0 -0
  111. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_compressors/quantized_compressors/test_fp8_quant.py +0 -0
  112. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_compressors/quantized_compressors/test_int_quant.py +0 -0
  113. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_compressors/quantized_compressors/test_nvfp4_quant.py +0 -0
  114. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_compressors/quantized_compressors/test_pack_quant.py +0 -0
  115. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_compressors/sparse_compressors/__init__.py +0 -0
  116. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_compressors/sparse_compressors/test_bitmask.py +0 -0
  117. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_compressors/sparse_compressors/test_sparse_24_bitmask.py +0 -0
  118. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_compressors/sparse_quantized_compressors/__init__.py +0 -0
  119. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_compressors/sparse_quantized_compressors/test_marlin_24.py +0 -0
  120. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_configs/__init__.py +0 -0
  121. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_configs/test_base.py +0 -0
  122. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_configs/test_infer_quant.py +0 -0
  123. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_examples/test_bitmask_compression_ipynb.py +0 -0
  124. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_linear/__init__.py +0 -0
  125. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_linear/test_compressed_linear.py +0 -0
  126. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/__init__.py +0 -0
  127. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/lifecycle/__init__.py +0 -0
  128. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/lifecycle/conftest.py +0 -0
  129. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/lifecycle/test_apply.py +0 -0
  130. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/lifecycle/test_dynamic_lifecycle.py +0 -0
  131. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/lifecycle/test_enabled.py +0 -0
  132. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/lifecycle/test_forward.py +0 -0
  133. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/lifecycle/test_initialize.py +0 -0
  134. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/lifecycle/test_lifecycle.py +0 -0
  135. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/test_configs/__init__.py +0 -0
  136. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/test_configs/test_bit_depths.py +0 -0
  137. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/test_configs/test_strategies.py +0 -0
  138. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/test_quant_args.py +0 -0
  139. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/test_quant_config.py +0 -0
  140. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/test_quant_scheme.py +0 -0
  141. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_quantization/test_utils/test_helpers.py +0 -0
  142. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_registry.py +0 -0
  143. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_transform/conftest.py +0 -0
  144. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_transform/factory/test_correctness.py +0 -0
  145. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_transform/factory/test_memory.py +0 -0
  146. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_transform/factory/test_serialization.py +0 -0
  147. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_transform/test_transform_args.py +0 -0
  148. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_transform/test_transform_config.py +0 -0
  149. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_transform/test_transform_scheme.py +0 -0
  150. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_transform/utils/test_hadamard.py +0 -0
  151. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_utils/__init__.py +0 -0
  152. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_utils/test_helpers.py +0 -0
  153. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_utils/test_match.py +0 -0
  154. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_utils/test_offload.py +0 -0
  155. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_utils/test_safetensors_load.py +0 -0
  156. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/test_utils/test_type.py +0 -0
  157. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/tests/testing_utils.py +0 -0
  158. {compressed_tensors-0.12.1a20251001 → compressed_tensors-0.12.2}/utils/copyright.py +0 -0
@@ -0,0 +1,15 @@
1
+ name: Post-release nightly build & release
2
+
3
+ on:
4
+ release:
5
+ types: [released]
6
+
7
+ jobs:
8
+ BUILD-TEST-NIGHTLY:
9
+ name: Post-release nightly build & release
10
+ uses: ./.github/workflows/trigger-all.yml
11
+ with:
12
+ wf_category: NIGHTLY
13
+ push_to_pypi: true
14
+ gitref: main
15
+ secrets: inherit
@@ -5,6 +5,21 @@ on:
5
5
  # * is a special character in YAML so you have to quote this string
6
6
  - cron: '30 0 * * *' # nightly run
7
7
 
8
+ workflow_call:
9
+ inputs:
10
+ wf_category:
11
+ description: "workflow category, must be 'NIGHTLY' or 'RELEASE' (default: NIGHTLY)"
12
+ type: string
13
+ default: NIGHTLY
14
+ push_to_pypi:
15
+ description: "when set and tests pass, then '.whl' & '.tar.gz' will be pushed to public pypi"
16
+ type: boolean
17
+ default: false
18
+ gitref:
19
+ description: "git commit hash or tag name"
20
+ type: string
21
+ default: 'main'
22
+
8
23
  workflow_dispatch:
9
24
  inputs:
10
25
  wf_category:
@@ -36,5 +51,4 @@ jobs:
36
51
  {"python":"3.10.12","label":"k8s-util","timeout":"40"},
37
52
  {"python":"3.9.17","label":"k8s-h100-solo","timeout":"40"},
38
53
  {"python":"3.12.6","label":"k8s-a100-duo","timeout":"40"}]'
39
-
40
54
  secrets: inherit
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compressed-tensors
3
- Version: 0.12.1a20251001
3
+ Version: 0.12.2
4
4
  Summary: Library for utilization of compressed safetensors of neural network models
5
5
  Home-page: https://github.com/neuralmagic/compressed-tensors
6
6
  Author: Neuralmagic, Inc.
@@ -344,6 +344,55 @@ class ModelCompressor:
344
344
  format, config=quantization_config
345
345
  )
346
346
 
347
+ def get_missing_module_keys(self, model: Module) -> List[str]:
348
+ """
349
+ Identifies the expected missing weight keys in the compressed state_dict.
350
+
351
+ When a model undergoes sparsity or quantization compression, certain
352
+ weight tensors may be absent from the checkpoint by virtue of compression.
353
+ This function determines which weight keys are missing based on the
354
+ applied compression techniques.
355
+
356
+ :param model: The PyTorch model to check for missing keys.
357
+ :return: A list of missing keys expected in the compressed state_dict.
358
+ """
359
+ missing_keys = set()
360
+
361
+ # Determine missing keys due to sparsity compression
362
+ if (
363
+ self.sparsity_compressor
364
+ and self.sparsity_config.format != CompressionFormat.dense.value
365
+ ):
366
+ sparse_targets = match_named_modules(
367
+ model=model,
368
+ targets=self.sparsity_config.targets,
369
+ ignore=self.sparsity_config.ignore,
370
+ )
371
+
372
+ missing_keys.update(
373
+ merge_names(target_name, "weight")
374
+ for target_name, _module in sparse_targets
375
+ )
376
+
377
+ # Determine missing keys due to pack quantization
378
+ if (
379
+ self.quantization_compressor
380
+ and self.quantization_config.format
381
+ == CompressionFormat.pack_quantized.value
382
+ ):
383
+ for scheme in self.quantization_config.config_groups.values():
384
+ quant_targets = match_named_modules(
385
+ model=model,
386
+ targets=scheme.targets,
387
+ ignore=self.quantization_config.ignore,
388
+ )
389
+ missing_keys.update(
390
+ merge_names(target_name, "weight")
391
+ for target_name, _module in quant_targets
392
+ )
393
+
394
+ return list(missing_keys)
395
+
347
396
  def get_unexpected_file_keys(self, model: Module) -> List[str]:
348
397
  """
349
398
  Identifies extra keys introduced by the compression process in the
@@ -165,7 +165,7 @@ def compute_dynamic_scales_and_zp(
165
165
 
166
166
  keep_dims = True
167
167
  if args.strategy == QuantizationStrategy.TOKEN:
168
- dim = {1, 2}
168
+ dim = {0, 1}
169
169
  reduce_dims = tuple(idx for idx in range(value.ndim) if idx not in dim)
170
170
  elif args.strategy == QuantizationStrategy.TENSOR:
171
171
  reduce_dims = None
@@ -15,9 +15,9 @@
15
15
  from typing import Dict
16
16
 
17
17
  import torch
18
- from accelerate.utils import has_offloaded_params
19
18
  from compressed_tensors import TRANSFORM_CONFIG_NAME
20
19
  from compressed_tensors.transform import TransformConfig, TransformFactory
20
+ from compressed_tensors.utils.offload import has_offloaded_params
21
21
 
22
22
 
23
23
  __all__ = ["apply_transform_config"]
@@ -18,7 +18,6 @@ from .internal import *
18
18
  from .match import *
19
19
  from .offload import *
20
20
  from .permutations_24 import *
21
- from .permute import *
22
21
  from .safetensors_load import *
23
22
  from .semi_structured_conversions import *
24
23
  from .type import *
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.12.1.a20251001'
21
- __version_tuple__ = version_tuple = (0, 12, 1)
20
+ __version__ = version = '0.12.2'
21
+ __version_tuple__ = version_tuple = (0, 12, 2)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compressed-tensors
3
- Version: 0.12.1a20251001
3
+ Version: 0.12.2
4
4
  Summary: Library for utilization of compressed safetensors of neural network models
5
5
  Home-page: https://github.com/neuralmagic/compressed-tensors
6
6
  Author: Neuralmagic, Inc.
@@ -10,6 +10,7 @@ setup.py
10
10
  .github/scripts/step-status
11
11
  .github/workflows/build-test.yml
12
12
  .github/workflows/build.yml
13
+ .github/workflows/post-release-nightly-build.yml
13
14
  .github/workflows/quality-check.yaml
14
15
  .github/workflows/report.yml
15
16
  .github/workflows/test-check.yaml
@@ -95,7 +96,6 @@ src/compressed_tensors/utils/internal.py
95
96
  src/compressed_tensors/utils/match.py
96
97
  src/compressed_tensors/utils/offload.py
97
98
  src/compressed_tensors/utils/permutations_24.py
98
- src/compressed_tensors/utils/permute.py
99
99
  src/compressed_tensors/utils/safetensors_load.py
100
100
  src/compressed_tensors/utils/semi_structured_conversions.py
101
101
  src/compressed_tensors/utils/type.py
@@ -132,7 +132,6 @@ tests/test_quantization/lifecycle/test_apply.py
132
132
  tests/test_quantization/lifecycle/test_dynamic_lifecycle.py
133
133
  tests/test_quantization/lifecycle/test_enabled.py
134
134
  tests/test_quantization/lifecycle/test_forward.py
135
- tests/test_quantization/lifecycle/test_helpers.py
136
135
  tests/test_quantization/lifecycle/test_initialize.py
137
136
  tests/test_quantization/lifecycle/test_lifecycle.py
138
137
  tests/test_quantization/test_configs/__init__.py
@@ -450,6 +450,26 @@ def test_multiple_quant_compressors():
450
450
  assert all(format in compressor.quantization_compressor for format in formats)
451
451
 
452
452
 
453
+ @pytest.mark.parametrize(
454
+ "model, sparsity_config, quantization_config, expected",
455
+ [
456
+ (
457
+ TwoLayerModel(),
458
+ get_bitmask_sparsity_config(targets=["re:.*layer1$"]),
459
+ create_quantization_config(bits=8, type="int", strategy="channel"),
460
+ {"layer1.weight"},
461
+ )
462
+ ],
463
+ )
464
+ def test_get_missing_keys(model, sparsity_config, quantization_config, expected):
465
+ model_compressor = ModelCompressor(
466
+ sparsity_config=sparsity_config, quantization_config=quantization_config
467
+ )
468
+
469
+ actual = model_compressor.get_missing_module_keys(model)
470
+ assert len(actual) == len(expected) and all(key in actual for key in expected)
471
+
472
+
453
473
  @pytest.mark.parametrize(
454
474
  "model, sparsity_config, quantization_config, expected",
455
475
  [
@@ -1,33 +0,0 @@
1
- # Copyright (c) 2021 - present / Neuralmagic, Inc. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing,
10
- # software distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- import torch
16
- from compressed_tensors.utils.helpers import deprecated
17
-
18
-
19
- __all__ = ["safe_permute"]
20
-
21
-
22
- @deprecated("Tensor.index_select")
23
- def safe_permute(value: torch.Tensor, perm: torch.Tensor, dim: int = 0) -> torch.Tensor:
24
- """
25
- Perform out-of-place permutation without using torch.Tensor.index_put_,
26
- whose implementation is missing for datatypes such as `torch.float8_e4m3fn`
27
-
28
- :param value: tensor to permute
29
- :param perm: permutation map
30
- :param dim: dimension along which to apply permutation
31
- :return: permuted value
32
- """
33
- return value.index_select(dim, perm)
@@ -1,49 +0,0 @@
1
- # Copyright (c) 2021 - present / Neuralmagic, Inc. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing,
10
- # software distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
-
16
- import pytest
17
- import torch
18
- from compressed_tensors.utils.permute import safe_permute
19
- from tests.testing_utils import requires_gpu
20
-
21
-
22
- @requires_gpu
23
- @pytest.mark.unit
24
- @pytest.mark.filterwarnings("ignore::DeprecationWarning")
25
- @pytest.mark.parametrize(
26
- "dtype",
27
- [
28
- torch.int8,
29
- torch.int16,
30
- torch.int32,
31
- torch.int64,
32
- torch.bfloat16,
33
- torch.float16,
34
- torch.float32,
35
- torch.float64,
36
- torch.float8_e4m3fn,
37
- ],
38
- )
39
- @pytest.mark.parametrize(
40
- "device", [torch.device("cpu"), torch.device("cuda"), torch.device("meta")]
41
- )
42
- def test_safe_permute(dtype: torch.dtype, device: torch.device):
43
- value = torch.tensor([[0, 1, 2, 3]], dtype=dtype, device=device)
44
- perm = torch.tensor([3, 1, 0, 2], device=device)
45
-
46
- result = safe_permute(value, perm, dim=-1)
47
-
48
- if device.type != "meta":
49
- assert torch.equal(result.squeeze(0), perm.to(result.dtype))