Skip to content

Commit 8571339

Browse files
authored
Revert "Implement aliasable mixin and alias activation ordering (#213)" (#217)
This reverts commit 724d5ce.
1 parent 724d5ce commit 8571339

File tree

4 files changed

+4
-100
lines changed

4 files changed

+4
-100
lines changed

src/compressed_tensors/quantization/quant_args.py

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
from typing import Any, Dict, Optional, Union
1818

1919
import torch
20-
from compressed_tensors.utils import Aliasable
2120
from pydantic import BaseModel, Field, field_validator, model_validator
2221

2322

@@ -54,30 +53,17 @@ class QuantizationStrategy(str, Enum):
5453
TOKEN = "token"
5554

5655

57-
class ActivationOrdering(Aliasable, str, Enum):
56+
class ActivationOrdering(str, Enum):
5857
"""
5958
Enum storing strategies for activation ordering
6059
6160
Group: reorder groups and weight\n
62-
Weight: only reorder weight, not groups. Slightly lower accuracy but also lower
63-
latency when compared to group actorder\n
64-
Dynamic: alias for Group\n
65-
Static: alias for Weight\n
61+
Weight: only reorder weight, not groups. Slightly lower latency and
62+
accuracy compared to group actorder\n
6663
"""
6764

6865
GROUP = "group"
6966
WEIGHT = "weight"
70-
# aliases
71-
DYNAMIC = "dynamic"
72-
STATIC = "static"
73-
74-
@property
75-
@staticmethod
76-
def aliases(self) -> Dict[str, str]:
77-
return {
78-
"dynamic": "group",
79-
"static": "weight",
80-
}
8167

8268

8369
class QuantizationArgs(BaseModel, use_enum_values=True):

src/compressed_tensors/quantization/quant_scheme.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ def validate_model_after(model: "QuantizationArgs") -> Dict[str, Any]:
6262

6363
return model
6464

65-
6665
"""
6766
Pre-Set Quantization Scheme Args
6867
"""

src/compressed_tensors/utils/helpers.py

Lines changed: 1 addition & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
from abc import abstractmethod
16-
from typing import Any, Dict, Optional
15+
from typing import Any, Optional
1716

1817
import torch
1918
from transformers import AutoConfig
@@ -25,7 +24,6 @@
2524
"tensor_follows_mask_structure",
2625
"replace_module",
2726
"is_compressed_tensors_config",
28-
"Aliasable",
2927
]
3028

3129
FSDP_WRAPPER_NAME = "_fsdp_wrapped_module"
@@ -121,36 +119,3 @@ def is_compressed_tensors_config(compression_config: Any) -> bool:
121119
return isinstance(compression_config, CompressedTensorsConfig)
122120
except ImportError:
123121
return False
124-
125-
126-
class Aliasable:
127-
"""
128-
A mixin for enums to allow aliasing of enum members
129-
130-
Example:
131-
>>> class MyClass(Aliasable, int, Enum):
132-
>>> ...
133-
"""
134-
135-
@property
136-
@staticmethod
137-
@abstractmethod
138-
def aliases(self) -> Dict[str, str]:
139-
raise NotImplementedError()
140-
141-
def __eq__(self, other):
142-
if isinstance(other, self.__class__):
143-
return self.value == other.value or (
144-
self.aliases.get(self.value, self.value)
145-
== self.aliases.get(other.value, other.value)
146-
)
147-
else:
148-
self_value = self.aliases.get(self.value, self.value)
149-
other_value = self.aliases.get(other, other)
150-
return self_value == other_value
151-
152-
return False
153-
154-
def __hash__(self):
155-
canonical_value = self.aliases.get(self.value, self.value)
156-
return hash(canonical_value)

tests/test_quantization/test_quant_args.py

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -83,28 +83,14 @@ def test_actorder():
8383
# test group inference with actorder
8484
args = QuantizationArgs(group_size=128, actorder=ActivationOrdering.GROUP)
8585
assert args.strategy == QuantizationStrategy.GROUP
86-
args = QuantizationArgs(group_size=128, actorder=ActivationOrdering.DYNAMIC)
87-
assert args.strategy == QuantizationStrategy.GROUP
8886

8987
# test invalid pairings
90-
with pytest.raises(ValueError):
91-
QuantizationArgs(group_size=None, actorder="group")
9288
with pytest.raises(ValueError):
9389
QuantizationArgs(group_size=None, actorder="weight")
94-
with pytest.raises(ValueError):
95-
QuantizationArgs(group_size=None, actorder="static")
96-
with pytest.raises(ValueError):
97-
QuantizationArgs(group_size=-1, actorder="group")
9890
with pytest.raises(ValueError):
9991
QuantizationArgs(group_size=-1, actorder="weight")
100-
with pytest.raises(ValueError):
101-
QuantizationArgs(group_size=-1, actorder="static")
102-
with pytest.raises(ValueError):
103-
QuantizationArgs(strategy="tensor", actorder="group")
10492
with pytest.raises(ValueError):
10593
QuantizationArgs(strategy="tensor", actorder="weight")
106-
with pytest.raises(ValueError):
107-
QuantizationArgs(strategy="tensor", actorder="static")
10894

10995
# test boolean and none defaulting
11096
assert (
@@ -115,38 +101,6 @@ def test_actorder():
115101
assert QuantizationArgs(group_size=1, actorder=None).actorder is None
116102

117103

118-
def test_actorder_aliases():
119-
assert (
120-
ActivationOrdering.GROUP
121-
== ActivationOrdering.DYNAMIC
122-
== ActivationOrdering.GROUP
123-
)
124-
assert (
125-
ActivationOrdering.WEIGHT
126-
== ActivationOrdering.STATIC
127-
== ActivationOrdering.WEIGHT
128-
)
129-
130-
assert ActivationOrdering.GROUP == "dynamic" == ActivationOrdering.GROUP
131-
assert ActivationOrdering.DYNAMIC == "dynamic" == ActivationOrdering.DYNAMIC
132-
assert ActivationOrdering.GROUP == "group" == ActivationOrdering.GROUP
133-
assert ActivationOrdering.DYNAMIC == "group" == ActivationOrdering.DYNAMIC
134-
135-
assert ActivationOrdering.WEIGHT == "static" == ActivationOrdering.WEIGHT
136-
assert ActivationOrdering.STATIC == "static" == ActivationOrdering.STATIC
137-
assert ActivationOrdering.WEIGHT == "weight" == ActivationOrdering.WEIGHT
138-
assert ActivationOrdering.STATIC == "weight" == ActivationOrdering.STATIC
139-
140-
assert ActivationOrdering.WEIGHT != "dynamic" != ActivationOrdering.WEIGHT
141-
assert ActivationOrdering.STATIC != "dynamic" != ActivationOrdering.STATIC
142-
assert ActivationOrdering.WEIGHT != "group" != ActivationOrdering.WEIGHT
143-
assert ActivationOrdering.STATIC != "group" != ActivationOrdering.STATIC
144-
assert ActivationOrdering.GROUP != "static" != ActivationOrdering.GROUP
145-
assert ActivationOrdering.DYNAMIC != "static" != ActivationOrdering.DYNAMIC
146-
assert ActivationOrdering.GROUP != "weight" != ActivationOrdering.GROUP
147-
assert ActivationOrdering.DYNAMIC != "weight" != ActivationOrdering.DYNAMIC
148-
149-
150104
def test_invalid():
151105
with pytest.raises(ValidationError):
152106
QuantizationArgs(type="invalid")

0 commit comments

Comments
 (0)