Skip to content

Commit 353f50f

Browse files
Comments
1 parent 075b9f7 commit 353f50f

File tree

2 files changed

+47
-2
lines changed

2 files changed

+47
-2
lines changed

tests/openvino/native/models.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1084,6 +1084,42 @@ def _create_ov_model(self, is_int8=False, with_multiply=False, n_layers=8):
10841084
return model
10851085

10861086

1087+
class AWQModel(OVReferenceModel):
1088+
OUTPUT_DIM = 32
1089+
HIDDEN_DIM = 16
1090+
INPUT_SHAPE = [1, 24, HIDDEN_DIM] # [B, SeqLen, HiddenDim]
1091+
1092+
def _create_ov_model(
1093+
self,
1094+
transpose_b: bool = True,
1095+
transpose_a: bool = False,
1096+
input_shape: Optional[list[int]] = None,
1097+
is_int8=False,
1098+
):
1099+
self._input_shape = self.INPUT_SHAPE if input_shape is None else input_shape
1100+
hdim_axis = -2 if transpose_a else -1
1101+
self._hidden_dim = self._input_shape[hdim_axis]
1102+
input_1 = opset.parameter(self._input_shape, name="Input")
1103+
weight_shape = self.get_weight_shape(transpose_b)
1104+
data = self._rng.random(weight_shape).astype(np.float32)
1105+
1106+
weights = AWQMatmulModel.get_weights(data, is_int8=is_int8, name="weights_1")
1107+
1108+
matmul = opset.matmul(input_1, weights, transpose_a=transpose_a, transpose_b=transpose_b, name="MatMul")
1109+
1110+
result = opset.result(matmul, name="Result")
1111+
result.get_output_tensor(0).set_names(set(["Result"]))
1112+
model = ov.Model([result], [input_1])
1113+
return model
1114+
1115+
@property
1116+
def hidden_dim(self):
1117+
return self._hidden_dim
1118+
1119+
def get_weight_shape(self, transpose_b: bool = True):
1120+
return [self.OUTPUT_DIM, self.hidden_dim] if transpose_b else [self.hidden_dim, self.OUTPUT_DIM]
1121+
1122+
10871123
class AWQModel_fp16_overlow(OVReferenceModel):
10881124
"""
10891125
Model for testing AWQ algorithm with fp16 overflow fix.

tests/openvino/native/quantization/test_weights_compression.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
from tests.openvino.native.common import get_actual_reference_for_current_openvino
6666
from tests.openvino.native.models import AWQActMatmulModel
6767
from tests.openvino.native.models import AWQMatmulModel
68+
from tests.openvino.native.models import AWQModel
6869
from tests.openvino.native.models import AWQModel_fp16_overlow
6970
from tests.openvino.native.models import DifferentChannelSizeMatmulModel
7071
from tests.openvino.native.models import GatherAndMatmulShareData
@@ -1943,6 +1944,14 @@ def test_compression_with_different_algo_combinations(input_shape, kwargs):
19431944
)
19441945

19451946

1947+
@pytest.mark.parametrize(
1948+
"model_cls",
1949+
[
1950+
(LMLinearModel),
1951+
(AWQModel),
1952+
],
1953+
ids=["lm_linear", "awq_model"],
1954+
)
19461955
@pytest.mark.parametrize(
19471956
("transpose_a", "transpose_b", "raises_error"),
19481957
[
@@ -1967,9 +1976,9 @@ def test_compression_with_different_algo_combinations(input_shape, kwargs):
19671976
],
19681977
ids=["se", "lora", "gptq_se_awq"],
19691978
)
1970-
def test_compression_with_transpose(transpose_a, transpose_b, raises_error, kwargs):
1979+
def test_compression_with_transpose(model_cls, transpose_a, transpose_b, raises_error, kwargs):
19711980
dataset_size = 4
1972-
model = LMLinearModel(transpose_a=transpose_a, transpose_b=transpose_b).ov_model
1981+
model = model_cls(transpose_a=transpose_a, transpose_b=transpose_b).ov_model
19731982
input_data = [np.ones(inp.shape) for inp in model.inputs] * dataset_size
19741983
dataset = Dataset(input_data)
19751984

0 commit comments

Comments
 (0)